CCfits/0000755000225700000360000000000011667511122011521 5ustar cagordonlheaCCfits/config/0000755000225700000360000000000011667501507012774 5ustar cagordonlheaCCfits/config/m4/0000755000225700000360000000000011667501507013314 5ustar cagordonlheaCCfits/config/m4/ac_check_package.m40000644000225700000360000000473707657516150016770 0ustar cagordonlheadnl @synopsis AC_CHECK_PACKAGE(PACKAGE, FUNCTION, LIBRARY, HEADERFILE [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl dnl Provides --with-PACKAGE, --with-PACKAGE-include and --with-PACKAGE-libdir dnl options to configure. Supports the now standard --with-PACKAGE=DIR dnl approach where the package's include dir and lib dir are underneath DIR, dnl but also allows the include and lib directories to be specified seperately dnl dnl adds the extra -Ipath to CPPFLAGS if needed dnl adds extra -Lpath and -Rpath to LD_FLAGS if needed dnl searches for the FUNCTION in the LIBRARY with dnl AC_CHECK_LIBRARY and thus adds the lib to LIBS dnl dnl defines HAVE_PKG_PACKAGE if it is found, (where PACKAGE in the dnl HAVE_PKG_PACKAGE is replaced with the actual first parameter passed) dnl note that autoheader will complain of not having the HAVE_PKG_PACKAGE and you dnl will have to add it to acconfig.h manually dnl dnl @version $Id: ac_check_package.m4,v 3.5 2003/05/11 18:54:32 pfkeb Exp $ dnl @author Paul_Kunz@slac.stanford.edu modified ac_caolan_check_package.m4 for all languages dnl AC_DEFUN([AC_CHECK_PACKAGE], [ AC_ARG_WITH($1, [ --with-$1[=DIR] root directory of $1 installation], with_$1=$withval if test "${with_$1}" != yes; then $1_include="$withval/include" $1_libdir="$withval/lib" fi, $1_include="/usr/local/cfitsio/include" $1_libdir="/usr/local/cfitsio/lib" ) AC_ARG_WITH($1-include, [ --with-$1-include=DIR specify exact include dir for $1 headers], $1_include="$withval") AC_ARG_WITH($1-libdir, [ --with-$1-libdir=DIR specify exact library dir for $1 library --without-$1 disables $1 usage completely], $1_libdir="$withval") if test "${with_$1}" != no ; then OLD_LIBS=$LIBS OLD_LDFLAGS=$LDFLAGS OLD_CPPFLAGS=$CPPFLAGS if test "${$1_libdir}" ; then LDFLAGS="$LDFLAGS -L${$1_libdir}" RDFLAGS="${$1_libdir}" fi if test "${$1_include}" ; then CPPFLAGS="$CPPFLAGS -I${$1_include}" fi AC_CHECK_LIB($3,$2,,no_good=yes) AC_CHECK_HEADER($4,,no_good=yes) if test "$no_good" = yes; then dnl broken ifelse([$6], , , [$6]) LIBS=$OLD_LIBS LDFLAGS=$OLD_LDFLAGS CPPFLAGS=$OLD_CPPFLAGS else dnl fixed ifelse([$5], , , [$5]) AC_DEFINE(HAVE_PKG_$1, 1, Define if you have the package ) AC_SUBST(RDFLAGS) fi fi ]) CCfits/config/m4/ac_compile_ansi.m40000644000225700000360000000163607503644030016662 0ustar cagordonlheadnl @synopsis AC_COMPILE_ANSI dnl dnl Set the ansi flag for gnu compilers dnl This macro must be put after AC_PROG_CC and AC_PROG_CXX in dnl configure.in dnl dnl @version $Id: ac_compile_ansi.m4,v 3.0 2002/06/18 14:47:52 dorman Exp $ dnl @author adapted by Ben Dorman (ben.dorman@gsfc.nasa.gov) from AC_COMPILE_WARNINGS originally by Loic Dachary dnl AC_DEFUN([AC_COMPILE_ANSI], [AC_MSG_CHECKING(ansi C/C++ option) if test -n "$CXX" then if test "$GXX" = "yes" then ac_compile_ansi_opt='-ansi' fi CXXFLAGS="$CXXFLAGS $ac_compile_ansi_opt" ac_compile_ansi_msg="$ac_compile_ansi_opt for C++" fi if test -n "$CC" then if test "$GCC" = "yes" then ac_compile_ansi_opt='-ansi' fi CFLAGS="$CFLAGS $ac_compile_ansi_opt" ac_compile_ansi_msg="$ac_compile_ansi_msg $ac_compile_ansi_opt for C" fi AC_MSG_RESULT($ac_compile_ansi_msg) unset ac_compile_ansi_msg unset ac_compile_ansi_opt ]) CCfits/config/m4/ac_compile_warnings.m40000644000225700000360000000214507503644031017555 0ustar cagordonlheadnl @synopsis AC_COMPILE_WARNINGS dnl dnl Set the maximum warning verbosity according to compiler used. dnl Currently supports g++ and gcc. dnl This macro must be put after AC_PROG_CC and AC_PROG_CXX in dnl configure.in dnl dnl @version $Id: ac_compile_warnings.m4,v 3.0 2002/06/18 14:47:53 dorman Exp $ dnl @author Loic Dachary modified by Ben Dorman (ben.dorman@gsfc.nasa.gov) to add verbose options for SunPro CC dnl AC_DEFUN([AC_COMPILE_WARNINGS], [AC_MSG_CHECKING(maximum warning verbosity option) if test -n "$CXX" then if test "$GXX" = "yes" then ac_compile_warnings_opt='-Wall' elif test "$CXX" = "CC" then ac_compile_warnings_opt='+w2' fi CXXFLAGS="$CXXFLAGS $ac_compile_warnings_opt" ac_compile_warnings_msg="$ac_compile_warnings_opt for C++" fi if test -n "$CC" then if test "$GCC" = "yes" then ac_compile_warnings_opt='-Wall' fi CFLAGS="$CFLAGS $ac_compile_warnings_opt" ac_compile_warnings_msg="$ac_compile_warnings_msg $ac_compile_warnings_opt for C" fi AC_MSG_RESULT($ac_compile_warnings_msg) unset ac_compile_warnings_msg unset ac_compile_warnings_opt ]) CCfits/config/m4/ac_cxx_have_valarray.m40000644000225700000360000000131507503644032017722 0ustar cagordonlheadnl @synopsis AC_CXX_HAVE_VALARRAY dnl dnl If the compiler has valarray, define HAVE_VALARRAY. dnl dnl @version $Id: ac_cxx_have_valarray.m4,v 3.0 2002/06/18 14:47:54 dorman Exp $ dnl @author Luc Maisonobe dnl AC_DEFUN([AC_CXX_HAVE_VALARRAY], [AC_CACHE_CHECK(whether the compiler has valarray, ac_cv_cxx_have_valarray, [AC_REQUIRE([AC_CXX_NAMESPACES]) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([#include #ifdef HAVE_NAMESPACES using namespace std; #endif],[valarray x(100); return 0;], ac_cv_cxx_have_valarray=yes, ac_cv_cxx_have_valarray=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_have_valarray" = yes; then AC_DEFINE(HAVE_VALARRAY,,[define if the compiler has valarray]) fi ]) CCfits/config/m4/ac_cxx_namespaces.m40000644000225700000360000000131007503644033017211 0ustar cagordonlheadnl @synopsis AC_CXX_NAMESPACES dnl dnl If the compiler can prevent names clashes using namespaces, define dnl HAVE_NAMESPACES. dnl dnl @version $Id: ac_cxx_namespaces.m4,v 3.0 2002/06/18 14:47:55 dorman Exp $ dnl @author Luc Maisonobe dnl AC_DEFUN([AC_CXX_NAMESPACES], [AC_CACHE_CHECK(whether the compiler implements namespaces, ac_cv_cxx_namespaces, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}], [using namespace Outer::Inner; return i;], ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_namespaces" = yes; then AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces]) fi ]) CCfits/config/m4/pfk_cxx_lib_path.m40000644000225700000360000000120510521752162017051 0ustar cagordonlheadnl @synopsis PFK_CXX_LIB_PATH dnl dnl Sets the output variable CXXLIB_PATH to the path of the Standard C++ dnl library used by the compiler. Basically if $CXX is found in say dnl `/usr/local/bin' then the assumtion is that its library is found in dnl `/usr/local/lib'. dnl dnl @version $Id: pfk_cxx_lib_path.m4,v 3.1 2006/10/31 22:55:46 irby Exp $ dnl @author Paul_Kunz@slac.stanford.edu dnl AC_DEFUN([PFK_CXX_LIB_PATH], [ AC_PATH_PROG(pfk_cxx_lib_path, $CXX, $CXX ) AC_MSG_CHECKING(standard C++ library path) CXX_LIB_PATH=`dirname $pfk_cxx_lib_path | sed -e "s/bin/lib/"` AC_MSG_RESULT($CXX_LIB_PATH ) AC_SUBST(CXX_LIB_PATH)dnl ]) CCfits/config/config.guess0000755000225700000360000012450410521752453015316 0ustar cagordonlhea#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-09-07' # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 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 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # 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 ;' # 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 0 ;; amd64:OpenBSD:*:*) echo x86_64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; cats:OpenBSD:*:*) echo arm-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; luna88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mips64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit 0 ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; 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 0 ;; 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 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; *:OS400:*:*) echo powerpc-ibm-os400 exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; 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 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; 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 0 ;; 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 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; 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 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # 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 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; 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 \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; 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 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????: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 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; 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 0 ;; *: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 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 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 0 ;; *: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 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 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 # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 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 && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; 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 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; 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 0 ;; 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 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; 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 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *: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 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit 0 ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; 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 | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; 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 | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; 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 0 ;; 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 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; 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 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # 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 0 ;; 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 #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; 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 0 ;; 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 0 ;; 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 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; 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 0 ;; i*86:*:5:[78]*) 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 0 ;; 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 0 ;; 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 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; 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 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 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 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *: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 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; 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 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *: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 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *: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 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms && exit 0 ;; I*) echo ia64-dec-vms && exit 0 ;; V*) echo vax-dec-vms && exit 0 ;; esac 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"); 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 && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # 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 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; 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: CCfits/config/config.sub0000755000225700000360000007511310521752453014762 0ustar cagordonlhea#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-08-29' # 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., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, 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 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 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # 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 0;; * ) 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-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 ;; -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/'` ;; -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 \ | 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 | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) 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) ;; # 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-* \ | 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-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | 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-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # 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 ;; 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 ;; 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 ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; 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 ;; 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 ;; 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 ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-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-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*) # 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* \ | -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 ;; -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 ;; *-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 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: CCfits/config/depcomp0000755000225700000360000003554510521754132014355 0ustar cagordonlhea#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2004-05-31.23 # Copyright (C) 1999, 2000, 2003, 2004 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, 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 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 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; 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 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. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 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. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # 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,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$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" ;; 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 # Dependencies are output in .lo.d with libtool 1.4. # With libtool 1.5 they are output both in $dir.libs/$base.o.d # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the # latter, because the former will be cleaned when $dir.libs is # erased. tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir$base.o.d" tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" else tmpdepfile="$tmpdepfile3" fi 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 $1 != '--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 $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac 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. -*|$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 $1 != '--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 '/^# [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, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; 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-end: "$" # End: CCfits/config/install-sh0000755000225700000360000002176610521752453015010 0ustar cagordonlhea#!/bin/sh # install - install a program, script, or datafile scriptversion=2004-09-10.20 # 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. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= 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: -c (ignored) -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. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit 0;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit 0;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; 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 for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi 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 "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # 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: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # 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 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $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 "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 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. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: CCfits/config/ltmain.sh0000644000225700000360000054666210521754215014631 0ustar cagordonlhea# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 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 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. # # 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. basename="s,^.*/,,g" # 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" # RH: define SED for historic ltconfig's generated by Libtool 1.3 [ -z "$SED" ] && SED=sed # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.6 TIMESTAMP=" (1.1220.2.95 2004/04/11 05:50:42)" # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # 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. func_win32_libid () { 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 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` if test "X$win32_nmres" = "Ximport" ; then win32_libid_type="x86 archive import" else win32_libid_type="x86 archive static" fi 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_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 () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done 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 "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # 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. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # 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 $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2003 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $EXIT_SUCCESS ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $EXIT_SUCCESS ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --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 $EXIT_SUCCESS ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # 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= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # 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= 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) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$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,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$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. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # 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 $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) 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 "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 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 $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "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." $run $rm $removelist exit $EXIT_FAILURE fi $echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </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." $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 $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </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." $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 $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_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 case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$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 dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi 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 dlfiles="$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. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$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 non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= 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 compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes 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 $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi 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*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit $EXIT_FAILURE fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd*) # 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 deplibs="$deplibs -framework System" continue esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # gcc -m* arguments should be passed to the linker via $compiler_flags # in order to pass architecture information to the linker # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo # but this is not reliable with gcc because gcc may use -mfoo to # select a different linker, different libraries, etc, while # -Wl,-mfoo simply passes -mfoo to the linker. -m*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" if test "$with_gcc" = "yes" ; then compiler_flags="$compiler_flags $arg" fi continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 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*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # 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 ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi 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 dlfiles="$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. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$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 non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" 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. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'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\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test "$status" -ne 0 && test ! -d "$output_objdir"; then exit $status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; 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 test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$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 test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$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 link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; 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 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 "$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) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; 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 (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac 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 ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." 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 -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; 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 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) if test "$deplibs_check_method" != pass_all; 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 used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi 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. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$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 $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE 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. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$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 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi 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 newlib_search_path="$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*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 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 test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$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 -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; 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 "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$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 if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if 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 "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; 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*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" 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 "$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* ) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; 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 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; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$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 $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$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:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; 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:"*) ;; *) finalize_shlibpath="$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 [\\/]*) add_dir="$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 convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" 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*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$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" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared 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 "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs 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 "*) ;; *) lib_search_path="$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 "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$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 tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" 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 if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # 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="$2" number_minor="$3" number_revision="$4" # # 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 darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in [0-9]*) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in [0-9]*) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in [0-9]*) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE 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 major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` 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) major=`expr $current - $age + 1` 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 iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` 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 iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; 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 $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$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) ;; $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 removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` dependency_libs=`$echo "$dependency_libs " | ${SED} -e '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 temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$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 "*) ;; *) dlfiles="$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 "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$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. $rm conftest.c cat > conftest.c </dev/null` 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 "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$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 else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$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 newdeplibs="$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 else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e '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 "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $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 fi ;; 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 is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; 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 # 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 if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$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 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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$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" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$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 "$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 realname="$2" shift; 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" for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" status=$? if test "$status" -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "$mkdir $xdir" $run $mkdir "$xdir" status=$? if test "$status" -ne 0 && test ! -d "$xdir"; then exit $status fi # We will extract separately just the conflicting names and we will no # longer touch any unique names. It is faster to leave these extract # automatically by $AR in one run. $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $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:" && len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # 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 # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$save_output-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; }; then objlist="$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. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$save_output-${k}.$objext k=`expr $k + 1` output=$output_objdir/$save_output-${k}.$objext objlist=$obj len=1 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~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadale object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" done $echo "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" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" 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\" 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 # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run 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 "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $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 wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" status=$? if test "$status" -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "$mkdir $xdir" $run $mkdir "$xdir" status=$? if test "$status" -ne 0 && test ! -d "$xdir"; then exit $status fi # We will extract separately just the conflicting names and we will no # longer touch any unique names. It is faster to leave these extract # automatically by $AR in one run. $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${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" # $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" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$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 "*) ;; *) finalize_rpath="$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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; 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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$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 "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # 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/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= 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*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; 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 "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" 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 rpath="$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 rpath="$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 "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? 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" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e '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 "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "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}\" || 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 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) cwrappersource=`$echo ${objdir}/lt-${output}.c` cwrapper=`$echo ${output}.exe` $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR #define DIR_SEPARATOR '/' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) #define HAVE_DOS_BASED_FILE_SYSTEM #ifndef DIR_SEPARATOR_2 #define DIR_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 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); char * basename (const char *name); char * fnqualify(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup ((char *) basename (argv[0])); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = fnqualify(argv[0]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } char * basename (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha (name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return (char *) base; } char * fnqualify(const char *path) { size_t size; char *p; char tmp[LT_PATHMAX + 1]; assert(path != NULL); /* Is it qualified already? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha (path[0]) && path[1] == ':') return xstrdup (path); #endif if (IS_DIR_SEPARATOR (path[0])) return xstrdup (path); /* prepend the current directory */ /* doesn't handle '~' */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ p = XMALLOC(char, size); sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); return p; } 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; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # 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. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: 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 echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ 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 >> $output "\ # 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 $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE 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 $EXIT_FAILURE fi fi\ " chmod +x $output fi 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" 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" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" status=$? if test "$status" -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" # Add in members from convenience archives. for xlib in $addlibs; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "$mkdir $xdir" $run $mkdir "$xdir" status=$? if test "$status" -ne 0 && test ! -d "$xdir"; then exit $status fi # We will extract separately just the conflicting names and we will no # longer touch any unique names. It is faster to leave these extract # automatically by $AR in one run. $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` done 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 eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # GNU ar 2.10+ was changed to match POSIX; thus no paths are # encoded into archives. This makes 'ar r' malfunction in # this piecewise linking case whenever conflicting object # names appear in distinct ar calls; check, warn and compensate. if (for obj in $save_oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 AR_FLAGS=cq fi # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$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= 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 save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "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}\" || 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 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; 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 "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then 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) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # 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' # Libraries that this one depends upon. dependency_libs='$dependency_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 fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # 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. $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case $arg in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; 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. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$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 "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. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi 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 $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$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 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run 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 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 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 file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" save_umask=`umask` umask 0077 if $mkdir "$tmpdir"; then umask $save_umask else umask $save_umask $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyways case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $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" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "----------------------------------------------------------------------" exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 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 -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # 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 ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" 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) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; 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 (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" if test "$mode" = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$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 rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [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 --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information 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. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [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: $modename [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 -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking 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: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [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 -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 -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] 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: $modename [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." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $EXIT_SUCCESS # 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: CCfits/config/missing0000755000225700000360000002453310521752453014376 0ustar cagordonlhea#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2004-09-07.08 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 # 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # 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' 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] Send bug reports to ." exit 0 ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit 0 ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # 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). 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 "$1" 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 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` 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 [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -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 [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -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 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 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." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi 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-end: "$" # End: CCfits/configure.in0000644000225700000360000000543111667164131014041 0ustar cagordonlheadnl Process this file with autoconf to produce a configure script. dnl dnl Author: Paul_Kunz@slac.stanford.edu AC_REVISION($Revision: 3.23 $) AC_INIT(FITS.cxx) AM_CONFIG_HEADER(config.h) AC_CONFIG_AUX_DIR(config) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE(CCfits, 2.4) AC_LANG_CPLUSPLUS dnl Checks for programs. AC_PROG_CXX dnl Force libtool to use C++ compiler when checking for PIC CC=$CXX dnl Depending on target, we may need extra libraries in link command dnl also set LD before doing libtool macros. case "$target" in *-*-solaris*) dnl Use the C++ compiler for the linker LD=$CXX LIBS="-lm -lsocket -lgen -lnsl";; *) ;; esac AM_DISABLE_STATIC AM_PROG_LIBTOOL dnl Get the path to the standard C++ library PFK_CXX_LIB_PATH dnl Turn on -Wall if compiling with gcc AC_COMPILE_WARNINGS dnl Turn on -ansi if compiling with gcc AC_COMPILE_ANSI dnl Check for gmake and use it AC_CHECK_PROG(GMAKE, gmake, gmake, make) AC_SUBST(GMAKE) dnl check STD C++ library AC_CHECK_LIB(stdc++, main, LIBSTDCPP="lstdc++", LIBSTDCPP=) AC_SUBST(LIBSTDCPP) dnl check where the cfitsio library and include files are at. dnl NOTE: do this before checking sstream, else it fails. AC_CHECK_PACKAGE(cfitsio, ffpss, cfitsio, fitsio.h, AC_MSG_RESULT([cfitsio found.]), AC_MSG_ERROR([cfitsio NOT found]) ) dnl check for valarray which is not available with egcs 1.1.2 dnl which is default compiler for many Linux distributions AC_CXX_HAVE_VALARRAY if test "$ac_cv_cxx_have_valarray" != yes; then AC_MSG_ERROR( [ valarray is missing and required. Try upgrading to gcc 2.95.2 or higher.] ) fi dnl Use standard if found; otherwise it uses the older . AC_CHECK_HEADER(sstream, [], [AC_CHECK_HEADER(strstream, AC_DEFINE(SSTREAM_DEFECT, 1, Define to 1 if you have the header file instead of ), AC_MSG_ERROR(You have neither the or header file) )]) dnl Enables testing of alternate code dealing with MS VC++ workarounds. AC_ARG_ENABLE(msvc-code, [ --enable-msvc-code compile alternate code dealing ] [ with MS VC++ workarounds], AC_DEFINE(ITERATORBASE_DEFECT, 1, Define if IteratorBase does not work with some STL functions.) AC_DEFINE(SPEC_TEMPLATE_DECL_DEFECT, 1, Define partical template specializtion can not be declared.) AC_DEFINE(TEMPLATE_AMBIG7_DEFECT, 1, Define if compile can not resolve ambiguity in overloaded template functions.) ) dnl check where the STLport library and include files are at. dnl AC_ARG_WITH(stlport, --with-stlport=DIR (prefix to stlport), dnl STLPORT=$withval, STLPORT=$prefix/include/stlport) dnl AC_MSG_RESULT( using stlport at $STLPORT) AC_SUBST(STLPORT) AC_OUTPUT(Makefile Doxyfile CCfits.pc \ vs.net/Makefile ) AC_MSG_RESULT([ CCFits project now configured. ]) CCfits/aclocal.m40000644000225700000360000100017611667502502013370 0ustar cagordonlhea# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 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. # 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. # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # serial 48 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH 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 # 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 to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' 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 \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])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_AC_SYS_COMPILER # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. AC_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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. AC_DEFUN([_LT_COMPILER_BOILERPLATE], [ac_outfile=conftest.$ac_objext printf "$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. AC_DEFUN([_LT_LINKER_BOILERPLATE], [ac_outfile=conftest.$ac_objext printf "$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 conftest* ])# _LT_LINKER_BOILERPLATE # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # 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. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_LINK_IFELSE(AC_LANG_PROGRAM,[ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_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 __oline__ "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-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|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-*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-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) 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_TRY_LINK([],[],[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 ;; sparc*-*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*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) printf "$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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" printf "$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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# 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*) # 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; ;; 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 ;; 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 ;; *) # 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. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done 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` ;; 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 ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # ------------------ AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # --------------------------------------------------------------------- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_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 < #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 #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); exit (status); }] 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_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ---------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_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*) 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="-dld"], [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="-dld"]) ]) ]) ]) ]) ]) ;; 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_AC_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_AC_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 ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_AC_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 .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_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 ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_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 ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_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_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; 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 ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [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" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_MSG_CHECKING([dynamic linker characteristics]) 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" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # 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. 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 else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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 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' ;; aix4* | aix5*) version_type=linux 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*) 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=`$echo "X$lib" | $Xsed -e '\''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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux 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='GNU ld.so' ;; 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[[123]]*) 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 ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux 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 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' ;; interix3*) version_type=linux 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 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 Linux ELF. linux*) version_type=linux 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 # 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 # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # 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/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $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' ;; knetbsd*-gnu) version_type=linux 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='GNU 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 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=linux 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 ;; 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" ;; solaris*) version_type=linux 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 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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 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' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 DLLs AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- # set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_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="ifelse([$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 <&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 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 ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_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 AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_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]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])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; 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 ;; 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]) 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 ;; interix3*) # 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 Linux ELF. linux*) 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=unknown ;; 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 ;; solaris*) 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) 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 ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible 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 test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-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_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # it is assumed to be `libltdl'. LIBLTDL will be prefixed with # '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' # (note the single quotes!). If your package is not flat and you're not # using automake, define top_builddir and top_srcdir appropriately in # the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # and an installed libltdl is not found, it is assumed to be `libltdl'. # LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and top_srcdir # appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # _LT_AC_PROG_CXXCPP # ------------------ AC_DEFUN([_LT_AC_PROG_CXXCPP], [ AC_REQUIRE([AC_PROG_CXX]) 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 fi ])# _LT_AC_PROG_CXXCPP # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # ------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [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_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' _LT_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF # 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 ;; aix4* | aix5*) 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]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_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_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++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_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_AC_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 "\-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_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) 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]].*|aix5*) 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_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 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 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_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 # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_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 echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_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_AC_SYS_LIBPATH_AIX _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_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_AC_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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_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' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_AC_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) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' ;; *) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_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; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix3*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_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_AC_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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux*) 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_AC_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_AC_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; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # 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_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_AC_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' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_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=`echo $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; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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::"' ;; openbsd2*) # C++ shared libraries are fairly broken _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_AC_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_AC_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_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_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 "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_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 "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_AC_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_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -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 \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_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 \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_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. # 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. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld 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 ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([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. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ 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... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 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 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. # 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//" # 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 # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` gcc_ver=\`gcc -dumpversion\` # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # 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=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\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 EOF ;; esac # 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) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # 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]]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \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\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[[ABCDGIRSTW]]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 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 # 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 # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, 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. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $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 < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_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_save_LIBS" CFLAGS="$lt_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 -f 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 ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_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_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # 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_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix3*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # 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*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_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 ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_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_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc* | ecpc*) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC*) # Portland Group C++ compiler. _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_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_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # 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_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; interix3*) # 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_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac # # Check to make sure the static flag actually works. # wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # 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 if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_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_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. _LT_CC_BASENAME([$compiler]) case $host_os in cygwin* | mingw* | pw32*) # 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_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = 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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [[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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_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' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_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_AC_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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; interix3*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_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_AC_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_AC_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' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; esac _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then _LT_AC_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 -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $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_AC_TAGVAR(ld_shlibs, $1)=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_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_AC_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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_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_AC_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_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) 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 if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_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]].*|aix5*) 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_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 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 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_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 # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_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 echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_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_AC_SYS_LIBPATH_AIX _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_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*) _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi[[45]]*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # 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. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_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_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_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~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then wlarc='${wl}' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_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' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; *) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_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_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$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_AC_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) # 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. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_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]) ]) # Copyright (C) 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. # 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. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 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. # 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 # 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 7 # 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]) AC_SUBST([$1_FALSE]) 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 # 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 8 # 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], 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'. 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 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 case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 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 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; 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. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /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"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 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 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 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 12 # 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.58])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 # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 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 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) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP 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 ]) ]) # 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_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 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. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} 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])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 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 3 # 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 done .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 # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 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 4 # 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 test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # 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 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. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 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 3 # _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], [AC_FOREACH([_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 # 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 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. # 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="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 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 # _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. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} 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([config/m4/ac_check_package.m4]) m4_include([config/m4/ac_compile_ansi.m4]) m4_include([config/m4/ac_compile_warnings.m4]) m4_include([config/m4/ac_cxx_have_valarray.m4]) m4_include([config/m4/ac_cxx_namespaces.m4]) m4_include([config/m4/pfk_cxx_lib_path.m4]) CCfits/AsciiTable.h0000644000225700000360000001577611470265344013716 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef ASCIITABLE_H #define ASCIITABLE_H 1 // HDUCreator #include "HDUCreator.h" // Table #include "Table.h" // needed for CLONE_DEFECT #ifdef _MSC_VER #include "MSconfig.h" #endif namespace CCfits { /*! \class AsciiTable \brief Class Representing Ascii Table Extensions. May only contain columns with scalar row entries and a small range of data types. AsciiTable (re)implements functions prescribed in the Table abstract class. The implementations allow the calling of cfitsio specialized routines for AsciiTable header construction. Direct instantiation of AsciiTable objects is disallowed: they are created by explicit calls to FITS::addTable( ... ), FITS::read(...) or internally by one of the FITS ctors on initialization. The default for FITS::addTable is to produce BinTable extensions. */ /*! \fn AsciiTable::~AsciiTable(); \brief destructor. */ /*! \fn virtual void AsciiTable::readData (bool readFlag, const std::vector& keys); \brief read columns and keys specified in the input array. See Table class documentation for further details. */ /*! \fn virtual void AsciiTable::addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0); \brief add a new column to an existing table HDU. \param type The data type of the column to be added \param columnName The name of the column to be added \param repeatWidth for a string valued, this is the width of a string. For a numeric column it supplies the vector length of the rows. It is ignored for ascii table numeric data. \param colUnit an optional field specifying the units of the data (TUNITn) \param decimals optional parameter specifying the number of decimals for an ascii numeric column \param columnNumber optional parameter specifying column number to be created. If not specified the column is added to the end. If specified, the column is inserted and the columns already read are reindexed. This parameter is provided as a convenience to support existing code rather than recommended. */ /*! \fn AsciiTable::AsciiTable (FITSBase * p, const String &hduName, bool readFlag, const std::vector& keys, int version); \brief reading constructor: Construct a AsciiTable extension from an extension of an existing disk file. The Table is specified by name and optional version number within the file. An array of strings representing columns or keys indicates which data are to be read. The column data are only read if readFlag is true. Reading on construction is optimized, so it is more efficient to read data at the point of instantiation. This favours a "resource acquisition is initialization" model of data management. \param p pointer to FITSBase object for internal use \param hduName name of AsciiTable object to be read. \param readFlag flag to determine whether to read data on construction \param keys (optional) a list of keywords/columns to be read. The implementation will determine which are keywords. If none are specified, the constructor will simply read the header \param version (optional) version number. If not specified, will read the first extension that matches hduName. */ /*! \fn AsciiTable::AsciiTable (FITSBase* p, const String &hduName, int rows, const std::vector& columnName = std::vector(), const std::vector& columnFmt = std::vector(), const std::vector& columnUnit = std::vector(), int version = 1); \brief writing constructor: create new Ascii Table object with the specified columns The constructor creates a valid HDU which is ready for Column::write or insertRows operations. The disk FITS file is update accordingly. The data type of each column is determined by the columnFmt argument (TFORM keywords). See cfitsio documentation for acceptable values. \param hduName name of AsciiTable object to be written \param rows number of rows in the table (NAXIS2) \param columnName array of column names for columns to be constructed. \param columnFmt array of column formats for columns to be constructed. \param columnUnit (optional) array of units for data in columns. \param version (optional) version number for HDU. The dimensions of columnType, columnName and columnFmt must match, although this is not enforced at present. \todo{enforce equal dimensions for arrays input to AsciiTable, BinTable writing ctor} */ /*! \fn AsciiTable::AsciiTable (FITSBase* p, int number); \brief read AsciiTable with HDU number \p number from existing file. This is used internally by methods that need to access HDUs for which no EXTNAME [or equivalent] keyword exists. */ /*! \fn virtual void AsciiTable::readTableHeader (int ncols, std::vector& colName, std::vector& colFmt, std::vector& colUnit); \brief read the table header. constructor internal call. */ class AsciiTable : public Table //## Inherits: %3804A75CE420 { public: virtual AsciiTable * clone (FITSBase* p) const; virtual void readData (bool readFlag = false, const std::vector& keys = std::vector()); virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0); // Additional Public Declarations protected: AsciiTable (FITSBase* p, const String &hduName = String(""), bool readFlag = false, const std::vector& keys = std::vector(), int version = 1); AsciiTable (FITSBase* p, const String &hduName, int rows, const std::vector& columnName = std::vector(), const std::vector& columnFmt = std::vector(), const std::vector& columnUnit = std::vector(), int version = 1); // ExtHDU constructor for getting ExtHDUs by number. // Necessary since EXTNAME is a reserved not required // keyword. AsciiTable (FITSBase* p, int number); ~AsciiTable(); // Additional Protected Declarations private: AsciiTable(const AsciiTable &right); virtual void readTableHeader (int ncols, std::vector& colName, std::vector& colFmt, std::vector& colUnit); // Additional Private Declarations private: //## implementation // Additional Implementation Declarations friend class HDUCreator; }; // Class CCfits::AsciiTable } // namespace CCfits #endif CCfits/BinTable.h0000644000225700000360000001524611470265344013366 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef BINTABLE_H #define BINTABLE_H 1 // HDUCreator #include "HDUCreator.h" // Table #include "Table.h" // needed for CLONE_DEFECT #ifdef _MSC_VER #include "MSconfig.h" #endif namespace CCfits { /*! \class BinTable \brief Class Representing Binary Table Extensions. Contains columns with scalar or vector row entries BinTable (re)implements functions prescribed in the Table abstract class. The implementations allow the calling of cfitsio specialized routines for BinTable header construction. functions particular to the BinTable class include those dealing with variable width columns Direct instantiation of BinTable objects is disallowed: they are created by explicit calls to FITS::addTable( ... ), FITS::read(...) or internally by one of the FITS ctors on initialization. For addTable, creation of BinTables is the default. */ /*! \fn BinTable::~BinTable(); \brief destructor. */ /*! \fn virtual void BinTable::readData (bool readFlag = false, const std::vector& keys = std::vector()); \brief read columns and keys specified in the input array. See Table class documentation for further details. */ /*! \fn virtual void BinTable::addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0); \brief add a new column to an existing table HDU. \param type The data type of the column to be added \param columnName The name of the column to be added \param repeatWidth for a string valued, this is the width of a string. For a numeric column it supplies the vector length of the rows. It is ignored for ascii table numeric data. \param colUnit an optional field specifying the units of the data (TUNITn) \param decimals optional parameter specifying the number of decimals for an ascii numeric column \param columnNumber optional parameter specifying column number to be created. If not specified the column is added to the end. If specified, the column is inserted and the columns already read are reindexed. This parameter is provided as a convenience to support existing code rather than recommended. */ /*! \fn BinTable::BinTable (FITSBase* p, const String &hduName, bool readFlag, const std::vector& keys, int version); \brief reading constructor. Construct a BinTable extension from an extension of an existing disk file. The Table is specified by name and optional version number within the file. An array of strings representing columns or keys indicates which data are to be read. The column data are only read if readFlag is true. Reading on construction is optimized, so it is more efficient to read data at the point of instantiation. This favours a "resource acquisition is initialization" model of data management. \param p Pointer to FITSBase class, an internal implementation detail \param hduName name of BinTable object to be read. \param readFlag flag to determine whether to read data on construction \param keys (optional) a list of keywords/columns to be read. The implementation will determine which are keywords. If none are specified, the constructor will simply read the header \param version (optional) version number. If not specified, will read the first extension that matches hduName. */ /*! \fn BinTable::BinTable (FITSBase* p, const String &hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit, int version); \brief writing constructor The constructor creates a valid HDU which is ready for Column::write or insertRows operations. The disk FITS file is update accordingly. The data type of each column is determined by the columnFmt argument (TFORM keywords). See cfitsio documentation for acceptable values. \param p Pointer to FITSBase class, an internal implementation detail \param hduName name of BinTable object to be written \param rows number of rows in the table (NAXIS2) \param columnName array of column names for columns to be constructed. \param columnFmt array of column formats for columns to be constructed. \param columnUnit (optional) array of units for data in columns. \param version (optional) version number for HDU. The dimensions of columnType, columnName and columnFmt must match, but this is not enforced. */ /*! \fn BinTable::BinTable (FITSBase* p, int number); \brief read BinTable with HDU number \p number from existing file represented by fitsfile pointer p. */ class BinTable : public Table //## Inherits: %3804A7E75F10 { public: virtual BinTable * clone (FITSBase* p) const; virtual void readData (bool readFlag = false, const std::vector& keys = std::vector()); virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0); // Additional Public Declarations protected: BinTable (FITSBase* p, const String &hduName = String(""), bool readFlag = false, const std::vector& keys = std::vector(), int version = 1); BinTable (FITSBase* p, const String &hduName, int rows, const std::vector& columnName = std::vector(), const std::vector& columnFmt = std::vector(), const std::vector& columnUnit = std::vector(), int version = 1); // ExtHDU constructor for getting ExtHDUs by number. // Necessary since EXTNAME is a reserved not required // keyword. BinTable (FITSBase* p, int number); ~BinTable(); // Additional Protected Declarations private: BinTable(const BinTable &right); virtual void readTableHeader (int ncols, std::vector& colName, std::vector& colFmt, std::vector& colUnit); void readVariableColumns (const std::vector &varColumns); // Additional Private Declarations private: //## implementation // Additional Implementation Declarations friend class HDUCreator; }; // Class CCfits::BinTable } // namespace CCfits #endif CCfits/CCfits0000644000225700000360000000065707765174427012650 0ustar cagordonlhea #ifndef CCFITS #define CCFITS 20031208 #include #include #include #include #include #include #include #include #include #include #include #include #include #endif CCfits/CCfits.h0000644000225700000360000000513311470306662013052 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef CCFITS_H #define CCFITS_H 1 // fitsio #include "fitsio.h" // string #include namespace CCfits { class ExtHDU; } // namespace CCfits #include #include #include "longnam.h" #include "float.h" namespace CCfits { /*! \namespace CCfits * \brief Namespace enclosing all CCfits classes and globals definitions. */ static const int BITPIX = -32; static const int NAXIS = 2; static const int MAXDIM = 99; extern const unsigned long USBASE; extern const unsigned long ULBASE; extern char BSCALE[7]; extern char BZERO[6]; typedef enum {Read=READONLY,Write=READWRITE} RWmode; /*! \enum ValueType * \brief CCfits value types and their CFITSIO equivalents (in caps) * Tnull, * Tbit = TBIT, * Tbyte = TBYTE, * Tlogical = TLOGICAL, * Tstring = TSTRING, * Tushort = TUSHORT, * Tshort = TSHORT, * Tuint = TUINT, * Tint = TINT, * Tulong = TULONG, * Tlong = TLONG, * Tlonglong = TLONGLONG, * Tfloat = TFLOAT, * Tdouble = TDOUBLE, * Tcomplex = TCOMPLEX, * Tdblcomplex=TDBLCOMPLEX, * VTbit= -TBIT, * VTbyte=-TBYTE, * VTlogical=-Tlogical, * VTushort=-TUSHORT, * VTshort=-TSHORT, * VTuint=-TUINT, * VTint=-TINT, * VTulong=-TULONG, * VTlong=-TLONG, * VTlonglong=-TLONGLONG, * VTfloat=-TFLOAT, * VTdouble=-TDOUBLE, * VTcomplex=-TCOMPLEX, * VTdblcomplex=-TDBLCOMPLEX */ typedef enum {Tnull, Tbit = TBIT, Tbyte = TBYTE, Tlogical = TLOGICAL, Tstring = TSTRING, Tushort = TUSHORT, Tshort = TSHORT,Tuint = TUINT,Tint = TINT, Tulong = TULONG,Tlong = TLONG, Tlonglong = TLONGLONG, Tfloat = TFLOAT, Tdouble = TDOUBLE, Tcomplex = TCOMPLEX, Tdblcomplex=TDBLCOMPLEX, VTbit= -TBIT, VTbyte=-TBYTE,VTlogical=-Tlogical, VTushort=-TUSHORT,VTshort=-TSHORT,VTuint=-TUINT, VTint=-TINT,VTulong=-TULONG,VTlong=-TLONG,VTlonglong=-TLONGLONG,VTfloat=-TFLOAT,VTdouble=-TDOUBLE,VTcomplex=-TCOMPLEX,VTdblcomplex=-TDBLCOMPLEX} ValueType; typedef enum {AnyHdu=-1, ImageHdu, AsciiTbl, BinaryTbl} HduType; typedef enum {Inotype = 0, Ibyte=BYTE_IMG, Ishort = SHORT_IMG, Ilong = LONG_IMG, Ifloat = FLOAT_IMG, Idouble = DOUBLE_IMG, Iushort = USHORT_IMG, Iulong = ULONG_IMG} ImageType; typedef std::string String; typedef std::multimap ExtMap; typedef ExtMap::const_iterator ExtMapConstIt; typedef ExtMap::iterator ExtMapIt; } // namespace CCfits #endif CCfits/Column.h0000644000225700000360000013421411470265344013140 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef COLUMN_H #define COLUMN_H 1 #include // CCfitsHeader #include "CCfits.h" // Table #include "Table.h" // FitsError #include "FitsError.h" // FITSUtil #include "FITSUtil.h" #include namespace CCfits { /*! \class Column \brief Abstract base class for Column objects. Columns are the data containers used in FITS tables. Columns of scalar type (one entry per cell) are implemented by the template subclass ColumnData. Columns of vector type (vector and variable rows) are implemented with the template subclass ColumnVectorData. AsciiTables may only contain Columns of type ColumnData, where T is an implemented FITS data type (see the CCfits.h header for a complete list. This requirement is enforced by ensuring that AsciiTable's addColumn method may only create an AsciiTable compatible column. The ColumnData class stores its data in a std::vector object. BinTables may contain either ColumnData or ColumnVectorData. For ColumnVectorData, T must be a numeric type: string vectors are handled by ColumnData; string arrays are not supported. The internal representation of the data is a std::vector > object. The std::valarray class is designed for efficient numeric processing and has many vectorized numeric and transcendental functions defined on it. Member template functions for read/write operations are provided in multiple overloads as the interface to data operations. Implicit data type conversions are supported but where they are required make the operations less efficient. Reading numeric column data as character arrays, supported by cfitsio, is not supported by CCfits. As a base class, Column provides protected accessor/mutator inline functions to allow only its subclasses to access data members. */ /*! \class Column::RangeError @ingroup FITSexcept @brief exception to be thrown for inputs that cause range errors in column read operations. Range errors here mean (last < first) in a request to read a range of rows. */ /*! \fn Column::RangeError::RangeError (const String& msg, bool silent); \brief Exception ctor, prefixes the string "FitsError: Range error in operation " before the specific message. \param msg A specific diagnostic message \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::InvalidDataType @ingroup FITSExcept @brief Exception thrown for invalid data type inputs This exception is thrown if the user requests an implicit data type conversion to a datatype that is not one of the supported types (see fitsio.h for details). */ /*! \fn Column::InvalidDataType::InvalidDataType (const String& str, bool silent); \brief Exception ctor, prefixes the string "FitsError: Incorrect data type: " before the specific message. \param str A specific diagnostic message \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::InvalidRowParameter @ingroup FITSExcept @brief Exception thrown on incorrect row writing request This exception is thrown if the user requests writing more data than a fixed width row can accommodate. An exception is thrown rather than a truncation because it is likely that the user will not otherwise realize that data loss is happening. */ /*! \fn Column::InvalidRowParameter::InvalidRowParameter (const String& diag, bool silent); \brief Exception ctor, prefixes the string "FitsError: row offset or length incompatible with column declaration " before the specific message. \param diag A specific diagnostic message, usually the column name \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::WrongColumnType @ingroup FITSExcept @brief Exception thrown on attempting to access a scalar column as vector data. This exception will be thrown if the user tries to call a read/write operation with a signature appropriate for a vector column on a scalar column, or vice versa. For example in the case of write operations, the vector versions require the specification of (a) a number of rows to write over, (b) a vector of lengths to write to each row or (c) a subset specification. The scalar versions only require a number of rows if the input array is a plain C-array, otherwise the range to be written is the size of the input vector. */ /*! \fn Column::WrongColumnType::WrongColumnType (const String& diag, bool silent); \brief Exception ctor, prefixes the string "FitsError: Attempt to return scalar data from vector column, or vice versa - Column: " before the specific message. \param diag A specific diagnostic message, usually the column name. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::InvalidRowNumber @ingroup FITSExcept @brief Exception thrown on attempting to read a row number beyond the end of a table. */ /*! \fn Column::InvalidRowNumber::InvalidRowNumber (const String& diag, bool silent); \brief Exception ctor, prefixes the string "FitsError: Invalid Row Number - Column: " before the specific message. \param diag A specific diagnostic message, usually the column name. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::InsufficientElements @ingroup FITSExcept @brief Exception thrown if the data supplied for a write operation is less than declared. This circumstance generates an exception to avoid unexpected behaviour after the write operation is completed. It can be avoided by resizing the input array appropriately. */ /*! \fn Column::InsufficientElements::InsufficientElements (const String& msg, bool silent); \brief Exception ctor, prefixes the string "FitsError: not enough elements supplied for write operation: " before the specific message. \param msg A specific diagnostic message, usually the column name \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::NoNullValue @ingroup FITSExcept @brief Exception thrown if a null value is specified without support from existing column header. This exception is analogous to the fact that cfitsio returns a non-zero status code if TNULLn doesn't exist an a null value (convert all input data with the null value to the TNULLn keyword) is specified. It is only relevant for integer type data (see cfitsio manual for details). */ /*! \fn Column::NoNullValue::NoNullValue (const String& diag, bool silent); \brief Exception ctor, prefixes the string "Fits Error: No null value specified for column: " before the specific message. \param diag A specific diagnostic message \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class Column::InvalidNumberOfRows @ingroup FITSExcept @brief Exception thrown if user enters a non-positive number for the number of rows to write. */ /*! \fn Column::InvalidNumberOfRows::InvalidNumberOfRows (size_t number, bool silent); \brief Exception ctor, prefixes the string "Fits Error: number of rows to write must be positive " before the specific message. \param number The number of rows entered. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \fn Column::Column(const Column& right); \brief copy constructor, used in copying Columns to standard library containers. The copy constructor is for internal use only: it does not affect the disk fits file associated with the object. */ /*! \fn virtual Column::~Column(); \brief destructor. */ /*! \fn template void Column::read(std::vector& vals, long first, long last); \brief Retrieve data from a scalar column into a std::vector This and the following functions perform implicit data conversions. An exception will be thrown if no conversion exists. \param vals The output container. The function will resize this as necessary \param first,last the span of row numbers to read. */ /*! \fn template void Column::read(std::vector& vals, long first, long last, S* nullValue) ; \brief Retrieve data from a scalar column into a std::vector>, applying nullValue when relevant. If both nullValue and *nullValue are not 0, then any undefined values in the file will be converted to *nullValue when copied into the vals vector. See cfitsio documentation for further details \param vals The output container. The function will resize this as necessary \param first,last the span of row numbers to read. \param nullValue pointer to value to be applied to undefined elements. */ /*! \fn template void Column::read(std::valarray& vals, long first, long last) ; \brief Retrieve data from a scalar column into a std::valarray \param vals The output container. The function will resize this as necessary \param first,last the span of row numbers to read. */ /*! \fn template void Column::read(std::valarray& vals, long first, long last, S* nullValue) ; \brief Retrieve data from a scalar column into a std::valarray, applying nullValue when relevant. If both nullValue and *nullValue are not 0, then any undefined values in the file will be converted to *nullValue when copied into the vals valarray. See cfitsio documentation for further details \param vals The output container. The function will resize this as necessary \param first,last the span of row numbers to read. \param nullValue pointer to value to be applied to undefined elements. */ /*! \fn template void Column::read(std::valarray& vals, long rows) ; \brief return a single row of a vector column into a std::valarray \param vals The output valarray object \param rows The row number to be retrieved (starting at 1). */ /*! \fn template void Column::read(std::valarray& vals, long rows, S* nullValue) ; \brief return a single row of a vector column into a std::valarray, setting undefined values */ /*! \fn template void Column::readArrays(std::vector >& vals, long first,long last); \brief return a set of rows of a vector column into a vector of valarrays \param vals The output container. The function will resize this as necessary \param first,last the span of row numbers to read. */ /*! \fn template void Column::readArrays(std::vector >& vals, long first, long last, S* nullValue); \brief return a set of rows of a vector column into a container, setting undefined values \param vals The output container. The function will resize this as necessary \param first,last the span of row numbers to read. \param nullValue pointer to integer value regarded as undefined */ /*! \fn template void Column::write(const std::vector& indata, long firstRow); \brief write a vector of values into a scalar column starting with firstRow \param indata The data to be written. \param firstRow The first row to be written */ /*! \fn template void Column::write(const std::valarray& indata, long firstRow); \brief write a valarray of values into a scalar column starting with firstRow \param indata The data to be written. \param firstRow The first row to be written */ /*! \fn template void Column::write(const std::vector& indata, long firstRow, S* nullValue); \brief write a vector of values into a scalar column starting with firstRow, replacing elements equal to *nullValue with the FITS null value. If nullValue is not 0, the appropriate FITS null value will be substituted for all elements of indata equal to *nullValue. For integer type columns there must be a pre-existing TNULLn keyword to define the FITS null value, otherwise a FitsError exception is thrown. For floating point columns, the FITS null is the IEEE NaN (Not-a-Number) value. See the cfitsio fits_write_colnull function documentation for more details. \param indata The data to be written. \param firstRow The first row to be written \param nullValue Pointer to the value for which equivalent indata elements will be replaced in the file with the appropriate FITS null value. */ /*! \fn template void Column::write(const std::valarray& indata, long firstRow, S* nullValue); \brief write a valarray of values into a scalar column starting with firstRow, replacing elements equal to *nullValue with the FITS null value. If nullValue is not 0, the appropriate FITS null value will be substituted for all elements of indata equal to *nullValue. For integer type columns there must be a pre-existing TNULLn keyword to define the FITS null value, otherwise a FitsError exception is thrown. For floating point columns, the FITS null is the IEEE NaN (Not-a-Number) value. See the cfitsio fits_write_colnull function documentation for more details. \param indata The data to be written. \param firstRow The first row to be written \param nullValue Pointer to the value for which equivalent indata elements will be replaced in the file with the appropriate FITS null value. */ /*! \fn template void Column::write(S* indata, long nRows, long firstRow); \brief write a C array of size nRows into a scalar Column starting with row firstRow. \param indata The data to be written. \param nRows The size of the data array to be written \param firstRow The first row to be written */ /*! \fn template void Column::write(S* indata, long nRows, long firstRow, S* nullValue); \brief write a C array into a scalar Column, processing undefined values. \param indata The data to be written. \param nRows The size of the data array to be written \param firstRow The first row to be written \param nullValue Pointer to the value in the input array to be set to undefined values */ /*! \fn template void Column::write (const std::valarray& indata, long nRows, long firstRow); \brief write a valarray of values into a range of rows of a vector column. The primary use of this is for fixed width columns, in which case Column's repeat attribute is used to determine how many elements are written to each row; if indata.size() is too small an exception will be thrown. If the column is variable width, the call will write indata.size()/nRows elements to each row. \param indata The data to be written. \param nRows the number of rows to which to write the data. \param firstRow The first row to be written */ /*! \fn template void Column::write (const std::valarray& indata, long nRows, long firstRow, S* nullValue); \brief write a valarray of values into a range of rows of a vector column. see version without undefined processing for details. */ /*! \fn template void Column::write (const std::vector& indata, long nRows, long firstRow); \brief write a vector of values into a range of rows of a vector column The primary use of this is for fixed width columns, in which case Column's repeat attribute is used to determine how many elements are written to each row; if indata.size() is too small an exception will be thrown. If the column is variable width, the call will write indata.size()/nRows elements to each row. \param indata The data to be written. \param nRows the number of rows to which to write the data. \param firstRow The first row to be written */ /*! \fn template void Column::write (const std::vector& indata, long nRows, long firstRow, S* nullValue); \brief write a vector of values into a range of rows of a vector column, processing undefined values see version without undefined processing for details. */ /*! \fn template void Column::write (S* indata, long nElements, long nRows, long firstRow); \brief write a C array of values into a range of rows of a vector column Details are as for vector input; only difference is the need to supply the size of the C-array. \param indata The data to be written. \param nElements The size of indata \param nRows the number of rows to which to write the data. \param firstRow The first row to be written */ /*! \fn template void Column::write (S* indata, long nElements, long nRows, long firstRow, S* nullValue); \brief write a C array of values into a range of rows of a vector column, processing undefined values. see version without undefined processing for details. */ /*! \fn template void Column::write (const std::valarray& indata, const std::vector& vectorLengths, long firstRow); \brief write a valarray of values into a column with specified number of entries written per row. Data are written into vectorLengths.size() rows, with vectorLength[n] elements written to row n+firstRow -1. Although primarily intended for wrapping calls to multiple variable-width vector column rows, it may also be used to write a variable number of elements to fixed-width column rows. When writing to fixed-width column rows, if the number of elements sent to a particular row are fewer than the column's repeat value, the remaining elements in the row will not be modified. Since cfitsio does not support null value processing for variable width columns this function and its variants do not have version which process undefined values \param indata The data to be written \param vectorLengths the number of elements to write to each successive row. \param firstRow the first row to be written. */ /*! \fn template void Column::write (const std::vector& indata, const std::vector& vectorLengths, long firstRow); \brief write a vector of values into a column with specified number of entries written per row. Intended for writing a varying number of elements to multiple rows in a vector column, this may be used for either variable or fixed-width columns. See the indata valarray version of this function for a complete description. */ /*! \fn template void Column::write (S* indata, long nElements, const std::vector& vectorLengths, long firstRow); \brief write a C-array of values of size nElements into a vector column with specified number of entries written per row. Intended for writing a varying number of elements to multiple rows in a vector column, this may be used for either variable or fixed-width columns. See the indata valarray version of this function for a complete description. */ /*! \fn template void Column::writeArrays (const std::vector >& indata, long firstRow); \brief write a vector of valarray objects to the column, starting at row firstRow >= 1 Intended for writing a varying number of elements to multiple rows in a vector column, this may be used for either variable or fixed-width columns. When writing to fixed-width column rows, if the number of elements sent to a particular row are fewer than the column's repeat value, the remaining elements in the row will not be modified. \param indata The data to be written \param firstRow the first row to be written. */ /*! \fn template void Column::writeArrays (const std::vector >& indata, long firstRow, S* nullValue); \brief write a vector of valarray objects to the column, starting at row firstRow >= 1, processing undefined values see version without undefined processing for details. */ /*! \fn template void Column::addNullValue(T nullVal); \brief Set the TNULLn keyword for the column Only relevant for integer valued columns, TNULLn is the value used by cfitsio in undefined processing. All entries in the table equal to an input "null value" are set equal to the value of TNULLn. (For floating point columns a system NaN value is used). */ /*! \fn template bool Column::getNullValue(T* nullVal) const; \brief Get the value of the TNULLn keyword for the column Only relevant for integer valued columns. If the TNULLn keyword is present, its value will be written to *nullVal and the function returns true. If the keyword is not found or its value is undefined, the function returns false and *nullVal is not modified. \param nullVal A pointer to the variable for storing the TNULLn value. */ /*! \fn virtual void Column::readData (long firstRow = 1, long nelements = 1, long firstElem = 1) = 0; \brief Read (or reread) data from the disk into the Column object's internal arrays. This function normally does not need to be called. See the resetRead function for an alternative way of performing a reread from disk. \param firstRow The first row to be read \param nelements The number of elements to read \param firstElem The number of the element on the first row to start at (ignored for scalar columns) */ /*! \fn void Column::setDisplay (); \brief set the TDISPn keyword */ /*! \fn void Column::rows() const; \brief return the number of rows in the table. */ /*! \fn virtual void Column::setDimen (); \brief set the TDIMn keyword. */ /*! \fn std::ostream& operator <<(std::ostream& s, const Column& right); \brief output operator for Column objects. */ /*! \fn int Column::index () const; \brief get the Column index (the n in TTYPEn etc). */ /*! \fn size_t Column::repeat () const; \brief get the repeat count for the rows */ /*! \fn const bool Column::varLength () const; \brief boolean, set to true if Column has variable length vector rows. */ /*! \fn const double Column::scale () const; \brief get TSCALn value TSCALn is used to convert a data array represented on disk in integer format as floating. Useful for compact storage of digitized data. */ /*! \fn const double Column::zero () const; \brief get TZEROn value TZEROn is an integer offset used in the implementation of unsigned data */ /*! \fn const String& Column::name () const; \brief return name of Column (TTYPEn keyword) */ /*! \fn const String& Column::unit () const; \brief get units of data in Column (TUNITn keyword) */ /*! \fn Column::Column (int columnIndex, const String &columnName,const ValueType type, const String &format, const String &unit, Table* p, int rpt = 1, long w = 1, const String &comment = ""); \brief new column creation constructor This constructor allows the specification of: \param columnIndex The column number \param columnName The column name, keyword TTYPEn \param type used for determining class of T in ColumnData, ColumnVectorData \param format the column data format, TFORMn keyword \param unit the column data unit, TUNITn keyword \param p the Table pointer \param rpt (optional) repeat count for the row ( == 1 for AsciiTables) \param w the row width \param comment comment to be added to the header. */ /*! \fn Column::Column (Table* p = 0); \brief Simple constructor to be called by subclass reading ctors. */ /*! \fn fitsfile* Column::fitsPointer (); \brief fits pointer corresponding to fits file containing column data. */ /*! \fn void Column::makeHDUCurrent (); \brief make HDU containing this the current HDU of the fits file. */ /*! \fn int Column::rows () const; \brief return number of rows in the Column */ /*! \fn virtual std::ostream& Column::put (std::ostream& s) const; \brief internal implementation of << operator. */ /*! \fn const ValueType Column::type () const; \brief returns the data type of the column */ /*! \fn const bool Column::isRead () const; \brief flag set to true if the entire column data has been read from disk */ /*! \fn void Column::resetRead(); \brief reset the Column's isRead flag to false This forces the data to be reread from the disk the next time a read command is called on the Column, rather than simply retrieving the data already stored in the Column object's internal arrays. This may be useful for example if trying to reread a Column using a different nullValue argument than for an earlier read. */ /*! \fn long Column::width () const; \brief return column data width */ /*! \fn String& Column::display () const; \brief return TDISPn keyword TDISPn is suggested format for output of column data. */ /*! \fn String& Column::dimen () const; \brief return TDIMn keyword represents dimensions of data arrays in vector columns. for scalar columns, returns a default value. */ /*! \fn const String& Column::format () const; \brief return TFORMn keyword TFORMn specifies data format stored in disk file. */ /*! \fn const String& Column::comment () const; \brief retrieve comment for Column */ /*! \fn Table* Column::parent() const; \brief return a pointer to the Table which owns this Column */ class Column { public: class RangeError : public FitsException //## Inherits: %3946526D031A { public: RangeError (const String& msg, bool silent = true); protected: private: private: //## implementation }; class InvalidDataType : public FitsException //## Inherits: %3947CF30033E { public: InvalidDataType (const String& str = string(), bool silent = true); protected: private: private: //## implementation }; class InvalidRowParameter : public FitsException //## Inherits: %39B5310F01A0 { public: InvalidRowParameter (const String& diag, bool silent = true); protected: private: private: //## implementation }; class WrongColumnType : public FitsException //## Inherits: %39B545780082 { public: WrongColumnType (const String& diag, bool silent = true); protected: private: private: //## implementation }; class UnspecifiedLengths : public FitsException //## Inherits: %3A018C9D007D { public: UnspecifiedLengths (const String& diag, bool silent = true); protected: private: private: //## implementation }; class InvalidRowNumber : public FitsException //## Inherits: %3B0A850F0307 { public: InvalidRowNumber (const String& diag, bool silent = true); protected: private: private: //## implementation }; class InsufficientElements : public FitsException //## Inherits: %3B0BE611010A { public: InsufficientElements (const String& msg, bool silent = true); protected: private: private: //## implementation }; class NoNullValue : public FitsException //## Inherits: %3B0D589A0092 { public: NoNullValue (const String& diag, bool silent = true); protected: private: private: //## implementation }; class InvalidNumberOfRows : public FitsException //## Inherits: %3B20EB8B0205 { public: InvalidNumberOfRows (size_t number, bool silent = true); protected: private: private: //## implementation }; Column(const Column &right); virtual ~Column(); bool operator==(const Column &right) const; bool operator!=(const Column &right) const; virtual void readData (long firstRow, long nelements, long firstElem = 1) = 0; // Virtual copy constructor. virtual Column * clone () const = 0; int rows () const; void setDisplay (); virtual void setDimen (); friend std::ostream& operator << (std::ostream& s, const Column& right); Table* parent () const; // Inequality operators for imposing sort order on columns. friend bool operator < (const Column& left, const Column& right); // Inequality operators for imposing sort order on columns. friend bool operator > (const Column& left, const Column& right); void setLimits (ValueType type); void unit (const String& value); void resetRead (); int index () const; void index (int value); bool isRead () const; void isRead (bool value); long width () const; void width (long value); size_t repeat () const; bool varLength () const; double scale () const; void scale (double value); double zero () const; void zero (double value); const String& display () const; const String& dimen () const; void dimen (const String& value); ValueType type () const; void type (ValueType value); static const String& TFORM (); static const String& TDISP (); static const String& TSCAL (); static const String& TZERO (); static const String& TDIM (); const String& format () const; const String& unit () const; const String& name () const; public: // Additional Public Declarations // scalar column interface. Column's Data Member is a std::vector, // input data is std::vector, std::valarray or S* where S is not // in general the same as T. template void write (const std::vector& indata, long firstRow); void write (const std::vector >& indata, long firstRow); void write (const std::vector >& indata, long firstRow); template void write (const std::valarray& indata, long firstRow); void write (const std::valarray >& indata, long firstRow); void write (const std::valarray >& indata, long firstRow); template void write (S* indata, long nRows, long firstRow); template void write (const std::vector& indata, long firstRow, S* nullValue); template void write (const std::valarray& indata, long firstRow, S* nullValue); template void write (S* indata, long nRows, long firstRow, S* nullValue); // vector column interface. We provide an interface that allows input of a vector, valarray and C-array. // there are versions that write variable numbers of elements per row as specified // in the vectorLengths argument. The user also can directly write a vector > // object which is how the data are stored in the ColumnVectorData object. // this last one is also used internally to implement the variable lengths versions. // fixed length write to binary table from valarray. template void write (const std::valarray& indata, long nRows, long firstRow); void write (const std::valarray >& indata, long nRows, long firstRow); void write (const std::valarray >& indata, long nRows, long firstRow); template void write (const std::vector& indata, long nRows, long firstRow); void write (const std::vector >& indata, long nRows, long firstRow); void write (const std::vector >& indata, long nRows, long firstRow); template void write (S* indata, long nElements, long nRows, long firstRow); template void write (const std::valarray& indata, long nRows, long firstRow, S* nullValue); template void write (const std::vector& indata, long nRows, long firstRow, S* nullValue); template void write (S* indata, long nElements, long nRows, long firstRow, S* nullValue); // variable-length write to vector column from valarray or vector. template void write (const std::valarray& indata, const std::vector& vectorLengths, long firstRow); void write (const std::valarray >& indata, const std::vector& vectorLengths, long firstRow); void write (const std::valarray >& indata, const std::vector& vectorLengths, long firstRow); template void write (const std::vector& indata, const std::vector& vectorLengths, long firstRow); void write (const std::vector >& indata, const std::vector& vectorLengths, long firstRow); void write (const std::vector >& indata, const std::vector& vectorLengths, long firstRow); template void write (S* indata, long nElements, const std::vector& vectorLengths, long firstRow); template void writeArrays (const std::vector >& indata, long firstRow); void writeArrays (const std::vector > >& indata, long firstRow); void writeArrays (const std::vector > >& indata, long firstRow); template void writeArrays (const std::vector >& indata, long firstRow, S* nullValue); // get specified elements of a scalar column, returned as a std::vector // S is NOT the type of the column data itself, it is the type of the returned // data. template void read(std::vector& vals, long first, long last) ; // VC++, at least, won't compile these as template covering std::complex instances. void read(std::vector< std::complex >& , long first, long last); void read(std::vector< std::complex >& , long first, long last); void read(std::vector& vals, long first, long last); // return a set of rows from a scalar column as a valarray. template void read(std::valarray& vals, long first, long last) ; void read(std::valarray >& vals, long first, long last) ; void read(std::valarray >& vals, long first, long last) ; // return a single row of a vector column. template void read(std::valarray& vals, long rows) ; void read(std::valarray >& vals, long rows) ; void read(std::valarray >& vals, long rows) ; // get a set of rows from a vector column. template void readArrays(std::vector >& vals, long first, long last) ; void readArrays(std::vector > >& vals, long first, long last) ; void readArrays(std::vector > >& vals, long first, long last) ; // nullValue has no meaning when the target column has floating point/std::complex // type. Also, implict conversion of std::complex to pure real is not supported // by cfitsio. template void read(std::vector& vals, long first, long last, S* nullValue) ; // return a set of rows from a scalar column as a valarray. template void read(std::valarray& vals, long first, long last, S* nullValue); // return a single row of a vector column. template void read(std::valarray& vals, long rows, S* nullValue) ; // get a set of rows from a vector column. template void readArrays(std::vector >& vals, long first, long last, S* nullValue); // add a null value to the column template void addNullValue(T nullVal); // get the TNULL setting template bool getNullValue(T* nullVal) const; void write (const std::vector& indata, long firstRow); friend void Table::insertRows(long first, long number); friend void Table::deleteRows(long first, long number); friend void Table::deleteRows(const std::vector& rowList); friend void Table::initRead(); friend void Table::reindex(); friend void Table::copyData(const Table& right); protected: Column (int columnIndex, // The column index, i.e. the integer n in the keyword TCOLn const String &columnName, // The column name, curiously TTYPEn ValueType type, const String &format, // The TFORMn keyword. const String &unit, // The TUNITn keyword Table* p, // ! The Table containing the Column object int rpt = 1, long w = 1, const String &comment = ""); Column (Table* p = 0); virtual bool compare (const Column &right) const; fitsfile* fitsPointer (); // Protected method to set the current HDU to be the one containing this Column object. For use in // public read/write methods to ensure that data regarding numbers of rows and width relate to the // right HDU void makeHDUCurrent (); virtual std::ostream& put (std::ostream& s) const; void varLength (bool value); static const String& TBCOL (); static const String& TTYPE (); static const String& TUNIT (); static const String& TNULL (); static const String& TLMIN (); static const String& TLMAX (); static const String& TDMAX (); static const String& TDMIN (); static const std::vector& columnKeys (); const String& comment () const; // Additional Protected Declarations private: Column & operator=(const Column &right); // Insert one or more blank rows into a FITS column. virtual void insertRows (long first, long number = 1) = 0; virtual void deleteRows (long first, long number = 1) = 0; static void loadColumnKeys (); void name (const String& value); void format (const String& value); long numberOfElements (long& first, long& last); // Data Members for Class Attributes static const String s_TBCOL; static const String s_TTYPE; static const String s_TFORM; static const String s_TDISP; static const String s_TUNIT; static const String s_TSCAL; static const String s_TZERO; static const String s_TDIM; static const String s_TNULL; static const String s_TLMIN; static const String s_TLMAX; static const String s_TDMAX; static const String s_TDMIN; // Additional Private Declarations private: //## implementation // Data Members for Class Attributes int m_index; bool m_isRead; long m_width; size_t m_repeat; bool m_varLength; double m_scale; double m_zero; String m_display; String m_dimen; ValueType m_type; static const short LLIMITSHORT; static const long LLIMITLONG; static const unsigned short LLIMITUSHORT; static const unsigned long LLIMITULONG; static const unsigned char LLIMITUCHAR; static const float LLIMITFLOAT; static const double LLIMITDOUBLE; static const short ULIMITSHORT; static const long ULIMITLONG; static const unsigned short ULIMITUSHORT; static const unsigned long ULIMITULONG; static const unsigned char ULIMITUCHAR; static const float ULIMITFLOAT; static const double ULIMITDOUBLE; static const int LLIMITINT; static const int ULIMITINT; static const unsigned int LLIMITUINT; static const unsigned int ULIMITUINT; static const LONGLONG LLIMITLONGLONG; static const LONGLONG ULIMITLONGLONG; // Data Members for Associations Table* m_parent; static std::vector s_columnKeys; String m_comment; String m_format; String m_unit; String m_name; // Additional Implementation Declarations }; // Class CCfits::Column::RangeError // Class CCfits::Column::InvalidDataType // Class CCfits::Column::InvalidRowParameter // Class CCfits::Column::WrongColumnType // Class CCfits::Column::UnspecifiedLengths // Class CCfits::Column::InvalidRowNumber // Class CCfits::Column::InsufficientElements // Class CCfits::Column::NoNullValue // Class CCfits::Column::InvalidNumberOfRows // Class CCfits::Column inline void Column::setDimen () { // default implementation: do nothing. Overridden by ColumnVectorData. } inline std::ostream& operator << (std::ostream& s, const Column& right) { return right.put(s); } inline bool operator < (const Column& left, const Column& right) { return left.m_index < right.m_index; } inline bool operator > (const Column& left, const Column& right) { return left.m_index > right.m_index; } inline void Column::resetRead () { m_isRead = false; } inline int Column::index () const { return m_index; } inline void Column::index (int value) { m_index = value; } inline bool Column::isRead () const { return m_isRead; } inline void Column::isRead (bool value) { m_isRead = value; } inline long Column::width () const { return m_width; } inline void Column::width (long value) { m_width = value; } inline size_t Column::repeat () const { return m_repeat; } inline bool Column::varLength () const { return m_varLength; } inline double Column::scale () const { return m_scale; } inline void Column::scale (double value) { m_scale = value; int status(0); if (fits_set_tscale(fitsPointer(),m_index,value,m_zero,&status)) throw FitsError(status); } inline double Column::zero () const { return m_zero; } inline void Column::zero (double value) { m_zero = value; } inline const String& Column::display () const { return m_display; } inline const String& Column::dimen () const { return m_dimen; } inline void Column::dimen (const String& value) { m_dimen = value; } inline ValueType Column::type () const { return m_type; } inline void Column::type (ValueType value) { m_type = value; } inline const String& Column::TBCOL () { return s_TBCOL; } inline const String& Column::TTYPE () { return s_TTYPE; } inline const String& Column::TFORM () { return s_TFORM; } inline const String& Column::TDISP () { return s_TDISP; } inline const String& Column::TUNIT () { return s_TUNIT; } inline const String& Column::TSCAL () { return s_TSCAL; } inline const String& Column::TZERO () { return s_TZERO; } inline const String& Column::TDIM () { return s_TDIM; } inline const String& Column::TNULL () { return s_TNULL; } inline const String& Column::TLMIN () { return s_TLMIN; } inline const String& Column::TLMAX () { return s_TLMAX; } inline const String& Column::TDMAX () { return s_TDMAX; } inline const String& Column::TDMIN () { return s_TDMIN; } inline const std::vector& Column::columnKeys () { return s_columnKeys; } inline const String& Column::comment () const { return m_comment; } inline const String& Column::format () const { return m_format; } inline const String& Column::unit () const { return m_unit; } inline const String& Column::name () const { return m_name; } } // namespace CCfits #endif CCfits/ColumnT.h0000644000225700000360000016701111661525325013265 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef COLUMNT_H #define COLUMNT_H #ifdef _MSC_VER #include "MSconfig.h" #endif #include "ColumnData.h" #include "ColumnVectorData.h" #include "FITSUtil.h" #include #include #include #include "NewKeyword.h" #ifdef SSTREAM_DEFECT # include #else # include #endif // by design, if the data are not read yet we will return an exception. // here the test is if the entire column has already been read. using std::complex; using std::valarray; // get specified elements of a scalar column. These two functions allow the // user to return either a vector or a valarray depending on the input container. namespace CCfits { template void Column::read(std::vector& vals, long first, long last) { read(vals,first,last,static_cast(0)); } template void Column::read(std::vector& vals, long first, long last, S* nullValue) { // problem: S does not give the type of the Column, but the return type, // so the user must specify this. parent()->makeThisCurrent(); long nelements = numberOfElements(first,last); if (ColumnData* col = dynamic_cast*>(this)) { // fails if user requested outputType different from input type. if (!isRead()) col->readColumnData(first,nelements,nullValue); // scalar column with vector output can just be assigned. FITSUtil::fill(vals,col->data(),first,last); } else { FITSUtil::MatchType outputType; if ( outputType() == type() ) { // in this case user tried to read vector data from scalar, // (i.e. first argument was vector >. // since the cast won't fail on template parameter grounds. throw Column::WrongColumnType(name()); } try { // about exceptions. The dynamic_casts could throw // std::bad_cast. If this happens something is seriously // wrong since the Column stores the value of type() // appropriate to each of the casts on construction. // // the InvalidDataType exception should not be possible. if ( type() == Tdouble ) { ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tfloat) { ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tint) { int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tshort) { short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tlong) { long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tlonglong) { LONGLONG nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tlogical) { bool nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tbit || type() == Tbyte) { unsigned char nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tushort) { unsigned short nullVal(0); if (nullValue) nullVal= static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tuint) { unsigned int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tulong) { unsigned long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else { throw InvalidDataType(name()); } } catch (std::bad_cast) { throw WrongColumnType(name()); } } } template void Column::read(std::valarray& vals, long first, long last) { read(vals,first,last,static_cast(0)); } template void Column::read(std::valarray& vals, long first, long last, S* nullValue) { // require the whole scalar column to have been read. long nelements = numberOfElements(first,last); parent()->makeThisCurrent(); if ( ColumnData* col = dynamic_cast*>(this)) { // fails if user requested outputType different from input type. if (!isRead()) col->readColumnData(first,nelements,nullValue); FITSUtil::fill(vals,col->data(),first,last); } else { FITSUtil::MatchType outputType; if ( outputType() == type() ) { // in this case user tried to read vector data from scalar, // (i.e. first argument was vector >. // since the cast won't fail on template parameter grounds. throw Column::WrongColumnType(name()); } try { // about exceptions. The dynamic_casts could throw // std::bad_cast. If this happens something is seriously // wrong since the Column stores the value of type() // appropriate to each of the casts on construction. // // the InvalidDataType exception should not be possible. if ( type() == Tdouble ) { ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tfloat) { ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tint) { int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tshort) { short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tlong) { long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tlonglong) { LONGLONG nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tlogical) { bool nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tbit || type() == Tbyte) { unsigned char nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tushort) { unsigned short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tuint) { unsigned int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else if (type() == Tulong) { unsigned long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); if (!isRead()) col.readColumnData(first,nelements,&nullVal); FITSUtil::fill(vals,col.data(),first,last); } else { throw InvalidDataType(name()); } } catch (std::bad_cast) { throw WrongColumnType(name()); } } } // get a single row from a vector column. There's no default row number, must // be specified. template void Column::read(std::valarray& vals, long row) { read(vals,row,static_cast(0)); } template void Column::read(std::valarray& vals, long row, S* nullValue) { if (row > parent()->rows()) { throw Column::InvalidRowNumber(name()); } parent()->makeThisCurrent(); // isRead() returns true if the data were read in the ctor. if ( ColumnVectorData* col = dynamic_cast*>(this)) { // fails if user requested outputType different from input type. // input and output are both valarrays. Since one should not // be able to call a constructor for a non-numeric valarray type, // there shouldn't be any InvalidType problems. However, there // is still the vector/scalar possibility and the implicit // conversion request to deal with. if (!isRead()) col->readRow(row,nullValue); FITSUtil::fill(vals,col->data(row)); } else { FITSUtil::MatchType outputType; if ( outputType() == type() ) { // in this case user tried to read vector row from scalar column. // one could be charitable and return a valarray of size 1, // but... I'm going to throw an exception suggesting the user // might not have meant that. throw Column::WrongColumnType(name()); } // the InvalidDataType exception should not be possible. try { // about exceptions. The dynamic_casts could throw // std::bad_cast. If this happens something is seriously // wrong since the Column stores the value of type() // appropriate to each of the casts on construction. // // the InvalidDataType exception should not be possible. if ( type() == Tdouble || type() == VTdouble ) { ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tfloat || type() == VTfloat ) { ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tint || type() == VTint ) { int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tshort || type() == VTshort ) { short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tlong || type() == VTlong ) { long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tlonglong || type() == VTlonglong ) { LONGLONG nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tlogical || type() == VTlogical ) { bool nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tbit || type() == Tbyte || type() == VTbit || type() == VTbyte ) { unsigned char nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tushort || type() == VTushort) { unsigned short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tuint || type() == VTuint) { unsigned int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else if (type() == Tulong || type() == VTulong) { unsigned long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); if (!isRead()) col.readRow(row,&nullVal); FITSUtil::fill(vals,col.data(row)); } else { throw InvalidDataType(name()); } } catch (std::bad_cast) { throw WrongColumnType(name()); } } } template void Column::readArrays(std::vector >& vals, long first, long last) { readArrays(vals,first,last,static_cast(0)); } template void Column::readArrays(std::vector >& vals, long first, long last, S* nullValue) { parent()->makeThisCurrent(); // again, can only call this if the entire column has been read from disk. // user expects 1 based indexing. If 0 based indices are supplied, // add one to both ranges. long range = numberOfElements(first,last); vals.resize(range); if ( ColumnVectorData* col = dynamic_cast*>(this)) { for (int j = 0; j < range; ++j) { if (!isRead()) col->readRow(j + first,nullValue); FITSUtil::fill(vals[j],col->data(j+first)); } } else { FITSUtil::MatchType outputType; if ( outputType() == type() ) { // in this case user tried to read vector data from scalar, // (i.e. first argument was vector >. // since the cast won't fail on template parameter grounds. throw Column::WrongColumnType(name()); } // the InvalidDataType exception should not be possible. try { if ( type() == Tdouble || type() == VTdouble ) { ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tfloat || type() == VTfloat ) { ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tint || type() == VTint ) { int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tshort || type() == VTshort ) { short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tlong || type() == VTlong ) { long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tlonglong || type() == VTlonglong ) { LONGLONG nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tlogical || type() == VTlogical ) { bool nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if (type() == Tbit || type() == Tbyte || type() == VTbit || type() == VTbyte ) { unsigned char nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tushort || type() == VTushort ) { unsigned short nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tuint || type() == VTuint ) { unsigned int nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else if ( type() == Tulong || type() == VTulong ) { unsigned long nullVal(0); if (nullValue) nullVal = static_cast(*nullValue); ColumnVectorData& col = dynamic_cast&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first,&nullVal); FITSUtil::fill(vals[j],col.data(j+first)); } } else { throw InvalidDataType(name()); } } catch (std::bad_cast) { throw WrongColumnType(name()); } } } template void Column::write (const std::vector& indata, long firstRow) { // nullValue is now a pointer, so this is ok. // got to cast the 0 to a pointer to S to avoid // overloading ambiguities. write(indata,firstRow,static_cast(0)); } template void Column::write (const std::valarray& indata, long firstRow) { size_t n(indata.size()); std::vector __tmp(n); for (size_t j = 0; j < n; ++j) __tmp[j] = indata[j]; write(__tmp,firstRow,static_cast(0)); } template void Column::write (S* indata, long nRows, long firstRow) { write(indata,nRows,firstRow,static_cast(0)); } template void Column::write (const std::vector& indata, long firstRow, S* nullValue) { // although underlying code needs to convert the input vector // into a C array, this must be the underlying implementation // [which the others call] because it accepts string arguments // which the version with a pointer won't. [no version that // translates to a char** argument]. parent()->makeThisCurrent(); firstRow = std::max(firstRow,static_cast(1)); if (ColumnData* col = dynamic_cast*>(this)) { col->writeData(indata,firstRow,nullValue); } else { // alright, input data type has to be rewritten as output // data type. FITSUtil::MatchType inType; if ( inType() == type()) { String msg("Incorrect call: writing to vector column "); msg += name(); msg += " requires specification of # rows or vector lengths"; throw WrongColumnType(msg); } else { if ( type() == Tdouble ) { ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow); } else if ( type() == Tfloat ) { ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow); } else if ( type() == Tint ) { int nullVal = 0; int* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } if (nullValue) nullVal = static_cast(*nullValue); ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tshort ) { short nullVal(0); short* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tlong ) { long nullVal(0); long* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tlonglong ) { LONGLONG nullVal(0); LONGLONG* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tlogical ) { bool nullVal(0); bool* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tbyte ) { unsigned char nullVal(0); unsigned char* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tushort ) { unsigned short nullVal(0); unsigned short* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tuint ) { unsigned int nullVal(0); unsigned int* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tulong ) { unsigned long nullVal(0); unsigned long* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } ColumnData& col = dynamic_cast&>(*this); std::vector __tmp; FITSUtil::fill(__tmp,indata,1,indata.size()); col.writeData(__tmp,firstRow,pNullVal); } else { throw InvalidDataType(name()); } } } } template void Column::write (const std::valarray& indata, long firstRow, S* nullValue) { // for scalar columns. std::vector __tmp; FITSUtil::fill(__tmp,indata); write(__tmp,firstRow,nullValue); } template void Column::write (S* indata, long nRows, long firstRow, S* nullValue) { // for scalar columns, data specified with C array if (nRows <= 0) throw InvalidNumberOfRows(nRows); std::vector __tmp(nRows); std::copy(&indata[0],&indata[nRows],__tmp.begin()); write(__tmp,firstRow, nullValue); } template void Column::write (const std::valarray& indata, const std::vector& vectorLengths, long firstRow) { // variable length arrays written from an input valarray. // does not allow NULL value. using namespace std; const size_t nRows = vectorLengths.size(); // Calculate the sums of the vector lengths first simply to do a // check against the size of indata. vector sums(nRows+1); sums[0] = 0; vector::iterator itSums = sums.begin() + 1; partial_sum(vectorLengths.begin(), vectorLengths.end(), itSums); if (indata.size() < static_cast(sums[nRows])) { #ifdef SSTREAM_DEFECT ostrstream msgStr; #else ostringstream msgStr; #endif msgStr << " input data size: " << indata.size() << " vector length sum: " << sums[nRows]; #ifdef SSTREAM_DEFECT msgStr << std::ends; #endif String msg(msgStr.str()); throw Column::InsufficientElements(msg); } vector > vvArray(nRows); for (size_t iRow=0; iRow& vArray = vvArray[iRow]; long first = sums[iRow]; long last = sums[iRow+1]; vArray.resize(last - first); for (long iElem=first; iElem(0)); } template void Column::write (const std::vector& indata,const std::vector& vectorLengths, long firstRow) { // variable length write // implement as valarray version std::valarray __tmp(indata.size()); std::copy(indata.begin(),indata.end(),&__tmp[0]); write(__tmp,vectorLengths,firstRow); } template void Column::write (S* indata, long nelements, const std::vector& vectorLengths, long firstRow) { // implement as valarray version, which will also check array size. size_t n(vectorLengths.size()); std::valarray __tmp(indata,nelements); write(__tmp,vectorLengths,firstRow); } template void Column::write (const std::valarray& indata, long nRows, long firstRow) { write(indata,nRows,firstRow,static_cast(0)); } template void Column::write (const std::vector& indata, long nRows, long firstRow) { write(indata,nRows,firstRow,static_cast(0)); } template void Column::write (S* indata, long nelements, long nRows, long firstRow) { write(indata,nelements,nRows,firstRow,static_cast(0)); } template void Column::write (const std::valarray& indata, long nRows, long firstRow, S* nullValue) { // Write equivalent lengths of data to rows of a vector column. // The column may be either fixed or variable width, but if it's fixed // width the lengths must equal the column's repeat value or an // exception is thrown. if (nRows <= 0) throw InvalidNumberOfRows(nRows); firstRow = std::max(firstRow,static_cast(1)); #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif const size_t numRows = static_cast(nRows); if (indata.size() % numRows) { msgStr << "To use this write function, input array size" <<"\n must be exactly divisible by requested num rows: " << nRows; throw InsufficientElements(msgStr.str()); } const size_t cellsize = indata.size()/numRows; if (!varLength() && cellsize != repeat() ) { msgStr << "column: " << name() << "\n input data size: " << indata.size() << " required: " << nRows*repeat(); String msg(msgStr.str()); throw InsufficientElements(msg); } std::vector > vvArray(numRows); for (size_t i=0; i void Column::write (const std::vector& indata, long nRows, long firstRow, S* nullValue) { // fixed length write of vector // implement as valarray version if (nRows <= 0) throw InvalidNumberOfRows(nRows); std::valarray __tmp(indata.size()); std::copy(indata.begin(),indata.end(),&__tmp[0]); write(__tmp,nRows,firstRow, nullValue); } template void Column::write (S* indata, long nelements, long nRows, long firstRow, S* nullValue) { // fixed length write of C-array // implement as valarray version if (nRows <= 0) throw InvalidNumberOfRows(nRows); std::valarray __tmp(indata,nelements); write(__tmp,nRows,firstRow, nullValue); } template void Column::writeArrays (const std::vector >& indata, long firstRow) { // vector, no null value. writeArrays(indata,firstRow,static_cast(0)); } template void Column::writeArrays (const std::vector >& indata, long firstRow, S* nullValue) { // vector, null value. primary using std::valarray; using std::vector; parent()->makeThisCurrent(); firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData* col = dynamic_cast*>(this)) { col->writeData(indata,firstRow,nullValue); } else { // alright, input data type has to be rewritten as output // data type. FITSUtil::MatchType inType; if ( inType() == type()) { String msg("Incorrect call: writing vectors to scalar column "); throw WrongColumnType(msg); } else { size_t n(indata.size()); if ( type() == Tdouble || type() == VTdouble) { ColumnVectorData& col = dynamic_cast&>(*this); vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow); } else if ( type() == Tfloat || type() == VTfloat) { ColumnVectorData& col = dynamic_cast&>(*this); vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow); } else if ( type() == Tint || type() == VTint) { ColumnVectorData& col = dynamic_cast&>(*this); vector > __tmp(n); int nullVal(0); int* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tshort || type() == VTshort) { ColumnVectorData& col = dynamic_cast&>(*this); vector > __tmp(n); short nullVal(0); short* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tlong || type() == VTlong) { ColumnVectorData& col = dynamic_cast&>(*this); vector > __tmp(n); long nullVal(0); long* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tlonglong || type() == VTlonglong) { ColumnVectorData& col = dynamic_cast&>(*this); vector > __tmp(n); LONGLONG nullVal(0); LONGLONG* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tlogical || type() == VTlogical) { ColumnVectorData& col = dynamic_cast&>(*this); bool nullVal(0); bool* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tbyte || type() == VTbyte) { ColumnVectorData& col = dynamic_cast&>(*this); unsigned char nullVal(0); unsigned char* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,&nullVal); } else if ( type() == Tushort || type() == VTushort) { ColumnVectorData& col = dynamic_cast&>(*this); unsigned short nullVal(0); unsigned short* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tuint || type() == VTuint) { ColumnVectorData& col = dynamic_cast&>(*this); unsigned int nullVal(0); unsigned int* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else if ( type() == Tulong || type() == VTulong) { ColumnVectorData& col = dynamic_cast&>(*this); unsigned long nullVal(0); unsigned long* pNullVal = 0; if (nullValue) { nullVal = static_cast(*nullValue); pNullVal = &nullVal; } vector > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow,pNullVal); } else { throw InvalidDataType(name()); } } } } template void Column::addNullValue(T nullVal) { parent()->makeThisCurrent(); int status(0); #ifdef SSTREAM_DEFECT std::ostrstream keyName; keyName << "TNULL" << index() << std::ends; char* nullKey = const_cast(keyName.str()); #else std::ostringstream keyName; keyName << "TNULL" << index(); String keyNameStr = keyName.str(); char* nullKey = const_cast(keyNameStr.c_str()); #endif FITSUtil::MatchType inputType; int dataType = static_cast(inputType()); if (dataType == static_cast(Tstring)) throw InvalidDataType("attempting to set TNULLn to a string."); // update key but don't add to keyword list because it's really a column // property not a table metadata property. And it needs to be automatically // renumbered if columns are inserted or deleted. if (fits_update_key(fitsPointer(),dataType,nullKey,&nullVal,0,&status)) throw FitsError(status); // The following is called to make sure the HDU struct is immediately // updated in case a column write operation is performed shortly after this // function exits. if (fits_set_hdustruc(fitsPointer(),&status)) throw FitsError(status); } template bool Column::getNullValue(T* nullVal) const { parent()->makeThisCurrent(); #ifdef SSTREAM_DEFECT std::ostrstream keyName; keyName << "TNULL" << index() << std::ends; char* nullKey = const_cast(keyName.str()); #else std::ostringstream keyName; keyName << "TNULL" << index(); String keyNameStr = keyName.str(); char* nullKey = const_cast(keyNameStr.c_str()); #endif int status=0; FITSUtil::MatchType inputType; int dataType = static_cast(inputType()); if (dataType == static_cast(Tstring)) throw InvalidDataType("attempting to read TNULLn into a string."); T tmpVal(*nullVal); bool keyExists = false; if (fits_read_key(m_parent->fitsPointer(), dataType, nullKey, &tmpVal, 0, &status)) { if (status == KEY_NO_EXIST || status == VALUE_UNDEFINED) return keyExists; else throw FitsError(status); } keyExists = true; *nullVal = tmpVal; return keyExists; } } // namespace CCfits #endif CCfits/ColumnCreator.h0000644000225700000360000000446611470265344014465 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef COLUMNCREATOR_H #define COLUMNCREATOR_H 1 #include // ColumnVectorData #include "ColumnVectorData.h" // ColumnData #include "ColumnData.h" namespace CCfits { class Table; class Column; } // namespace CCfits #include #include namespace CCfits { class ColumnCreator { public: ColumnCreator (Table* p); virtual ~ColumnCreator(); void reset (); // getColumn is a calling function for MakeColumn, i.e. // it specifies a column in an existing file to be "got" Column * getColumn (int number, const String& name, const String& format, const String& unit = ""); // createColumn is for specifying input data for creating // new columns in tables. Column * createColumn (int number, ValueType type, const String &name, const String &format, const String &unit, long repeat = 1, long width = 1, double scaleFactor = 1., double offset = 0, const String &comment = ""); // Additional Public Declarations protected: // MakeColumn is a virtual function that makes a Column // object with appropriate data member from an existing // column in a file. virtual Column * MakeColumn (const int index, const String &name, const String &format, const String &unit, const long repeat, const long width, const String &comment = "", const int decimals = 0); // Additional Protected Declarations private: void getScaling (int index, int& type, long& repeat, long& width, double& tscale, double& tzero); const Table* parent () const; void parent (Table* value); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes Column *m_column; Table* m_parent; // Additional Implementation Declarations }; // Class CCfits::ColumnCreator inline void ColumnCreator::reset () { m_column = 0; } inline const Table* ColumnCreator::parent () const { return m_parent; } inline void ColumnCreator::parent (Table* value) { m_parent = value; } } // namespace CCfits #endif CCfits/ColumnData.h0000644000225700000360000004622011470265344013731 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef COLUMNDATA_H #define COLUMNDATA_H 1 #include "CCfits.h" // vector #include // Column #include "Column.h" #ifdef _MSC_VER #include "MSconfig.h" #endif #include #include #include #include "FITSUtil.h" using std::complex; #include "FITS.h" namespace CCfits { template class ColumnData : public Column //## Inherits: %385E51565EE8 { public: ColumnData(const ColumnData< T > &right); ColumnData (Table* p = 0); ColumnData (int columnIndex, const string &columnName, ValueType type, const String &format, const String &unit, Table* p, int rpt = 1, long w = 1, const String &comment = ""); ~ColumnData(); virtual ColumnData* clone () const; virtual void readData (long firstRow, long nelements, long firstElem = 1); void setDataLimits (T* limits); const T minLegalValue () const; void minLegalValue (T value); const T maxLegalValue () const; void maxLegalValue (T value); const T minDataValue () const; void minDataValue (T value); const T maxDataValue () const; void maxDataValue (T value); const std::vector& data () const; void setData (const std::vector& value); T data (int i); void data (int i, T value); // Additional Public Declarations friend class Column; protected: // Additional Protected Declarations private: ColumnData< T > & operator=(const ColumnData< T > &right); void readColumnData (long firstRow, long nelements, T* nullValue = 0); virtual bool compare (const Column &right) const; virtual std::ostream& put (std::ostream& s) const; void writeData (T* indata, long nRows = 1, long firstRow = 1, T* nullValue = 0); void writeData (const std::vector& indata, long firstRow = 1, T* nullValue = 0); // Insert one or more blank rows into a FITS column. virtual void insertRows (long first, long number = 1); virtual void deleteRows (long first, long number = 1); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes T m_minLegalValue; T m_maxLegalValue; T m_minDataValue; T m_maxDataValue; // Data Members for Associations std::vector m_data; // Additional Implementation Declarations }; // Parameterized Class CCfits::ColumnData template inline void ColumnData::readData (long firstRow, long nelements, long firstElem) { readColumnData(firstRow,nelements,static_cast(0)); } template inline const T ColumnData::minLegalValue () const { return m_minLegalValue; } template inline void ColumnData::minLegalValue (T value) { m_minLegalValue = value; } template inline const T ColumnData::maxLegalValue () const { return m_maxLegalValue; } template inline void ColumnData::maxLegalValue (T value) { m_maxLegalValue = value; } template inline const T ColumnData::minDataValue () const { return m_minDataValue; } template inline void ColumnData::minDataValue (T value) { m_minDataValue = value; } template inline const T ColumnData::maxDataValue () const { return m_maxDataValue; } template inline void ColumnData::maxDataValue (T value) { m_maxDataValue = value; } template inline const std::vector& ColumnData::data () const { return m_data; } template inline void ColumnData::setData (const std::vector& value) { m_data = value; } template inline T ColumnData::data (int i) { // return data stored in the ith row, which is in the i-1 th location in the array. return m_data[i - 1]; } template inline void ColumnData::data (int i, T value) { // assign data to i-1 th location in the array, representing the ith row. m_data[i - 1] = value; } // Parameterized Class CCfits::ColumnData template ColumnData::ColumnData(const ColumnData &right) :Column(right), m_minLegalValue(right.m_minLegalValue), m_maxLegalValue(right.m_maxLegalValue), m_minDataValue(right.m_minDataValue), m_maxDataValue(right.m_maxDataValue), m_data(right.m_data) { } template ColumnData::ColumnData (Table* p) : Column(p), m_minLegalValue(), m_maxLegalValue(), m_minDataValue(), m_maxDataValue(), m_data() { } template ColumnData::ColumnData (int columnIndex, const string &columnName, ValueType type, const String &format, const String &unit, Table* p, int rpt, long w, const String &comment) : Column(columnIndex,columnName,type,format,unit,p,rpt,w,comment), m_minLegalValue(), m_maxLegalValue(), m_minDataValue(), m_maxDataValue(), m_data() { } template ColumnData::~ColumnData() { } template void ColumnData::readColumnData (long firstRow, long nelements, T* nullValue) { if ( rows() < nelements ) { std::cerr << "CCfits: More data requested than contained in table. "; std::cerr << "Extracting complete column.\n"; nelements = rows(); } int status(0); int anynul(0); FITSUtil::auto_array_ptr array(new T[nelements]); makeHDUCurrent(); if ( fits_read_col(fitsPointer(),type(), index(), firstRow, 1, nelements, nullValue, array.get(), &anynul, &status) ) throw FitsError(status); if (m_data.size() != static_cast( rows() ) ) m_data.resize(rows()); std::copy(&array[0],&array[nelements],m_data.begin()+firstRow-1); if (nelements == rows()) isRead(true); } template bool ColumnData::compare (const Column &right) const { if ( !Column::compare(right) ) return false; const ColumnData& that = static_cast&>(right); unsigned int n = m_data.size(); if ( that.m_data.size() != n ) return false; for (unsigned int i = 0; i < n ; i++) { if (m_data[i] != that.m_data[i]) return false; } return true; } template ColumnData* ColumnData::clone () const { return new ColumnData(*this); } template std::ostream& ColumnData::put (std::ostream& s) const { Column::put(s); if (FITS::verboseMode() && type() != Tstring) { s << " Column Legal limits: ( " << m_minLegalValue << "," << m_maxLegalValue << " )\n" << " Column Data limits: ( " << m_minDataValue << "," << m_maxDataValue << " )\n"; } if (!m_data.empty()) { std::ostream_iterator output(s,"\n"); // output each row on a separate line. // user can supply manipulators to stream for formatting. std::copy(m_data.begin(),m_data.end(),output); } return s; } template void ColumnData::writeData (T* indata, long nRows, long firstRow, T* nullValue) { // set columnData's data member to equal what's written to file. // indata has size nRows: elements firstRow to firstRow + nRows - 1 will be written. // if this exceeds the current rowlength of the HDU, update the return value for // rows() in the parent after the fitsio call. int status(0); long elementsToWrite(nRows + firstRow -1); // get a copy for restorative action. std::vector __tmp(m_data); if (elementsToWrite != static_cast(m_data.size())) { m_data.resize(elementsToWrite,T()); } std::copy(&indata[0],&indata[nRows],m_data.begin()+firstRow-1); // if successful, write to disk. try { if (nullValue) { if (fits_write_colnull(fitsPointer(), type(), index(), firstRow, 1, nRows, indata, nullValue, &status) != 0) throw FitsError(status); } else { if (fits_write_col(fitsPointer(), type(), index(), firstRow, 1, nRows, indata, &status) != 0) throw FitsError(status); } // tell the Table that the number of rows has changed parent()->updateRows(); } catch (FitsError) // the only thing that can throw here. { // reset to original content and rethrow the exception. m_data = __tmp; if (status == NO_NULL) throw NoNullValue(name()); else throw; } } template void ColumnData::writeData (const std::vector& indata, long firstRow, T* nullValue) { FITSUtil::CVarray convert; FITSUtil::auto_array_ptr pcolData (convert(indata)); T* columnData = pcolData.get(); writeData(columnData,indata.size(),firstRow,nullValue); } template void ColumnData::insertRows (long first, long number) { FITSUtil::FitsNullValue blank; typename std::vector::iterator in; if (first !=0) { in = m_data.begin()+first; } else { in = m_data.begin(); } // non-throwing operations. m_data.insert(in,number,blank()); } template void ColumnData::deleteRows (long first, long number) { m_data.erase(m_data.begin()+first-1,m_data.begin()+first-1+number); } template void ColumnData::setDataLimits (T* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = std::max(limits[2],limits[0]); m_maxDataValue = std::min(limits[3],limits[1]); } // Additional Declarations // all functions that operate on strings or complex data that call cfitsio // need to be specialized. #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } #else template <> void ColumnData >::setDataLimits (complex* limits); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } #else template <> void ColumnData >::setDataLimits (complex* limits); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData::readColumnData (long firstRow, long nelements, string* nullValue) { int status = 0; int anynul = 0; char** array = new char*[nelements]; int j(0); for ( ; j < nelements; ++j) { array[j] = new char[width() + 1]; } char* nulval = 0; if (nullValue) { nulval = const_cast(nullValue->c_str()); } else { nulval = new char; *nulval = '\0'; } try { makeHDUCurrent(); if (fits_read_col_str(fitsPointer(),index(), firstRow,1,nelements, nulval,array, &anynul,&status) ) throw FitsError(status); } catch (FitsError) { // ugly. but better than leaking resources. for (int jj = 0; jj < nelements; ++jj) { delete [] array[jj]; } delete [] array; delete nulval; throw; } if (m_data.size() != rows()) setData(std::vector(rows(),string(nulval))); // the 'first -1 ' converts to zero based indexing. for ( j = 0; j < nelements; j++) { m_data[j - 1 + firstRow] = string(array[j]); } for ( j = 0; j < nelements; j++) { delete [] array[j]; } delete [] array; delete nulval; if (nelements == rows()) isRead(true); } #else template <> void ColumnData::readColumnData (long firstRow, long nelements, string* nullValue); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData >::readColumnData (long firstRow, long nelements, complex* nullValue) { // specialization for ColumnData int status(0); int anynul(0); FITSUtil::auto_array_ptr pArray(new float[nelements*2]); float* array = pArray.get(); float nulval(0); makeHDUCurrent(); if (fits_read_col_cmp(fitsPointer(),index(), firstRow,1,nelements, nulval,array, &anynul,&status) ) throw FitsError(status); if (m_data.size() != rows()) m_data.resize(rows()); // the 'j -1 ' converts to zero based indexing. for (int j = 0; j < nelements; ++j) { m_data[j - 1 + firstRow] = std::complex(array[2*j],array[2*j+1]); } if (nelements == rows()) isRead(true); } #else template <> void ColumnData >::readColumnData (long firstRow, long nelements,complex* nullValue ); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData >::readColumnData (long firstRow, long nelements, complex* nullValue) { // specialization for ColumnData > int status(0); int anynul(0); FITSUtil::auto_array_ptr pArray(new double[nelements*2]); double* array = pArray.get(); double nulval(0); makeHDUCurrent(); if (fits_read_col_dblcmp(fitsPointer(), index(), firstRow,1,nelements, nulval,array, &anynul,&status) ) throw FitsError(status); if (m_data.size() != rows()) setData(std::vector >(rows(),nulval)); // the 'j -1 ' converts to zero based indexing. for (int j = 0; j < nelements; j++) { m_data[j - 1 + firstRow] = std::complex(array[2*j],array[2*j+1]); } if (nelements == rows()) isRead(true); } #else template <> void ColumnData >::readColumnData (long firstRow, long nelements,complex* nullValue); #endif #if SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData::writeData (const std::vector& indata, long firstRow, string* nullValue) { int status=0; char** columnData=FITSUtil::CharArray(indata); if ( fits_write_colnull(fitsPointer(), TSTRING, index(), firstRow, 1, indata.size(), columnData, 0, &status) != 0 ) throw FitsError(status); unsigned long elementsToWrite (indata.size() + firstRow - 1); std::vector __tmp(m_data); if (m_data.size() < elementsToWrite) { m_data.resize(elementsToWrite,""); std::copy(__tmp.begin(),__tmp.end(),m_data.begin()); } std::copy(indata.begin(),indata.end(),m_data.begin()+firstRow-1); for (size_t i = 0; i < indata.size(); ++i) { delete [] columnData[i]; } delete [] columnData; } #else template <> void ColumnData::writeData (const std::vector& inData, long firstRow, string* nullValue); #endif #ifdef SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData >::writeData (const std::vector >& inData, long firstRow, complex* nullValue) { int status(0); int nRows (inData.size()); FITSUtil::auto_array_ptr pData(new float[nRows*2]); float* Data = pData.get(); std::vector > __tmp(m_data); for (int j = 0; j < nRows; ++j) { Data[ 2*j] = inData[j].real(); Data[ 2*j + 1] = inData[j].imag(); } try { if (fits_write_col_cmp(fitsPointer(), index(), firstRow, 1, nRows,Data, &status) != 0) throw FitsError(status); long elementsToWrite(nRows + firstRow -1); if (elementsToWrite > static_cast(m_data.size())) { m_data.resize(elementsToWrite); } std::copy(inData.begin(),inData.end(),m_data.begin()+firstRow-1); // tell the Table that the number of rows has changed parent()->updateRows(); } catch (FitsError) // the only thing that can throw here. { // reset to original content and rethrow the exception. m_data.resize(__tmp.size()); m_data = __tmp; } } #else template <> void ColumnData >::writeData (const std::vector >& inData, long firstRow, complex* nullValue); #endif #ifdef SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnData >::writeData (const std::vector >& inData, long firstRow, complex* nullValue) { int status(0); int nRows (inData.size()); FITSUtil::auto_array_ptr pData(new double[nRows*2]); double* Data = pData.get(); std::vector > __tmp(m_data); for (int j = 0; j < nRows; ++j) { pData[ 2*j] = inData[j].real(); pData[ 2*j + 1] = inData[j].imag(); } try { if (fits_write_col_dblcmp(fitsPointer(), index(), firstRow, 1, nRows,Data, &status) != 0) throw FitsError(status); long elementsToWrite(nRows + firstRow -1); if (elementsToWrite > static_cast(m_data.size())) { m_data.resize(elementsToWrite); } std::copy(inData.begin(),inData.end(),m_data.begin()+firstRow-1); // tell the Table that the number of rows has changed parent()->updateRows(); } catch (FitsError) // the only thing that can throw here. { // reset to original content and rethrow the exception. m_data.resize(__tmp.size()); m_data = __tmp; } } #else template <> void ColumnData >::writeData (const std::vector >& inData, long firstRow, complex* nullValue); #endif } // namespace CCfits #endif CCfits/ColumnVectorData.h0000644000225700000360000012413211656772431015121 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef COLUMNVECTORDATA_H #define COLUMNVECTORDATA_H 1 #ifdef _MSC_VER #include "MSconfig.h" #endif #include "CCfits.h" // valarray #include // vector #include // Column #include "Column.h" #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include #else #include #endif #include #include namespace CCfits { class Table; } #include "FITS.h" #include "FITSUtil.h" using std::complex; namespace CCfits { template class ColumnVectorData : public Column //## Inherits: %38BAD1D4D370 { public: ColumnVectorData(const ColumnVectorData< T > &right); ColumnVectorData (Table* p = 0); ColumnVectorData (int columnIndex, const string &columnName, ValueType type, const string &format, const string &unit, Table* p, int rpt = 1, long w = 1, const string &comment = ""); ~ColumnVectorData(); virtual void readData (long firstrow, long nelements, long firstelem = 1); virtual ColumnVectorData* clone () const; virtual void setDimen (); void setDataLimits (T* limits); const T minLegalValue () const; void minLegalValue (T value); const T maxLegalValue () const; void maxLegalValue (T value); const T minDataValue () const; void minDataValue (T value); const T maxDataValue () const; void maxDataValue (T value); const std::vector >& data () const; void setData (const std::vector >& value); const std::valarray& data (int i) const; void data (int i, const std::valarray& value); // Additional Public Declarations friend class Column; protected: // Additional Protected Declarations private: ColumnVectorData< T > & operator=(const ColumnVectorData< T > &right); virtual bool compare (const Column &right) const; void resizeDataObject (const std::vector >& indata, size_t firstRow); // Reads a specified number of column rows. // // There are no default arguments. The function // Column::read(firstrow,firstelem,nelements) // is designed for reading the whole column. virtual void readColumnData (long first, long last, T* nullValue = 0); virtual std::ostream& put (std::ostream& s) const; void writeData (const std::valarray& indata, long numRows, long firstRow = 1, T* nullValue = 0); void writeData (const std::vector >& indata, long firstRow = 1, T* nullValue = 0); // Reads a specified number of column rows. // // There are no default arguments. The function // Column::read(firstrow,firstelem,nelements) // is designed for reading the whole column. virtual void readRow (size_t row, T* nullValue = 0); // Reads a variable row.. virtual void readVariableRow (size_t row, T* nullValue = 0); void readColumnData (long firstrow, long nelements, long firstelem, T* nullValue = 0); void writeData (const std::valarray& indata, const std::vector& vectorLengths, long firstRow = 1, T* nullValue = 0); void writeFixedRow (const std::valarray& data, long row, long firstElem = 1, T* nullValue = 0); void writeFixedArray (T* data, long nElements, long nRows, long firstRow, T* nullValue = 0); // Insert one or more blank rows into a FITS column. virtual void insertRows (long first, long number = 1); virtual void deleteRows (long first, long number = 1); void doWrite (T* array, long row, long rowSize, long firstElem, T* nullValue); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes T m_minLegalValue; T m_maxLegalValue; T m_minDataValue; T m_maxDataValue; // Data Members for Associations std::vector > m_data; // Additional Implementation Declarations }; // Parameterized Class CCfits::ColumnVectorData template inline void ColumnVectorData::readData (long firstrow, long nelements, long firstelem) { readColumnData(firstrow,nelements,firstelem,static_cast(0)); } template inline const T ColumnVectorData::minLegalValue () const { return m_minLegalValue; } template inline void ColumnVectorData::minLegalValue (T value) { m_minLegalValue = value; } template inline const T ColumnVectorData::maxLegalValue () const { return m_maxLegalValue; } template inline void ColumnVectorData::maxLegalValue (T value) { m_maxLegalValue = value; } template inline const T ColumnVectorData::minDataValue () const { return m_minDataValue; } template inline void ColumnVectorData::minDataValue (T value) { m_minDataValue = value; } template inline const T ColumnVectorData::maxDataValue () const { return m_maxDataValue; } template inline void ColumnVectorData::maxDataValue (T value) { m_maxDataValue = value; } template inline const std::vector >& ColumnVectorData::data () const { return m_data; } template inline void ColumnVectorData::setData (const std::vector >& value) { m_data = value; } template inline const std::valarray& ColumnVectorData::data (int i) const { return m_data[i - 1]; } template inline void ColumnVectorData::data (int i, const std::valarray& value) { if (m_data[i-1].size() != value.size()) m_data[i-1].resize(value.size()); m_data[i - 1] = value; } // Parameterized Class CCfits::ColumnVectorData template ColumnVectorData::ColumnVectorData(const ColumnVectorData &right) :Column(right), m_minLegalValue(right.m_minLegalValue), m_maxLegalValue(right.m_maxLegalValue), m_minDataValue(right.m_minDataValue), m_maxDataValue(right.m_maxDataValue), m_data(right.m_data) { } template ColumnVectorData::ColumnVectorData (Table* p) : Column(p), m_minLegalValue(0), m_maxLegalValue(0), m_minDataValue(0), m_maxDataValue(0), m_data() { } template ColumnVectorData::ColumnVectorData (int columnIndex, const string &columnName, ValueType type, const string &format, const string &unit, Table* p, int rpt, long w, const string &comment) : Column(columnIndex,columnName,type,format,unit,p,rpt,w,comment), m_minLegalValue(0), m_maxLegalValue(0), m_minDataValue(0), m_maxDataValue(0), m_data() { } template ColumnVectorData::~ColumnVectorData() { // valarray destructor should do all the work. } template bool ColumnVectorData::compare (const Column &right) const { if ( !Column::compare(right) ) return false; const ColumnVectorData& that = static_cast&>(right); size_t n = m_data.size(); // m_data is of type valarray. if ( that.m_data.size() != n ) return false; for (size_t i = 0; i < n ; i++) { size_t nn = m_data[i].size(); // first check size (also, == on 2 valarrays is only defined if they // are equal in size). if (that.m_data[i].size() != nn ) return false; std::valarray test = (m_data[i] == that.m_data[i]); for (size_t j = 0; j < nn ; j++ ) if ( !test[j] ) return false; } return true; } template ColumnVectorData* ColumnVectorData::clone () const { return new ColumnVectorData(*this); } template void ColumnVectorData::resizeDataObject (const std::vector >& indata, size_t firstRow) { // the rows() call is the value before updating. // the updateRows() call at the end sets the call to return the // value from the fits pointer - which is changed by writeFixedArray // or writeFixedRow. const size_t lastInputRow(indata.size() + firstRow - 1); const size_t newLastRow = std::max(lastInputRow,static_cast(rows())); // if the write instruction increases the rows, we need to add // rows to the data member and preserve its current contents. // rows() >= origNRows since it is the value for entire table, // not just this column. const size_t origNRows(m_data.size()); // This will always be an expansion. vector.resize() doesn't // invalidate any data on an expansion. if (newLastRow > origNRows) m_data.resize(newLastRow); if (varLength()) { // The incoming data will determine each row size, thus // no need to preserve any existing values in the row. // Each value will eventually be overwritten. for (size_t iRow = firstRow-1; iRow < lastInputRow; ++iRow) { std::valarray& current = m_data[iRow]; const size_t newSize = indata[iRow - (firstRow-1)].size(); if (current.size() != newSize) current.resize(newSize); } } else { // All row sizes in m_data should ALWAYS be either repeat(), // or 0 if they haven't been initialized. This is true regardless // of the incoming data row size. // Perform LAZY initialization of m_data rows. Only // expand a row valarray when it is first needed. for (size_t iRow = firstRow-1; iRow < lastInputRow; ++iRow) { if (m_data[iRow].size() != repeat()) m_data[iRow].resize(repeat()); } } } template void ColumnVectorData::setDimen () { int status(0); FITSUtil:: auto_array_ptr dimValue (new char[FLEN_VALUE]); #ifdef SSTREAM_DEFECT std::ostrstream key; #else std::ostringstream key; #endif key << "TDIM" << index(); #ifdef SSTREAM_DEFECT fits_read_key_str(fitsPointer(), key.str(), dimValue.get(),0,&status); #else fits_read_key_str(fitsPointer(),const_cast(key.str().c_str()),dimValue.get(),0,&status); #endif if (status == 0) { dimen(String(dimValue.get())); } } template void ColumnVectorData::readColumnData (long first, long last, T* nullValue) { makeHDUCurrent(); if ( rows() < last ) { std::cerr << "CCfits: More data requested than contained in table. "; std::cerr << "Extracting complete column.\n"; last = rows(); } long nelements = (last - first + 1)*repeat(); readColumnData(first,nelements,1,nullValue); if (first <= 1 && last == rows()) isRead(true); } template std::ostream& ColumnVectorData::put (std::ostream& s) const { // output header information Column::put(s); if ( FITS::verboseMode() ) { s << " Column Legal limits: ( " << m_minLegalValue << "," << m_maxLegalValue << " )\n" << " Column Data limits: ( " << m_minDataValue << "," << m_maxDataValue << " )\n"; } if (!m_data.empty()) { for (size_t j = 0; j < m_data.size(); j++) { size_t n = m_data[j].size(); if ( n ) { s << "Row " << j + 1 << " Vector Size " << n << '\n'; for (size_t k = 0; k < n - 1; k++) { s << m_data[j][k] << '\t'; } s << m_data[j][n - 1] << '\n'; } } } return s; } template void ColumnVectorData::writeData (const std::valarray& indata, long numRows, long firstRow, T* nullValue) { // This version of writeData is called by Column write functions which // can only write the same number of elements to each row. // For fixed width columns, this must be equal to the repeat value // or an exception is thrown. For variable width, it only requires // that indata.size()/numRows is an int. // won't do anything if < 0, and will give divide check if == 0. if (numRows <= 0) throw InvalidNumberOfRows(numRows); #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif if (indata.size() % static_cast(numRows)) { msgStr << "To use this write function, input array size" <<"\n must be exactly divisible by requested num rows: " << numRows; throw InsufficientElements(msgStr.str()); } const size_t cellsize = indata.size()/static_cast(numRows); if (!varLength() && cellsize != repeat() ) { msgStr << "column: " << name() << "\n input data size: " << indata.size() << " required: " << numRows*repeat(); String msg(msgStr.str()); throw InsufficientElements(msg); } std::vector > internalFormat(numRows); // support writing equal row lengths to variable columns. for (long j = 0; j < numRows; ++j) { internalFormat[j].resize(cellsize); internalFormat[j] = indata[std::slice(cellsize*j,cellsize,1)]; } // change the size of m_data based on the first row to be written // and on the input data vector sizes. writeData(internalFormat,firstRow,nullValue); } template void ColumnVectorData::writeData (const std::vector >& indata, long firstRow, T* nullValue) { // This is called directly by Column's writeArrays functions, and indirectly // by both categories of write functions, ie. those which allow differing // lengths per row and those that don't. const size_t nInputRows(indata.size()); using std::valarray; resizeDataObject(indata,firstRow); // After the above call, can assume all m_data arrays to be written to // have been properly resized whether we're dealing with fixed or // variable length. if (varLength()) { // firstRow is 1-based, but all these internal row variables // will be 0-based. const size_t endRow = nInputRows + firstRow-1; for (size_t iRow = firstRow-1; iRow < endRow; ++iRow) { m_data[iRow] = indata[iRow - (firstRow-1)]; // doWrite wants 1-based rows. doWrite(&m_data[iRow][0], iRow+1, m_data[iRow].size(), 1, nullValue); } parent()->updateRows(); } else { // Check for simplest case of all valarrays of size repeat(). // If any are greater, throw an error. const size_t colRepeat = repeat(); bool allEqualRepeat = true; for (size_t i=0; i colRepeat) { #ifdef SSTREAM_DEFECT std::ostrstream oss; #else std::ostringstream oss; #endif oss << " vector column length " << colRepeat <<", input valarray length " << sz; throw InvalidRowParameter(oss.str()); } if (sz < colRepeat) allEqualRepeat = false; } if (allEqualRepeat) { // concatenate the valarrays and write. const size_t nElements (colRepeat*nInputRows); FITSUtil::CVAarray convert; FITSUtil::auto_array_ptr pArray(convert(indata)); T* array = pArray.get(); // if T is complex, then CVAarray returns a // C-array of complex objects. But FITS requires an array of complex's // value_type. // This writes to the file and also calls updateRows. writeFixedArray(array,nElements,nInputRows,firstRow,nullValue); for (size_t j = 0; j < nInputRows ; ++j) { const valarray& input = indata[j]; valarray& current = m_data[j + firstRow - 1]; // current should be resized by resizeDataObject. current = input; } } else { // Some input arrays have fewer than colRepeat elements. const size_t endRow = nInputRows + firstRow-1; for (size_t iRow = firstRow-1; iRow& input = indata[iRow-(firstRow-1)]; writeFixedRow(input, iRow, 1, nullValue); } parent()->updateRows(); } } // end if !varLength } template void ColumnVectorData::readRow (size_t row, T* nullValue) { makeHDUCurrent(); if ( row > static_cast(rows()) ) { #ifdef SSTREAM_DEFECT std::ostrstream msg; #else std::ostringstream msg; #endif msg << " row requested: " << row << " row range: 1 - " << rows(); #ifdef SSTREAM_DEFECT msg << std::ends; #endif throw Column::InvalidRowNumber(msg.str()); } // this is really for documentation purposes. I expect the optimizer will // remove this redundant definition . bool variable(type() < 0); long nelements(repeat()); if (variable) { readVariableRow(row,nullValue); } else { readColumnData(row,nelements,1,nullValue); } } template void ColumnVectorData::readVariableRow (size_t row, T* nullValue) { int status(0); long offset(0); long repeat(0); if (fits_read_descript(fitsPointer(),index(),static_cast(row), &repeat,&offset,&status)) throw FitsError(status); readColumnData(row,repeat,1,nullValue); } template void ColumnVectorData::readColumnData (long firstrow, long nelements, long firstelem, T* nullValue) { int status=0; FITSUtil::auto_array_ptr pArray(new T[nelements]); T* array = pArray.get(); int anynul(0); if (fits_read_col(fitsPointer(), abs(type()),index(), firstrow, firstelem, nelements, nullValue, array, &anynul, &status) != 0) throw FitsError(status); size_t countRead = 0; const size_t ONE = 1; if (m_data.size() != static_cast(rows())) m_data.resize(rows()); size_t vectorSize(0); if (!varLength()) { vectorSize = std::max(repeat(),ONE); // safety check. } else { // assume that the user specified the correct length for // variable columns. This should be ok since readVariableColumns // uses fits_read_descripts to return this information from the // fits pointer, and this is passed as nelements here. vectorSize = nelements; } size_t n = nelements; int i = firstrow; int ii = i - 1; while ( countRead < n) { std::valarray& current = m_data[ii]; if (current.size() != vectorSize) current.resize(vectorSize); int elementsInFirstRow = vectorSize-firstelem + 1; bool lastRow = ( (nelements - countRead) < vectorSize); if (lastRow) { int elementsInLastRow = nelements - countRead; std::valarray ttmp(array + vectorSize*(ii-firstrow) + elementsInFirstRow, elementsInLastRow); for (int kk = 0; kk < elementsInLastRow; kk++) current[kk] = ttmp[kk]; countRead += elementsInLastRow; } // what to do with complete rows else { if (firstelem == 1 || (firstelem > 1 && i > firstrow) ) { std::valarray ttmp(array + vectorSize*(ii - firstrow) + elementsInFirstRow,vectorSize); current = ttmp; ii++; i++; countRead += vectorSize; } else { if (i == firstrow) { std::valarray ttmp(array,elementsInFirstRow); for (size_t kk = firstelem ; kk < vectorSize ; kk++) current[kk] = ttmp[kk-firstelem]; countRead += elementsInFirstRow; i++; ii++; } } } } } template void ColumnVectorData::writeData (const std::valarray& indata, const std::vector& vectorLengths, long firstRow, T* nullValue) { // Called from Column write functions which allow differing lengths // for each row. using namespace std; const size_t N(vectorLengths.size()); vector sums(N); // pre-calculate partial sums of vector lengths for use as array offsets. partial_sum(vectorLengths.begin(),vectorLengths.end(),sums.begin()); // check that sufficient data have been supplied to carry out the entire operation. if (indata.size() < static_cast(sums[N-1]) ) { #ifdef SSTREAM_DEFECT ostrstream msgStr; #else ostringstream msgStr; #endif msgStr << " input data size: " << indata.size() << " vector length sum: " << sums[N-1]; #ifdef SSTREAM_DEFECT msgStr << std::ends; #endif String msg(msgStr.str()); throw InsufficientElements(msg); } vector > vvArray(N); long& last = sums[0]; vvArray[0].resize(last); for (long jj = 0; jj < last; ++jj) vvArray[0][jj] = indata[jj]; for (size_t j = 1; j < N; ++j) { valarray& __tmp = vvArray[j]; // these make the code much more readable long& first = sums[j-1]; long& jlast = sums[j]; __tmp.resize(jlast - first); for (long k = first; k < jlast; ++k) { __tmp[k - first] = indata[k]; } } writeData(vvArray,firstRow,nullValue); } template void ColumnVectorData::writeFixedRow (const std::valarray& data, long row, long firstElem, T* nullValue) { // This is to be called only for FIXED length vector columns. It will // throw if data.size()+firstElem goes beyond the repeat value. // If data.size() is less than repeat, it leaves the remaining values // undisturbed both in the file and in m_data storage. #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif if (varLength()) { msgStr <<"Calling ColumnVectorData::writeFixedRow for a variable length column.\n"; throw FitsFatal(msgStr.str()); } std::valarray& storedRow = m_data[row]; long inputSize = static_cast(data.size()); long storedSize(storedRow.size()); if (storedSize != static_cast(repeat())) { msgStr<<"stored array size vs. column width mismatch in ColumnVectorData::writeFixedRow.\n"; throw FitsFatal(msgStr.str()); } if (inputSize + firstElem - 1 > storedSize) { msgStr << " requested write " << firstElem << " to " << firstElem + inputSize - 1 << " exceeds vector length " << repeat(); throw InvalidRowParameter(msgStr.str()); } // CANNOT give a strong exception safety guarantee because writing // data changes the file. Any corrective action that could be taken // [e.g. holding initial contents of the row and writing it back after // an exception is thrown] could in principle throw the same exception // we are trying to protect from. // routine does however give the weak guarantee (no resource leaks). // It's never a good thing to cast away a const, but doWrite calls the // CFITSIO write functions which take a non-const pointer (though // it shouldn't actually modify the array), and I'd rather not // copy the entire valarray just to avoid this problem. std::valarray& lvData = const_cast&>(data); T* inPointer = &lvData[0]; doWrite(inPointer, row+1, inputSize, firstElem, nullValue); // Writing to disk was successful, now update FITS object and return. const size_t offset = static_cast(firstElem) - 1; for (size_t iElem=0; iElem < static_cast(inputSize); ++iElem) { // This doesn't require inPointer's non-constness. It's just // used here to speed things up a bit. storedRow[iElem + offset] = inPointer[iElem]; } } template void ColumnVectorData::writeFixedArray (T* data, long nElements, long nRows, long firstRow, T* nullValue) { int status(0); // check for sanity of inputs, then write to file. // this function writes only complete rows to a table with // fixed width rows. if ( nElements < nRows*static_cast(repeat()) ) { #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif msgStr << " input array size: " << nElements << " required " << nRows*repeat(); String msg(msgStr.str()); throw Column::InsufficientElements(msg); } if (nullValue) { if (fits_write_colnull(fitsPointer(),abs(type()),index(),firstRow, 1,nElements,data,nullValue,&status)) throw FitsError(status); } else { if (fits_write_col(fitsPointer(),abs(type()),index(),firstRow, 1,nElements,data,&status)) throw FitsError(status); } parent()->updateRows(); } template void ColumnVectorData::insertRows (long first, long number) { typename std::vector >::iterator in; if (first !=0) { in = m_data.begin()+first; } else { in = m_data.begin(); } // non-throwing operations. m_data.insert(in,number,std::valarray(T(),0)); } template void ColumnVectorData::deleteRows (long first, long number) { // the following is an ugly workaround for a bug in g++ v3.0 that // does not erase vector elements cleanly in this case. long N = static_cast(m_data.size()); size_t newSize = static_cast(N - number); std::vector > __tmp(newSize); long lastDeleted( number + first - 1 ); long firstDeleted(first); long count(0); { for (long j = 1; j <= N; ++j) { if ( (j - firstDeleted)*(lastDeleted - j) >= 0 ) { ++count; } else { __tmp[j - 1 - count].resize(m_data[j - 1].size()); __tmp[j - 1 - count] = m_data[j - 1]; } } } m_data.clear(); m_data.resize(newSize); { for (size_t j = 0; j < newSize; ++j) { m_data[j].resize(__tmp[j].size()); m_data[j] = __tmp[j]; } } } template void ColumnVectorData::setDataLimits (T* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = std::max(limits[2],limits[0]); m_maxDataValue = std::min(limits[3],limits[1]); } template void ColumnVectorData::doWrite (T* array, long row, long rowSize, long firstElem, T* nullValue) { int status(0); // internal functioning of write_colnull forbids its use for writing // variable width columns. If a nullvalue argument was supplied it will // be ignored. if ( !varLength()) { if (fits_write_colnull(fitsPointer(),type(),index(),row, firstElem, rowSize, array, nullValue,&status)) throw FitsError(status); } else { if (fits_write_col(fitsPointer(),abs(type()),index(),row,firstElem,rowSize, array,&status)) throw FitsError(status); } } // Additional Declarations // all functions that operate on complex data that call cfitsio // need to be specialized. The signature containing complex* objects // is unfortunate, perhaps, for this purpose, but the user will access // rw operations through standard library containers. #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } #else template <> void ColumnVectorData >::setDataLimits (complex* limits); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } #else template <> void ColumnVectorData >::setDataLimits (complex* limits); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::readColumnData(long firstRow, long nelements, long firstElem, std::complex* null ) { int status=0; float nulval (0); FITSUtil::auto_array_ptr pArray(new float[2*nelements]); float* array = pArray.get(); int anynul(0); if (fits_read_col_cmp(fitsPointer(),index(),firstRow, firstElem, nelements,nulval,array,&anynul,&status) ) throw FitsError(status); if (m_data.size() != static_cast(rows())) m_data.resize(rows()); std::valarray > readData(nelements); for (long j = 0; j < nelements; ++j) { readData[j] = std::complex(array[2*j],array[2*j+1]); } size_t countRead = 0; const size_t ONE = 1; if (m_data.size() != static_cast(rows())) m_data.resize(rows()); size_t vectorSize(0); if (!varLength()) { vectorSize = std::max(repeat(),ONE); // safety check. } else { // assume that the user specified the correct length for // variable columns. This should be ok since readVariableColumns // uses fits_read_descripts to return this information from the // fits pointer, and this is passed as nelements here. vectorSize = nelements; } size_t n = nelements; int i = firstRow; int ii = i - 1; while ( countRead < n) { std::valarray >& current = m_data[ii]; if (current.size() != vectorSize) current.resize(vectorSize,0.); int elementsInFirstRow = vectorSize-firstElem + 1; bool lastRow = ( (nelements - countRead) < vectorSize); if (lastRow) { int elementsInLastRow = nelements - countRead; std::copy(&readData[countRead],&readData[0]+nelements,¤t[0]); countRead += elementsInLastRow; } // what to do with complete rows. if firstElem == 1 the else { if (firstElem == 1 || (firstElem > 1 && i > firstRow) ) { current = readData[std::slice(vectorSize*(ii-firstRow)+ elementsInFirstRow,vectorSize,1)]; ++ii; ++i; countRead += vectorSize; } else { if (i == firstRow) { std::copy(&readData[0],&readData[0]+elementsInFirstRow, ¤t[firstElem]); countRead += elementsInFirstRow; ++i; ++ii; } } } } } #else template <> void ColumnVectorData >::readColumnData(long firstRow, long nelements, long firstElem, complex* null); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::readColumnData (long firstRow, long nelements,long firstElem, complex* nullValue) { // duplicated for each complex type to work around imagined or // actual compiler deficiencies. int status=0; double nulval (0); FITSUtil::auto_array_ptr pArray(new double[2*nelements]); double* array = pArray.get(); int anynul(0); if (fits_read_col_dblcmp(fitsPointer(),index(),firstRow, firstElem, nelements,nulval,array,&anynul,&status) ) throw FitsError(status); if (m_data.size() != static_cast(rows())) m_data.resize(rows()); std::valarray > readData(nelements); for (long j = 0; j < nelements; ++j) { readData[j] = std::complex(array[2*j],array[2*j+1]); } size_t countRead = 0; const size_t ONE = 1; if (m_data.size() != static_cast(rows())) m_data.resize(rows()); size_t vectorSize(0); if (!varLength()) { vectorSize = std::max(repeat(),ONE); // safety check. } else { // assume that the user specified the correct length for // variable columns. This should be ok since readVariableColumns // uses fits_read_descripts to return this information from the // fits pointer, and this is passed as nelements here. vectorSize = nelements; } size_t n = nelements; int i = firstRow; int ii = i - 1; while ( countRead < n) { std::valarray >& current = m_data[ii]; if (current.size() != vectorSize) current.resize(vectorSize,0.); int elementsInFirstRow = vectorSize-firstElem + 1; bool lastRow = ( (nelements - countRead) < vectorSize); if (lastRow) { int elementsInLastRow = nelements - countRead; std::copy(&readData[countRead],&readData[0]+nelements,¤t[0]); countRead += elementsInLastRow; } // what to do with complete rows. if firstElem == 1 the else { if (firstElem == 1 || (firstElem > 1 && i > firstRow) ) { current = readData[std::slice(vectorSize*(ii-firstRow)+ elementsInFirstRow,vectorSize,1)]; ++ii; ++i; countRead += vectorSize; } else { if (i == firstRow) { std::copy(&readData[0],&readData[0]+elementsInFirstRow, ¤t[firstElem]); countRead += elementsInFirstRow; ++i; ++ii; } } } } } #else template <> void ColumnVectorData >::readColumnData (long firstRow, long nelements, long firstElem, complex* null); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::writeFixedArray (complex* data, long nElements, long nRows, long firstRow, complex* nullValue) { int status(0); // check for sanity of inputs, then write to file. // this function writes only complete rows to a table with // fixed width rows. if ( nElements < nRows*static_cast(repeat()) ) { #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif msgStr << " input array size: " << nElements << " required " << nRows*repeat(); #ifdef SSTREAM_DEFECT msgStr << std::ends; #endif String msg(msgStr.str()); throw Column::InsufficientElements(msg); } FITSUtil::auto_array_ptr realData(new float[2*nElements]); for (int j = 0; j < nElements; ++j) { realData[2*j] = data[j].real(); realData[2*j+1] = data[j].imag(); } if (fits_write_col_cmp(fitsPointer(),index(),firstRow, 1,nElements,realData.get(),&status)) throw FitsError(status); parent()->updateRows(); } #else template <> void ColumnVectorData >::writeFixedArray (complex* data, long nElements, long nRows, long firstRow, std::complex* null); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::writeFixedArray (complex* data, long nElements, long nRows, long firstRow, complex* nullValue) { int status(0); // check for sanity of inputs, then write to file. // this function writes only complete rows to a table with // fixed width rows. if ( nElements < nRows*static_cast(repeat()) ) { #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif msgStr << " input array size: " << nElements << " required " << nRows*repeat(); #ifdef SSTREAM_DEFECT msgStr << std::ends; #endif String msg(msgStr.str()); throw Column::InsufficientElements(msg); } FITSUtil::auto_array_ptr realData(new double[2*nElements]); for (int j = 0; j < nElements; ++j) { realData[2*j] = data[j].real(); realData[2*j+1] = data[j].imag(); } if (fits_write_col_dblcmp(fitsPointer(),index(),firstRow, 1,nElements,realData.get(),&status)) throw FitsError(status); parent()->updateRows(); } #else template <> void ColumnVectorData >::writeFixedArray (complex* data, long nElements, long nRows, long firstRow, std::complex* null); #endif #ifdef SPEC_TEMPLATE_DECL_DEFECT template <> inline void ColumnVectorData >::doWrite (std::complex* data, long row, long rowSize, long firstElem, std::complex* nullValue ) { int status(0); FITSUtil::auto_array_ptr carray( new float[2*rowSize]); for ( long j = 0 ; j < rowSize; ++ j) { carray[2*j] = data[j].real(); carray[2*j + 1] = data[j].imag(); } if (fits_write_col_cmp(fitsPointer(),index(),row,firstElem,rowSize, carray.get(),&status)) throw FitsError(status); } template <> inline void ColumnVectorData >::doWrite (std::complex* data, long row, long rowSize, long firstElem, std::complex* nullValue ) { int status(0); FITSUtil::auto_array_ptr carray( new double[2*rowSize]); for ( long j = 0 ; j < rowSize; ++ j) { carray[2*j] = data[j].real(); carray[2*j + 1] = data[j].imag(); } if (fits_write_col_dblcmp(fitsPointer(),index(),row,firstElem,rowSize, carray.get(),&status)) throw FitsError(status); } #else template<> void ColumnVectorData >::doWrite ( complex* data, long row, long rowSize, long firstElem, complex* nullValue); template<> void ColumnVectorData >::doWrite ( complex* data, long row, long rowSize, long firstElem, complex* nullValue ); #endif } // namespace CCfits #endif CCfits/ExtHDU.h0000644000225700000360000005364511470265345013015 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef EXTHDU_H #define EXTHDU_H 1 // CCfitsHeader #include "CCfits.h" // HDU #include "HDU.h" // FitsError #include "FitsError.h" namespace CCfits { class Column; } // namespace CCfits namespace CCfits { /*! \class ExtHDU::WrongExtensionType @ingroup FITSexcept @brief Exception to be thrown on unmatched extension types This exception is to be thrown if the user requested a particular extension and it does not correspond to the expected type. */ /*! \fn ExtHDU::WrongExtensionType::WrongExtensionType (const String& msg, bool silent); \brief Exception ctor, prefixes the string "Fits Error: wrong extension type" before the specific message. \param msg A specific diagnostic message \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class ExtHDU \brief base class for all FITS extension HDUs, i.e. Image Extensions and Tables. ExtHDU needs to have the combined public interface of Table objects and images. It achieves this by providing the same set of read and write operations as PHDU, and also providing the same operations for extracting columns from the extension as does Table [after which the column interface is accessible]. Differentiation between extension types operates by exception handling: .i.e. attempting to access image data structures on a Table object through the ExtHDU interface will or trying to return a Column reference from an Image extension will both throw an exception */ /*! \fn ExtHDU::ExtHDU(const ExtHDU &right); \brief copy constructor */ /*! \fn virtual ExtHDU::~ExtHDU(); \brief destructor */ /*! \fn static void ExtHDU::readHduName (const fitsfile* fptr, int hduIndex, String& hduName, int& hduVersion); \brief read extension name. Used primarily to allow extensions to be specified by HDU number and provide their name for the associative array that contains them. Alternatively, if there is no name keyword in the extension, one is synthesized from the index. */ /*! \fn virtual void ExtHDU::readData (bool readFlag = false, const std::vector& keys = std::vector()) = 0; \brief read data from HDU depending on readFlag and keys. */ /*! \fn const String& ExtHDU::name () const; \brief return the name of the extension. */ /*! \fn virtual ExtHDU * ExtHDU::clone (FITSBase* p) const = 0; \brief virtual copy constructor */ /*! \fn virtual Column& ExtHDU::column (const String& colName, bool caseSensitive = true) const ; \brief return a reference to a Table column specified by name. If the caseSensitive parameter is set to false, the search will be case-insensitive. The overridden base class implementation ExtHDU::column throws an exception, which is thus the action to be taken if self is an image extension \exception WrongExtensionType see above */ /*! \fn virtual Column& ExtHDU::column (int colIndex) const; \brief return a reference to a Table column specified by column index. This version is provided for convenience; the 'return by name' version is more efficient because columns are stored in an associative array sorted by name. \exception WrongExtensionType thrown if *this is an image extension. */ /*! \fn const map& ExtHDU::column () const; \brief return a reference to the array containing the columns. \exception WrongExtensionType thrown if *this is an image extension. */ /*! \fn int ExtHDU::numCols () const; \brief return the number of Columns in the Table (the TFIELDS keyword). \exception WrongExtensionType thrown if *this is an image extension. */ /*! \fn const int ExtHDU::version () const; \brief return the extension version number. */ /*! \fn void ExtHDU::version (int value); \brief set the extension version number */ /*! \fn long ExtHDU::rows () const; \brief return the number of rows in the extension. \exception WrongExtensionType thrown if *this is an image extension. */ /*! \fn ExtHDU::ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int version); \brief default constructor, required as Standard Library Container content. */ /*! \fn ExtHDU::ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector& axes, int version); \brief writing constructor. The writing constructor forces the user to supply a name for the HDU. The bitpix, naxes and naxis data required by this constructor are required FITS keywords for any HDUs. */ /*! \fn ExtHDU::ExtHDU (FITSBase* p, HduType xtype, int number); \brief ExtHDU constructor for getting ExtHDUs by number. Necessary since EXTNAME is a reserved, not required, keyword. But a synthetic name is supplied by static ExtHDU::readHduName which is called by this constructor. */ /*! \fn virtual void ExtHDU::addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = -1, size_t columnNumber = 0); \brief add a new column to an existing table HDU. \param type The data type of the column to be added \param columnName The name of the column to be added \param repeatWidth for a string valued, this is the width of a string. For a numeric column it supplies the vector length of the rows. It is ignored for ascii table numeric data. \param colUnit an optional field specifying the units of the data (TUNITn) \param decimals optional parameter specifying the number of decimals for an ascii numeric column \param columnNumber optional parameter specifying column number to be created. If not specified the column is added to the end. If specified, the column is inserted and the columns already read are reindexed. This parameter is provided as a convenience to support existing code rather than recommended. */ /*! \fn virtual void ExtHDU::deleteColumn(const String& columnName); \brief delete a column in a Table extension by name. \param columnName The name of the column to be deleted. \exception WrongExtensionType if extension is an image. */ /*! \fn template void ExtHDU::read (std::valarray& image); \brief Read image data into container. The container image contains the entire image array after the call. This and all the other variants of read() throw a WrongExtensionType exception if called for a Table object. */ /*! \fn template void ExtHDU::read (std::valarray& image, long first, long nElements, S* nullValue) ; \brief read part of an image array, processing null values. Implicit data conversion is supported (i.e. user does not need to know the type of the data stored. A WrongExtensionType extension is thrown if *this is not an image. \param image The receiving container, a std::valarray reference \param first The first pixel from the array to read [a long value] \param nElements The number of values to read \param nullValue A pointer containing the value in the table to be considered as undefined. See cfitsio for details */ /*! \fn template void ExtHDU::read (std::valarray& image, const std::vector& first, long nElements, S* nullValue) ; \brief read part of an image array, processing null values. As above except for \param first a vector representing an n-tuple giving the coordinates in the image of the first pixel. */ /*! \fn template void ExtHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, S* nullValue) ; \brief read an image subset into valarray image, processing null values The image subset is defined by two vertices and a stride indicating the 'denseness' of the values to be picked in each dimension (a stride = (1,1,1,...) means picking every pixel in every dimension, whereas stride = (2,2,2,...) means picking every other value in each dimension. */ /*! \fn template void ExtHDU::read (std::valarray& image, long first, long nElements) ; \brief read an image section starting at a specified pixel */ /*! \fn template void ExtHDU::read (std::valarray& image, const std::vector& first, long nElements); \brief read an image section starting at a location specified by an n-tuple */ /*! \fn template void ExtHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride) ; \brief read an image subset */ /*! \fn template void ExtHDU::write(const std::vector& first, long nElements, const std::valarray& data, S* nullValue); \brief Write a set of pixels to an image extension with the first pixel specified by an n-tuple, processing undefined data All the overloaded versions of ExtHDU::write perform operations on *this if it is an image and throw a WrongExtensionType exception if not. Where appropriate, alternate versions allow undefined data to be processed \param first an n-tuple of dimension equal to the image dimension specifying the first pixel in the range to be written \param nElements number of pixels to be written \param data array of data to be written \param nullValue pointer to null value (data with this value written as undefined; needs the BLANK keyword to have been specified). */ /*! \fn template void ExtHDU::write(long first, long nElements, const std::valarray& data, S* nullValue); \brief write array to image starting with a specified pixel and allowing undefined data to be processed parameters after the first are as for version with n-tuple specifying first element. these two version are equivalent, except that it is possible for the first pixel number to exceed the range of 32-bit integers, which is how long datatype is commonly implemented. */ /*! \fn template void ExtHDU::write(const std::vector& first, long nElements, const std::valarray& data); \brief write array starting from specified n-tuple, without undefined data processing */ /*! \fn template void ExtHDU::write(long first, long nElements, const std::valarray& data); \brief write array starting from specified pixel number, without undefined data processing */ /*! \fn template void ExtHDU::write(const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& data); \brief write a subset (generalize slice) of data to the image A generalized slice/subset is a subset of the image (e.g. one plane of a data cube of size <= the dimension of the cube). It is specified by two opposite vertices. The equivalent cfitsio call does not support undefined data processing so there is no version that allows a null value to be specified. \param firstVertex the coordinates specifying lower and upper vertices of the n-dimensional slice \param lastVertex \param data The data to be written */ /*! \fn const long ExtHDU::pcount () const; \brief return required pcount keyword value */ /*! \fn void ExtHDU::pcount (long value); \brief set required pcount keyword value */ /*! \fn const long ExtHDU::gcount () const; \brief return required gcount keyword value */ /*! \fn void ExtHDU::gcount (long value); \brief set required gcount keyword value */ /*! \fn const HduType ExtHDU::xtension () const; \brief return the extension type allowed values are ImageHDU, AsciiTbl, and BinaryTbl */ /*! \fn void ExtHDU::xtension (HduType value); \brief set the extension type */ /*! \fn void ExtHDU::checkXtension (); \brief check that the extension type read is what was expected. */ /*! \fn virtual long ExtHDU::getRowsize () const; \brief return the optimal number of rows to read or write at a time A wrapper for the CFITSIO function fits_get_rowsize, useful for obtaining maximum I/O efficiency. This will throw if it is not called for a Table extension. */ /*! \fn bool ExtHDU::isCompressed () const; \brief return true if image is stored using compression. This is simply a wrapper around the CFITSIO fits_is_compressed_image function. It will throw if this is not an Image extension. */ class ExtHDU : public HDU //## Inherits: %38048213E7A8 { public: class WrongExtensionType : public FitsException //## Inherits: %39E61E630349 { public: WrongExtensionType (const String& msg, bool silent = true); protected: private: private: //## implementation }; ExtHDU(const ExtHDU &right); virtual ~ExtHDU(); friend bool operator<(const ExtHDU &left,const ExtHDU &right); friend bool operator>(const ExtHDU &left,const ExtHDU &right); friend bool operator<=(const ExtHDU &left,const ExtHDU &right); friend bool operator>=(const ExtHDU &left,const ExtHDU &right); static void readHduName (const fitsfile* fptr, int hduIndex, String& hduName, int& hduVersion); virtual void readData (bool readFlag = false, const std::vector& keys = std::vector()) = 0; const String& name () const; virtual HDU * clone (FITSBase* p) const = 0; // By all means necessary, set the fitsfile pointer so that // this HDU is the current HDU. // // This would appear to be a good candidate for the public // interface. virtual void makeThisCurrent () const; virtual Column& column (const String& colName, bool caseSensitive = true) const; virtual Column& column (int colIndex) const; virtual long rows () const; virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = -1, size_t columnNumber = 0); virtual void deleteColumn (const String& columnName); virtual long getRowsize () const; virtual int numCols () const; virtual const std::map& column () const; bool isCompressed () const; int version () const; void version (int value); static const String& missHDU (); static void setMissHDU (const String& value); public: // Additional Public Declarations // interface is virtually identical to PHDU. The implementation is // similar apart from a check for wrong extension type. template void write(const std::vector& first, long nElements, const std::valarray& data, S* nullValue); template void write(long first, long nElements, const std::valarray& data, S* nullValue); template void write(const std::vector& first, long nElements, const std::valarray& data); template void write(long first, long nElements, const std::valarray& data); template void write(const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& data); // read image data & return the array. Can't return a reference because type // conversion in general requires allocating a new object. // note semantics of reading column data are easily distinguished: they require // the user to perform the operation EXT.column({name,index}).read(...) template void read (std::valarray& image) ; template void read (std::valarray& image, long first, long nElements, S* nullValue) ; template void read (std::valarray& image, const std::vector& first, long nElements, S* nullValue) ; template void read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride) ; template void read (std::valarray& image, long first, long nElements) ; template void read (std::valarray& image, const std::vector& first, long nElements) ; template void read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, S* nullValue) ; protected: // ExtHDU needs a default constructor. This is it. ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int version); // The writing constructor. Forces the user to supply a name // for the HDU ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector& axes, int version); // ExtHDU constructor for getting ExtHDUs by number. // Necessary since EXTNAME is a reserved not required // keyword. ExtHDU (FITSBase* p, HduType xtype, int number); virtual std::ostream & put (std::ostream &s) const = 0; virtual void setColumn (const String& colname, Column* value); virtual void checkExtensionType () const; int getVersion (); long pcount () const; void pcount (long value); long gcount () const; void gcount (long value); HduType xtension () const; void xtension (HduType value); // Additional Protected Declarations private: virtual void initRead () = 0; void checkXtension (); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes long m_pcount; long m_gcount; int m_version; HduType m_xtension; static String s_missHDU; // Data Members for Associations String m_name; // Additional Implementation Declarations }; // Class CCfits::ExtHDU::WrongExtensionType // Class CCfits::ExtHDU inline bool operator<(const ExtHDU &left,const ExtHDU &right) { if (left.m_name < right.m_name) return true; if (left.m_name > right.m_name) return false; if (left.m_name == right.m_name) { if (left.m_version < right.m_version) return true; } return false; } inline bool operator>(const ExtHDU &left,const ExtHDU &right) { return !operator<=(left,right); } inline bool operator<=(const ExtHDU &left,const ExtHDU &right) { if (left.m_name <= right.m_name) { if (left.m_version <= right.m_version) return true; } return false; } inline bool operator>=(const ExtHDU &left,const ExtHDU &right) { return !operator<(left,right); } inline const String& ExtHDU::name () const { return m_name; } inline long ExtHDU::pcount () const { return m_pcount; } inline void ExtHDU::pcount (long value) { m_pcount = value; } inline long ExtHDU::gcount () const { return m_gcount; } inline void ExtHDU::gcount (long value) { m_gcount = value; } inline int ExtHDU::version () const { return m_version; } inline void ExtHDU::version (int value) { m_version = value; } inline HduType ExtHDU::xtension () const { return m_xtension; } inline void ExtHDU::xtension (HduType value) { m_xtension = value; } inline const String& ExtHDU::missHDU () { return s_missHDU; } inline void ExtHDU::setMissHDU (const String& value) { s_missHDU = value; } } // namespace CCfits #endif CCfits/ExtHDUT.h0000644000225700000360000006755611666221067013147 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef EXTHDUT_H #define EXTHDUT_H #include "ImageExt.h" #include "Table.h" #include "Column.h" namespace CCfits { template void ExtHDU::read (std::valarray& image) { makeThisCurrent(); long init(1); long nElements(std::accumulate(naxes().begin(),naxes().end(),init, std::multiplies())); read(image,1,nElements,static_cast(0)); } template void ExtHDU::read (std::valarray& image, long first,long nElements) { makeThisCurrent(); read(image, first,nElements,static_cast(0)); } template void ExtHDU::read (std::valarray& image, long first, long nElements, S* nulValue) { makeThisCurrent(); if ( ImageExt* extimage = dynamic_cast*>(this)) { // proceed if cast is successful. const std::valarray& __tmp = extimage->readImage(first,nElements,nulValue); image.resize(__tmp.size()); image = __tmp; } else { if (bitpix() == Ifloat) { ImageExt& extimage = dynamic_cast&>(*this); float nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } else if (bitpix() == Idouble) { ImageExt& extimage = dynamic_cast&>(*this); double nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } else if (bitpix() == Ibyte) { ImageExt& extimage = dynamic_cast&>(*this); unsigned char nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { ImageExt& extimage = dynamic_cast&>(*this); unsigned INT32BIT nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } else { ImageExt& extimage = dynamic_cast&>(*this); INT32BIT nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { ImageExt& extimage = dynamic_cast&>(*this); unsigned short nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } else { ImageExt& extimage = dynamic_cast&>(*this); short nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(first,nElements,&nulVal)); } } else { throw CCfits::FitsFatal(" casting image types "); } } } template void ExtHDU::read (std::valarray& image, const std::vector& first, long nElements, S* nulValue) { makeThisCurrent(); long firstElement(0); long dimSize(1); std::vector inputDimensions(naxis(),1); size_t sNaxis = static_cast(naxis()); size_t n(std::min(sNaxis,first.size())); std::copy(&first[0],&first[0]+n,&inputDimensions[0]); for (long i = 0; i < naxis(); ++i) { firstElement += ((inputDimensions[i] - 1)*dimSize); dimSize *=naxes(i); } ++firstElement; read(image, firstElement,nElements,nulValue); } template void ExtHDU::read (std::valarray& image, const std::vector& first, long nElements) { makeThisCurrent(); read(image, first,nElements,static_cast(0)); } template void ExtHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, S* nulValue) { makeThisCurrent(); if (ImageExt* extimage = dynamic_cast*>(this)) { const std::valarray& __tmp = extimage->readImage(firstVertex,lastVertex,stride,nulValue); image.resize(__tmp.size()); image = __tmp; } else { // FITSutil::fill will take care of sizing. if (bitpix() == Ifloat) { float nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); ImageExt& extimage = dynamic_cast&>(*this); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } else if (bitpix() == Idouble) { ImageExt& extimage = dynamic_cast&>(*this); double nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } else if (bitpix() == Ibyte) { ImageExt& extimage = dynamic_cast&>(*this); unsigned char nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { ImageExt& extimage = dynamic_cast&>(*this); unsigned INT32BIT nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } else { ImageExt& extimage = dynamic_cast&>(*this); INT32BIT nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { ImageExt& extimage = dynamic_cast&>(*this); unsigned short nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } else { ImageExt& extimage = dynamic_cast&>(*this); short nulVal(0); if (nulValue) nulVal = static_cast(*nulValue); FITSUtil::fill(image, extimage.readImage(firstVertex,lastVertex,stride,&nulVal)); } } else { throw CCfits::FitsFatal(" casting image types "); } } } template void ExtHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride) { makeThisCurrent(); read(image, firstVertex,lastVertex,stride,static_cast(0)); } template void ExtHDU::write(long first,long nElements,const std::valarray& data,S* nulValue) { // throw if we called image read/write operations on a table. makeThisCurrent(); if (ImageExt* extimage = dynamic_cast*>(this)) { extimage->writeImage(first,nElements,data,nulValue); } else { if (bitpix() == Ifloat) { std::valarray __tmp; ImageExt& imageExt = dynamic_cast&>(*this); FITSUtil::fill(__tmp,data); float* pfNullValue = 0; float fNullValue = 0.0; if (nulValue) { fNullValue = static_cast(*nulValue); pfNullValue = &fNullValue; } imageExt.writeImage(first,nElements,__tmp, pfNullValue); } else if (bitpix() == Idouble) { std::valarray __tmp; ImageExt& imageExt = dynamic_cast&>(*this); FITSUtil::fill(__tmp,data); double* pdNullValue = 0; double dNullValue = 0.0; if (nulValue) { dNullValue = static_cast(*nulValue); pdNullValue = &dNullValue; } imageExt.writeImage(first,nElements,__tmp,pdNullValue); } else if (bitpix() == Ibyte) { ImageExt& imageExt = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); unsigned char *pbNull=0; unsigned char bNull=0; if (nulValue) { bNull = static_cast(*nulValue); pbNull = &bNull; } imageExt.writeImage(first,nElements,__tmp, pbNull); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { ImageExt& imageExt = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); unsigned INT32BIT *plNull=0; unsigned INT32BIT lNull=0; if (nulValue) { lNull = static_cast(*nulValue); plNull = &lNull; } imageExt.writeImage(first,nElements,__tmp,plNull); } else { ImageExt& imageExt = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); INT32BIT *plNull=0; INT32BIT lNull=0; if (nulValue) { lNull = static_cast(*nulValue); plNull = &lNull; } imageExt.writeImage(first,nElements,__tmp,plNull); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { ImageExt& imageExt = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); unsigned short *psNull=0; unsigned short sNull=0; if (nulValue) { sNull = static_cast(*nulValue); psNull = &sNull; } imageExt.writeImage(first,nElements,__tmp,psNull); } else { ImageExt& imageExt = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); short *psNull=0; short sNull=0; if (nulValue) { sNull = static_cast(*nulValue); psNull = &sNull; } imageExt.writeImage(first,nElements,__tmp,psNull); } } else { FITSUtil::MatchType errType; throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType())); } } } template void ExtHDU::write(long first, long nElements,const std::valarray& data) { write(first, nElements, data, static_cast(0)); } template void ExtHDU::write(const std::vector& first, long nElements, const std::valarray& data, S* nulValue) { // throw if we called image read/write operations on a table. makeThisCurrent(); size_t n(first.size()); long firstElement(0); long dimSize(1); for (long i = 0; i < first.size(); ++i) { firstElement += ((first[i] - 1)*dimSize); dimSize *=naxes(i); } ++firstElement; write(firstElement,nElements,data,nulValue); } template void ExtHDU::write(const std::vector& first, long nElements, const std::valarray& data) { // throw if we called image read/write operations on a table. makeThisCurrent(); size_t n(first.size()); long firstElement(0); long dimSize(1); for (long i = 0; i < first.size(); ++i) { firstElement += ((first[i] - 1)*dimSize); dimSize *=naxes(i); } ++firstElement; write(firstElement,nElements,data); } template void ExtHDU::write(const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& data) { makeThisCurrent(); if (ImageExt* extimage = dynamic_cast*>(this)) { extimage->writeImage(firstVertex,lastVertex,data); } else { // write input type S to Image type... if (bitpix() == Ifloat) { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } else if (bitpix() == Idouble) { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } else if (bitpix() == Ibyte) { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } else { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } else { ImageExt& extimage = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; extimage.writeImage(firstVertex,lastVertex,__tmp); } } else { FITSUtil::MatchType errType; throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType())); } } } } //namespace CCfits #endif CCfits/FITS.h0000644000225700000360000011146411470271304012443 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef FITS_H #define FITS_H 1 // exception #include // string #include // map #include // ExtHDU #include "ExtHDU.h" // HDUCreator #include "HDUCreator.h" // FitsError #include "FitsError.h" namespace CCfits { class FITSBase; class PHDU; class Table; } // namespace CCfits //class PHDU; extern "C" { # include } #include namespace CCfits { /*! \class FITS \brief Memory object representation of a disk FITS file Constructors are provided to get FITS data from an existing file or to create new FITS data sets. Overloaded versions allow the user to a) read from one or more specified extensions, specified by EXTNAME and VERSION or by HDU number. b either just header information or data on construction c) to specify scalar keyword values to be read on construction d) to open and read an extension that has specified keyword values e) create a new FITS object and corresponding file, including an empty primary header. The memory fits object as constructed is always an image of a valid FITS object, i.e. a primary HDU is created on construction. calling the destructor closes the disk file, so that FITS files are automatically deleted at the end of scope unless other arrangements are made. */ /*! @defgroup FITSexcept FITS Exceptions */ /*! \class FITS::NoSuchHDU @ingroup FITSexcept @brief exception thrown by HDU retrieval methods. */ /*! \fn FITS::NoSuchHDU::NoSuchHDU(const String& diag, bool silent) \brief Exception ctor, prefixes the string "FITS Error: Cannot read HDU in FITS file:" before the specific message. \param diag A specific diagnostic message, usually the name of the extension whose read was attempted. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class FITS::CantOpen @ingroup FITSexcept @brief thrown on failure to open existing file */ /*! \fn FITS::CantOpen::CantOpen(const String& diag, bool silent) \brief Exception ctor prefixes the string: "FITS Error: Cannot create file " before specific message This exception will be thrown if users attempt to open an existing file for write access to which they do not have permission, or of course if the file does not exist. \param diag A specific diagnostic message, the name of the file that was to be created. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class FITS::CantCreate @ingroup FITSexcept @brief thrown on failure to create new file */ /*! \fn FITS::CantCreate::CantCreate(const String& msg, bool silent) \brief Exception ctor prefixes the string: "FITS Error: Cannot create file " before specific message This exception will be thrown if the user attempts to write to a protected directory or attempts to create a new file with the same name as an existing file without specifying overwrite [overwrite is specified by adding the character '!' before the filename, following the cfitsio convention]. \param msg A specific diagnostic message, the name of the file that was to be created. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class FITS::OperationNotSupported @ingroup FITSexcept @brief thrown for unsupported operations, such as attempted to select rows from an image extension. */ /*! \fn FITS::OperationNotSupported::OperationNotSupported(const String& msg, bool silent) \brief Exception ctor, prefixes the string "FITS Error: Operation not supported:" before the specific message. \param msg A specific diagnostic message. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \fn FITS::FITS(const FITS &right) \brief copy constructor */ /*! \fn FITS::FITS(const String &name, RWmode mode, bool readDataFlag, const std::vector& primaryKeys) \brief basic constructor This basic constructor makes a FITS object from the given filename. The file name is the only required argument. The file name string is passed directly to the cfitsio library: thus the extended file name syntax described in the cfitsio manual should work as documented. (Though the extended file name feature which allows the opening of a particular image located in the row of a table is currently unsupported.) If the mode is Read [default]: It will read all of the headers in the file, and all of the data if the readDataFlag is supplied as true. It will also read optional primary keys. Upon completion, the the last header in the file will become the current extension. (However if the file name includes extended syntax selecting a particular extension, that extension will be the current one.) If the mode is Write and the file already exists: The file is opened in read-write mode, all of the headers of the file are read, and all of the data if the readDataFlag is supplied as true. It will also read optional primary keys. For backwards compatibility with older versions of CCfits (which only read the primary when in Write mode for pre-existing files), the primary will become the current extension. If the mode is Write and the file does NOT exist (or is overwritten using '!' syntax): A default primary HDU will be created in the file with BITPIX=8 and NAXIS=0. However if you wish to create a new file with image data in the primary, the version of the FITS constructor that specifies the data type and number of axes should be used instead. \param name The name of the FITS file to be read/written \param mode The read/write mode: must be Read or Write \param readDataFlag boolean: read data on construction if true \param primaryKeys Allows optional reading of primary header keys on construction \exception NoSuchHDU thrown on HDU seek error either by index or {name,version} \exception FitsError thrown on non-zero status code from cfitsio when not overriden by FitsException error to produce more illuminating message. */ /*! \fn FITS::FITS (const String &name, RWmode mode, const std::vector& searchKeys, const std::vector &searchValues, bool readDataFlag = false, const std::vector& hduKeys = std::vector(), const std::vector& primaryKey = std::vector(), int version = 1); \brief open fits file and read HDU which contains supplied keywords with [optional] specified values (sometimes one just wants to know that the keyword is present). Optional parameters allows the reading of specified primary HDU keys and specified columns and keywords in the HDU of interest. \param name The name of the FITS file to be read \param mode The read/write mode: must be Read or Write \param searchKeys A string vector of keywords to search for in each header \param searchValues A string vector of values those keywords are required to have for success. Note that the keys must be of type string. If any value does not need to be checked the corresponding searchValue element can be empty. \param readDataFlag boolean: if true, read data if HDU is found \param hduKeys Allows optional reading of keys in the HDU that is searched for if it is successfully found \param primaryKey Allows optional reading of primary header keys on construction \param version Optional version number. If specified, checks the EXTVERS keyword. \exception FitsError thrown on non-zero status code from cfitsio when not overriden by FitsException error to produce more illuminating message. */ /*! \fn FITS::FITS(const String &name, RWmode mode, const string &hduName, bool readDataFlag, const std::vector& hduKeys, const std::vector& primaryKey, int version); \brief Open a FITS file and read a single specified HDU. This and similar constructor variants support reading table data. Optional arguments allow the reading of primary header keys and specified data from hduName, the HDU to be read. An object representing the primary HDU is always created: if it contains an image, that image may be read by subsequent calls. If extended file name syntax is used and selects an extension other than hduName, a FITS::OperationNotSupported exception will be thrown. \param name The name of the FITS file to be read \param mode The read/write mode: takes values Read or Write \param hduName The name of the HDU to be read. \param hduKeys Optional array of keywords to be read from the HDU \param version Optional version number. If not supplied the first HDU with name hduName is read see above for other parameter definitions */ /*! \fn FITS::FITS(const String &name, RWmode mode, const std::vector& hduNames, bool readDataFlag, const std::vector& primaryKey); This is intended as a convenience where the file consists of single versions of HDUs and data only, not keys are to be read. If extended file name syntax is used and selects an extension not listed in hduNames, a FITS::OperationNotSupported exception will be thrown. \param hduNames array of HDU names to be read. see above for other parameter definitions. */ /*! \fn FITS::FITS(const String &name, RWmode mode, const std::vector& hduNames, const std::vector >& hduKeys, bool readDataFlag, const std::vector& primaryKeys, const std::vector& hduVersions); \brief FITS read constructor in full generality. \param hduVersions an optional version number for each HDU to be read \param hduKeys an array of keywords for each HDU to be read. see above for other parameter definitions. */ /*! \fn FITS::FITS(const String& name, int bitpix, int naxis, long *naxes) ; \brief Constructor for creating new FITS objects containing images. This constructor is only called for creating new files (mode is not an argument) and creates a new primary HDU with the datatype & axes specified by bitpix, naxis, and naxes. The data are added to the new fits object and file by subsequent calls to FITS::pHDU().write( ) A file with a compressed image may be creating by appending to the end of the file name the same "[compress ...]" syntax specified in the cfitsio manual. Note however that the compressed image will be placed in the first extension and NOT in the primary HDU. If the filename corresponds to an existing file and does not start with the '!' character the construction will fail with a CantCreate exception. The arguments are: \param name The file to be written to disk \param bitpix the datatype of the primary image. bitpix may be one of the following CFITSIO constants: BYTE_IMG, SHORT_IMG, LONG_IMG, FLOAT_IMG, DOUBLE_IMG, USHORT_IMG, ULONG_IMG. Note that if you send in a bitpix of USHORT_IMG or ULONG_IMG, CCfits will set HDU::bitpix() to its signed equivalent (SHORT_IMG or LONG_IMG), and then set BZERO to 2^15 or 2^31. \param naxis the data dimension of the primary image \param naxes the array of axis lengths for the primary image. Ignored if naxis =0, i.e. the primary header is empty. extensions can be added arbitrarily to the file after this constructor is called. The constructors should write header information to disk: */ /*! \fn FITS::FITS(const string &name, RWmode mode, int hduIndex, bool readDataFlag, const std::vector& hduKeys, const std::vector& primaryKey) ; \brief read a single numbered HDU. Constructor analogous to the version that reads by name. This is required since HDU extensions are not required to have the EXTNAME or HDUNAME keyword by the standard. If there is no name, a dummy name based on the HDU number is created and becomes the key. If extended file name syntax is used and selects an extension other than hduIndex, a FITS::OperationNotSupported exception will be thrown. \param hduIndex The index of the HDU to be read. see above for other parameter definitions. */ /*! \fn FITS::~FITS() \brief destructor */ /*! \fn FITS::FITS (const String& fileName, const FITS& source) \brief create a new FITS object and corresponding file with copy of the primary header of the source If the filename corresponds to an existing file and does not start with the '!' character the construction will fail with a CantCreate exception. \param fileName New file to be created. \param source A previously created FITS object to be copied. see above for other parameter definitions. */ /*! \fn static void FITS::clearErrors() \brief clear the error stack and set status to zero. */ /*! \fn void FITS::deleteExtension(const String& doomed, int version=1) \brief Delete extension specified by name and version number. Removes extension from FITS object and memory copy. The index numbers of all HDU objects which follow this in the file will be decremented by 1. \param doomed the name of the extension to be deleted \param version an optional version number, the EXTVER keyword, defaults to 1 \exception NoSuchHDU Thrown if there is no extension with the specified version number \exception FitsError Thrown if there is a non-zero status code from cfitsio, e.g. if the delete operation is applied to a FITS file opened for read only access. */ /*! \fn void FITS::deleteExtension(int doomed) \brief Delete extension specified by extension number The index numbers of all HDU objects which follow this in the file will be decremented by 1. */ /*! \fn void FITS::read(const String &hduName, bool readDataFlag, const std::vector &keys, int version=1) ; \brief get data from single HDU from disk file. This is provided to allow the adding of additional HDUs to the FITS object after construction of the FITS object. After the read() functions have been called for the FITS object, subsequent read method to the Primary, ExtHDU, and Column objects will retrieve data from the FITS object in memory (those methods can be called to read data in those HDU objects that was not read when the HDU objects were constructed. All the read functions will throw NoSuchHDU exceptions on seek errors since they involve constructing HDU objects. The parameter definitions are as documented for the corresponding constructor. */ /*! \fn FITS::read (const std::vector& searchKeys, const std::vector &searchValues, bool readDataFlag, const std::vector& hduKeys, int version=1) ; \brief read method for read header or HDU that contains specified keywords. \param searchKeys A string vector of keywords to search for in each header \param searchValues A string vector of values those keywords are required to have for success. Note that the keys must be of type string. If any value does not need to be checked the corresponding searchValue element can be empty. \param readDataFlag boolean: if true, read data if HDU is found \param hduKeys Allows optional reading of keys in the HDU that is searched for if it is successfully found \param version Optional version number. If specified, checks the EXTVERS keyword. */ /*!\fn void FITS::copy(const HDU& source); \brief copy the HDU source into the FITS object. This function adds a copy of an HDU from another file into *this. It does not create a duplicate of an HDU in the file associated with *this. */ /*! \fn void FITS::read(const std::vector &hduNames, bool readDataFlag) \brief get data from a set of HDUs from disk file. This is provided to allow reading of HDUs after construction. see above for parameter definitions. */ /*! \fn void FITS::read(const std::vector &hduNames, const std::vector > &keys, bool readDataFlag = false, const std::vector& hduVersions = std::vector()); \brief get data from a set of HDUs from disk file, specifying keys and version numbers. This is provided to allow reading of HDUs after construction. see above for parameter definitions. */ /*! \fn void FITS::read (int hduIndex, bool readDataFlag = false, const std::vector &keys = std::vector()) ; \brief read an HDU specified by index number. This is provided to allow reading of HDUs after construction. see above for parameter definitions. */ /*! \fn const String& FITS::currentExtensionName () const \brief return the name of the extension that the fitsfile is currently addressing. If the extension in question does not have an EXTNAME or HDUNAME keyword, then the function returns $HDU$n, where n is the sequential HDU index number (primary HDU = 0). */ /*! \fn int FITS::open(RWmode mode= Read) ; \brief open the file with mode as specified on construction. Returns the 0-based current HDU index. */ /*! \fn bool FITS::create() ; \brief create new fits file on disk and construct the fitsfile pointer */ /*! \fn void FITS::close() throw(); \brief close the file. */ /*! \fn const FITS::ExtHDU& FITS::extension(int i) const \brief return FITS extension by index number. N.B. The input index number is currently defined as enumerating extensions, so the extension(1) returns HDU number 2. */ /*! \fn FITS::ExtHDU& FITS::extension(int i) ; \brief return FITS extension by index number. non-const version. see const version for details. */ /*! \fn friend std::ostream & operator << (std::ostream &s, const FITS& right) \brief Output operator. Calls output operators for HDUs in turn. This operator acts similarly to the ftool fdump for a fits file, except that there is no freedom to output partial information. The current implementation of this operator for PHDU objects only outputs the array sizes, not the data, which that for tables prints the data also. Provision of this operator is intended largely for debugging purposes. */ /*! \fn const ExtHDU& FITS::extension(const String& hduName, int version) const \brief return FITS extension by name and (optionally) version number. */ /*! \fn ExtHDU& FITS::extension(const String& hduName, int version) \brief return FITS extension by name and (optionally) version number. */ /*! \fn const std::multimap& FITS::extension () const; \brief return const reference to the extension container This is useful for such operations as extension().size() etc. */ /*! \fn Table* FITS::addTable (const String& hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit, HduType type, int version); \brief Add a table extension to an existing FITS object. Add extension to FITS object for file with w or rw access. \param rows The number of rows in the table to be created. \param columnName A vector containing the table column names \param columnFmt A vector containing the table column formats \param columnUnit (Optional) a vector giving the units of the columns. \param type The table type - AsciiTbl or BinaryTbl (defaults to BinaryTbl) the lists of columns are optional - one can create an empty table extension but if supplied, colType, columnName and colFmt must have equal dimensions. \todo the code should one day check that the version keyword is higher than any other versions already added to the FITS object (although cfitsio doesn't do this either). */ /*! \fn void FITS::addImage (const String& hduName, int bpix, std::vector& naxes, int version) \brief Add an image extension to an existing FITS object. (File with w or rw access). Does not make primary images, which are built in the constructor for the FITS file. The image data is not added here: it can be added by a call to one of the ExtHDU::write functions. bpix may be one of the following CFITSIO constants: BYTE_IMG, SHORT_IMG, LONG_IMG, FLOAT_IMG, DOUBLE_IMG, USHORT_IMG, ULONG_IMG. Note that if you send in a bpix of USHORT_IMG or ULONG_IMG, CCfits will set HDU::bitpix() to its signed equivalent (SHORT_IMG or LONG_IMG), and then set BZERO to 2^15 or 2^31. \todo Add a function for replacing the primary image */ /*! \fn FITS::resetPosition() ; \brief explicit call to set the fits file pointer to the primary. */ /*! \fn PHDU& FITS::pHDU() \brief return a reference to the primary HDU. */ /*! \fn const PHDU& FITS::pHDU() const \brief return a const reference to the primary HDU. */ /*! \fn FITS::currentExtension(); \brief return a non-const reference to whichever is the current extension. */ /*! \fn Table& FITS::filter (const String& expression, ExtHDU& inputTable, bool overwrite = true, bool readData = false); \brief Filter the rows of the inputTable with the condition expression, and return a reference to the resulting Table. This function provides an object oriented version of cfitsio's fits_select_rows call. The expression string is any boolean expression involving the names of the columns in the input table (e.g., if there were a column called "density", a valid expression might be "DENSITY > 3.5": see the cfitsio documentation for further details). [N.B. the "append" functionality described below does not work when linked with cfitsio 2.202 or prior because of a known issue with that version of the library. This causes the output to be a new extension with a correct header copy and version number but without the filtered data]. If the inputTable is an Extension HDU of this FITS object, then if overwrite is true the operation will overwrite the inputTable with the filtered version, otherwise it will append a new HDU with the same extension name but the next highest version (EXTVER) number available. */ /*! \fn void FITS::destroy() throw() \brief Erase FITS object and close corresponding file. Force deallocation and erase of elements of a FITS memory object. Allows a reset of everything inside the FITS object, and closes the file. The object is inaccessible after this call. destroy is public to allow users to reuse a symbol for a new file, but it is identical in operation to the destructor. */ /*! \fn void FITS::flush() \brief flush buffer contents to disk Provides manual control of disk writing operation. Image data are flushed automatically to disk after the write operation is completed, but not column data. */ /*! \fn const std::string& FITS::name () const \brief return filename of file corresponding to FITS object */ /*! \fn static const bool FITS::verboseMode () \brief return verbose setting for library If true, all messages that are reported by exceptions are printed to std::cerr. */ /*! \fn static void FITS::setVerboseMode (bool ) \brief set verbose setting for library */ /*! \fn void FITS::setCompressionType (int compType) \brief set the compression algorithm to be used when adding image extensions to the FITS object. \param compType Currently 3 symbolic constants are defined in cfitsio for specifying compression algorithms: GZIP_1, RICE_1, and PLIO_1. See the cfitsio documentation for more information about these algorithms. Entering NULL for compType will turn off compression and cause normal FITS images to be written. */ /*! \fn void FITS::setTileDimensions (const std::vector& tileSizes) \brief Set the dimensions of the tiles into which the image is divided during compression. \param tileSizes A vector of length N containing the tile dimesions. If N is less than the number of dimensions of the image it is applied to, the unspecified dimensions will be assigned a size of 1 pixel. If N is larger than the number of image dimensions, the extra dimensions will be ignored. The default cfitsio behavior is to create tiles with dimensions NAXIS1 x 1 x 1 etc. up to the number of image dimensions. */ /*! \fn void FITS::setNoiseBits (int noiseBits) \brief Set the cfitsio noisebits parameter used when compressing floating-point images. The default value is 4. Decreasing the value of noisebits will improve the overall compression efficiency at the expense of losing more information. */ /*! \fn int FITS::getCompressionType () const \brief Get the int specifying the compression algorithm to be used when adding an image extension. */ /*! \fn void FITS::getTileDimensions (std::vector& tileSizes) const \brief Get the current settings of dimension sizes for tiles used in image compression. \param tileSizes A vector to be filled with cfitsio's current tile dimension settings. CCfits will resize this vector to contain the proper number of values. */ /*! \fn int FITS::getNoiseBits () const \brief Get the cfitsio noisebits parameter used when compressing floating-point images. */ /*! \fn fitsfile* FITS::fitsPointer() const \brief return the CFITSIO fitsfile pointer for this FITS object */ // ! The FITS object class. Contains a primary HDU and Extensions indexed by name. class FITS { public: class NoSuchHDU : public FitsException //## Inherits: %396C90CB0236 { public: NoSuchHDU (const String& diag, bool silent = true); protected: private: private: //## implementation }; class OperationNotSupported : public FitsException //## Inherits: %39806C7600D5 { public: OperationNotSupported (const String& msg, bool silent = true); protected: private: private: //## implementation }; class CantOpen : public FitsException //## Inherits: %39C8EB1D02C0 { public: CantOpen (const String& diag, bool silent = true); protected: private: private: //## implementation }; struct CantCreate : public FitsException //## Inherits: %39C8EB10020B { CantCreate (const String& diag, bool silent = false); public: protected: private: private: //## implementation }; FITS (const String &name, RWmode mode = Read, bool readDataFlag = false, const std::vector& primaryKeys = std::vector()); // Open a file and read a specified HDU. // // Optional parameter allows the reading of specified primary HDU keys. FITS (const String &name, RWmode mode, const string &hduName, bool readDataFlag = false, const std::vector& hduKeys = std::vector(), const std::vector& primaryKey = std::vector(), int version = 1); // Read data from a set of specified HDUs. keywords can only be specified for the primary here. // The code will call a different constructor for the case where keywords are required for // the extensions. FITS (const String &name, RWmode mode, const std::vector& hduNames, bool readDataFlag = false, const std::vector& primaryKey = std::vector()); // Initialize a new FITS file object with the primary from a // different file. FITS (const String& fileName, const FITS& source); // Fully general FITS HDU reader. May read any part of fits file by // supplying HDU names and version numbers, and optionally // the data read flag. FITS (const String &name, RWmode mode, const std::vector& hduNames, const std::vector >& hduKeys, bool readDataFlag = false, const std::vector& primaryKeys = std::vector(), const std::vector& hduVersions = std::vector()); // Writing constructor. Takes a name and information to create an empty // Primary HDU which can then be filled with calls to HDU methods. FITS (const String& name, int bitpix, int naxis, long *naxes); // Open a file and read a specified HDU. // // Optional parameter allows the reading of specified primary HDU keys. FITS (const string &name, RWmode mode, int hduIndex, bool readDataFlag = false, const std::vector& hduKeys = std::vector(), const std::vector& primaryKey = std::vector()); // Open a file and read a HDU that contains specified // search keywords with [optional] specified values // (sometimes one just wants to know that the keyword is present). // // Optional parameters allows the reading of specified primary HDU keys and specified keywords in // the HDU of interest. FITS (const String &name, RWmode mode, const std::vector& searchKeys, const std::vector &searchValues, bool readDataFlag = false, const std::vector& hduKeys = std::vector(), const std::vector& primaryKey = std::vector(), int version = 1); ~FITS(); static void clearErrors (); void deleteExtension (const String& doomed, int version = 1); // Read keys and data from a single ExtHDU in the file. void read (const String &hduName, bool readDataFlag = false, const std::vector &keys = std::vector(), int version = 1); // Read multiple ExtHDUs. If the version number needs to be specified then one must call a // different method. void read (const std::vector &hduNames, bool readDataFlag = false); // Read selected data from multiple ExtHDUs void read (const std::vector &hduNames, const std::vector > &keys, bool readDataFlag = false, const std::vector& hduVersions = std::vector()); // Read keys and data from a single ExtHDU in the file. void read (int hduIndex, // Construct and Read HDU specified by number. One can add further HDUs by number using // the HDUCreator factory. bool readDataFlag = false, const std::vector &keys = std::vector()); // Open a file and read a HDU that contains specified // search keywords with [optional] specified values // (sometimes one just wants to know that the keyword is present). // // Optional parameters allows the reading of specified primary HDU keys and specified keywords in // the HDU of interest. void read (const std::vector& searchKeys, const std::vector &searchValues, bool readDataFlag = false, const std::vector& hduKeys = std::vector(), int version = 1); const ExtHDU& extension (int i) const; fitsfile* fitsPointer () const; ExtHDU& extension (int i); const ExtHDU& extension (const String& hduName, int version = 1) const; const PHDU& pHDU () const; PHDU& pHDU (); ExtHDU& extension (const String& hduName, int version = 1); friend std::ostream& operator << (std::ostream& s, const FITS& right); // ! add a new Table extension to a FITS object Table* addTable (const String& hduName, int rows, // ! Number of rows in new table. Mandatory const std::vector& columnName = std::vector(), // ! Optional set of column names for new table const std::vector& columnFmt = std::vector(), // ! Column formats for column units. Mandatory if columnName is specified const std::vector& columnUnit = std::vector(), // ! Column formats for column units. Optional HduType type = BinaryTbl, int version = 1); // ! add a new ImageExt (image extension) to the FITS object. A "writing" method. ExtHDU* addImage (const String& hduName, int bpix, std::vector& naxes, int version = 1); // Force destruction of the FITS object. Essentially // is a manual destructor call. void destroy () throw (); void flush (); const String& currentExtensionName () const; const ExtMap& extension () const; void resetPosition (); void currentExtensionName (const String& extName); const String& name () const; void copy (const HDU& source); Table& filter (const String& expression, ExtHDU& inputTable, bool overwrite = true, bool readData = false); ExtHDU& currentExtension (); void deleteExtension (int doomed); void setCompressionType (int compType); void setTileDimensions (const std::vector& tileSizes); void setNoiseBits (int noiseBits); int getCompressionType () const; void getTileDimensions (std::vector& tileSizes) const; int getNoiseBits () const; static bool verboseMode (); static void setVerboseMode (bool value); public: // Additional Public Declarations protected: // Additional Protected Declarations private: FITS(const FITS &right); FITS & operator=(const FITS &right); void unmapExtension (ExtHDU& doomed); int nextVersionNumber (const String& inputName) const; // read the primary HDU. Read the image if // readDataFlag is true. void read (bool readDataFlag = false, const std::vector& keys = std::vector()); // Returns index of current HDU where primary = 0. (Extended file syntax may cause a shift to an // extension.) int open (RWmode mode = Read); // Create returns true if a new file was created or an // existing file overwritten, false if appending. // // // It throws exception CantCreate or CantOpen if either fails. bool create (); // Close the fits file. // // Called in destructors so must not throw. int close () throw (); std::ostream & put (std::ostream &s) const; ExtHDU& extbyVersion (const String& hduName, int version) const; void pHDU (PHDU* value); void readExtensions (bool readDataFlag = false); ExtHDU* addExtension (ExtHDU* ext); void swap (FITS& right); ExtMap& extensionMap (); String nameOfUnmapped (int hduNum) const; void cloneHeader (const ExtHDU& source); // Check if caller is requesting an already read ExtHDU (ie. one // that's already been added to ExtMap). If hduIdx=0, check by // matching name and optional version. Otherwise check by matching // hduIdx. If found, returns pointer to the ExtHDU. Otherwise // returns 0. This will not throw. ExtHDU* checkAlreadyRead(const int hduIdx, const String& hduName = string(""), const int version=1) const throw(); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes static bool s_verboseMode; // Data Members for Associations FITSBase* m_FITSImpl; // Additional Implementation Declarations friend void HDU::makeThisCurrent() const; }; // Class CCfits::FITS::NoSuchHDU // Class CCfits::FITS::OperationNotSupported // Class CCfits::FITS::CantOpen // Class CCfits::FITS::CantCreate // Class CCfits::FITS inline ExtHDU& FITS::extension (const String& hduName, int version) { return extbyVersion(hduName,version); } inline std::ostream& operator << (std::ostream& s, const FITS& right) { return right.put(s); } inline bool FITS::verboseMode () { return s_verboseMode; } inline void FITS::setVerboseMode (bool value) { s_verboseMode = value; } } // namespace CCfits #endif CCfits/FITSBase.h0000644000225700000360000000453611470265345013247 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef FITSBASE_H #define FITSBASE_H 1 // fitsio #include "fitsio.h" // string #include // map #include // CCfitsHeader #include "CCfits.h" namespace CCfits { class PHDU; class ExtHDU; } // namespace CCfits using std::string; namespace CCfits { class FITSBase { public: FITSBase (const String& fileName, RWmode rwmode); ~FITSBase(); void destroyPrimary (); void destroyExtensions (); int currentCompressionTileDim () const; void currentCompressionTileDim (int value); RWmode mode (); std::string& currentExtensionName (); std::string& name (); PHDU*& pHDU (); ExtMap& extension (); const ExtMap& extension() const; fitsfile*& fptr (); // Additional Public Declarations protected: // Additional Protected Declarations private: FITSBase(const FITSBase &right); FITSBase & operator=(const FITSBase &right); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes int m_currentCompressionTileDim; // Data Members for Associations RWmode m_mode; std::string m_currentExtensionName; std::string m_name; PHDU* m_pHDU; ExtMap m_extension; fitsfile* m_fptr; // Additional Implementation Declarations }; // Class CCfits::FITSBase inline int FITSBase::currentCompressionTileDim () const { return m_currentCompressionTileDim; } inline void FITSBase::currentCompressionTileDim (int value) { m_currentCompressionTileDim = value; } inline RWmode FITSBase::mode () { return m_mode; } inline std::string& FITSBase::currentExtensionName () { return m_currentExtensionName; } inline std::string& FITSBase::name () { return m_name; } inline PHDU*& FITSBase::pHDU () { return m_pHDU; } inline ExtMap& FITSBase::extension () { return m_extension; } inline const ExtMap& FITSBase::extension() const { return m_extension; } inline fitsfile*& FITSBase::fptr () { return m_fptr; } } // namespace CCfits #endif CCfits/FITSUtil.h0000644000225700000360000006201211656760522013306 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef FITSUTIL_H #define FITSUTIL_H 1 #include "CCfits.h" // functional #include // complex #include // valarray #include // vector #include // string #include // FitsError #include "FitsError.h" #include namespace CCfits { namespace FITSUtil { /*! \namespace FITSUtil \brief FITSUtil is a namespace containing functions used internally by CCfits, but which might be of use for other applications. */ /*! \class MatchName \brief predicate for classes that have a name attribute; match input string with instance name. Usage: MatchName Ex; list ListObject; // ... ... // find_if(ListObject.begin(),ListObject().end(),bind2nd(Ex,"needle")); Since most of the classes within CCfits are not implemented with lists, these functions are now of little direct use. */ /*! \class MatchPtrName \brief as for MatchName, only with the input class a pointer. */ /*! \class MatchNum \brief predicate for classes that have an index attribute; match input index with instance value. Usage: MatchName Ex; list ListObject; // ... ... // find_if(ListObject.begin(),ListObject().end(),bind2nd(Ex,5)); Since most of the classes within CCfits are implemented with std::maps rather than lists, these functions are now of little direct use. */ /*! \class MatchPtrNum \brief as for MatchNum, only with the input class a pointer. */ /*! \class MatchType \brief function object that returns the FITS ValueType corresponding to an input intrinsic type This is particularly useful inside templated class instances where calls to cfitsio need to supply a value type. With this function one can extract the value type from the class type. usage: MatchType type; ValueType dataType = type(); Uses run-time type information (RTTI) methods. */ /*! \class UnrecognizedType @ingroup FITSexcept @brief exception thrown by MatchType if it encounters data type incompatible with cfitsio. */ /*! \class auto_array_ptr \brief A class that mimics the std:: library auto_ptr class, but works with arrays. This code was written by Jack Reeves and first appeared C++ Report, March 1996 edition. Although some authors think one shouldn't need such a contrivance, there seems to be a need for it when wrapping C code. Usage: replace float* f = new float[200]; with FITSUtil::auto_array_ptr f(new float[200]); Then the memory will be managed correctly in the presence of exceptions, and delete will be called automatically for f when leaving scope. */ /*! \fn explicit auto_array_ptr::auto_array_ptr (X* p = 0) throw (); \brief constructor. allows creation of pointer to null, can be modified by reset() */ /*! \fn explicit auto_array_ptr::auto_array_ptr (auto_array_ptr& right) throw (); \brief copy constructor */ /*!\fn auto_array_ptr::~auto_array_ptr(); \brief destructor. */ /*!\fn void auto_array_ptr::operator = (auto_array_ptr& right); \brief assignment operator: transfer of ownership semantics */ /*!\fn X& auto_array_ptr::operator * () throw (); \brief deference operator */ /*!\fn X& auto_array_ptr::operator [] (size_t i) throw (); \brief return a reference to the ith element of the array */ /*!\fn X auto_array_ptr::operator [] (size_t i) const throw (); \brief return a copy of the ith element of the array */ /*!\fn X* auto_array_ptr::get () const; \brief return a token for the underlying content of *this */ /*!\fn X* auto_array_ptr::release () throw (); \brief return underlying content of *this, transferring memory ownership */ /*!\fn X* auto_array_ptr::reset (X* p) throw (); \brief change the content of the auto_array_ptr to p */ /*!\fn static void auto_array_ptr::remove (X*& x) throw (); \brief utility function to delete the memory owned by x and set it to null. */ /*! \fn char** CharArray(const std::vector& inArray) \brief function object that returns a C-array of strings from a std::vector< std::vector > object, such as used in a string valued Table column. This exists because the return type for a specialization (T**) is incompatible with typenames T other than string, which return a T*. */ /*! \class CVarray \brief Function object class for returning C arrays from standard library objects used in the FITS library implementation. There are 3 versions which convert std::vector, std::valarray, and std::vector > objects to pointers to T, called CVarray, CAarray, and CVAarray. An alternative function, CharArray, is provided to deal with the special case of vector string arrays. */ /*! \fn T* CVarray::operator () (const std::vector& inArray); \brief operator returning C array for use with scalar column data. */ /*! \class CAarray \brief function object returning C array from a valarray. see CVarray for details */ /*! \fn T* CAarray::operator () (const std::valarray& inArray); \brief operator returning C array for use with image data. */ /*! \class CVAarray \brief function object returning C array from a vector of valarrays. see CVarray for details */ /*! \fn T* CVAarray::operator () (const std::vector< std::valarray >& inArray); \brief operator returning C array for use with vector column data. */ /*! \fn template void fill(std::vector< S > &outArray, const std::vector< T > &inArray, size_t first, size_t last); \brief Convert input vector of type T to output vector of type S. The functions FITSUtil::fill do conversions between CCfits' internal representation and user's input types. They encapsulate the task of memory allocation also, facilitating support of implicit conversions between the users data type and representation and what is required by the CCfits implementation. For example a user can create a std::vector for storage in a single row of a Binary Table column, of type long. The internal representation is a std::valarray object. \param outArray output data \param inArray input data \param first first element of inArray to be written to outArray \param last last element of inArray to be written to outArray */ #ifdef _MSC_VER #include "MSconfig.h" // for truncation double to float warning #endif template void swap(T& left,T& right); template void swap(std::vector& left, std::vector& right); string lowerCase(const string& inputString); string upperCase(const string& inputString); // Check if a file name includes an image compression specifier, // and return its location if it exists. string::size_type checkForCompressString(const string& fileName); struct InvalidConversion : public FitsException { InvalidConversion(const string& diag, bool silent=false); }; struct MatchStem : public std::binary_function { bool operator()(const string& left, const string& right) const; }; static const double d1(0); static const float f1(0); static const std::complex c1(0.); static const std::complex d2(0.); static const string s1(""); static const int i1(0); static const unsigned int u1(0); static const long l1(0); static const unsigned long ul1(0); static const LONGLONG ll1(0); static const short s2(0); static const unsigned short us1(0); static const bool b1(false); static const unsigned char b2(0); char** CharArray(const std::vector& inArray); string FITSType2String( int typeInt ); template void fill(std::vector& outArray, const std::vector& inArray,size_t first, size_t last); template void fill(std::valarray& outArray, const std::valarray& inArray); template void fill(std::valarray& outArray, const std::vector& inArray,size_t first, size_t last); template void fill(std::vector& outArray, const std::valarray& inArray); // VF<-AF void fill(std::vector >& outArray, const std::valarray >& inArray); // VF<-AD void fill(std::vector >& outArray, const std::valarray >& inArray); // VD<-AD void fill(std::vector >& outArray, const std::valarray >& inArray); // VD<-AF void fill(std::vector >& outArray, const std::valarray >& inArray); template void fill(std::vector& outArray, const std::vector& inArray, size_t first, size_t last); template void fill(std::vector& outArray, const std::vector& inArray, size_t first, size_t last); template void fill(std::valarray& outArray, const std::vector& inArray,size_t first, size_t last); // template // void fill(std::valarray >& outArray, const std::valarray >& inArray); // seems no other way of doing this. // VF<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvfvf(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); // VF<-VD #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvfvd(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); // VD<-VD #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvdvd(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvdvf(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); #else void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif // AF<-VD void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); // AF<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSafvf(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); #else void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif // AD<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSadvf(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); #else void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif // AD<-VD #ifdef TEMPLATE_AMBIG_DEFECT void fillMSadvd(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); #else void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last); #endif // AF<-AF void fill(std::valarray >& outArray, const std::valarray >& inArray); // AD<-AD void fill(std::valarray >& outArray, const std::valarray >& inArray); // AF<-AD void fill(std::valarray >& outArray, const std::valarray >& inArray); // AD<-AF void fill(std::valarray >& outArray, const std::valarray >& inArray); #if TEMPLATE_AMBIG_DEFECT || TEMPLATE_AMBIG7_DEFECT void fillMSvsvs(std::vector& outArray, const std::vector& inArray, size_t first, size_t last); #endif void fill(std::vector& outArray, const std::vector& inArray, size_t first, size_t last); template string errorMessage(const S& out, const T& in); template struct MatchPtrName : public std::binary_function //## Inherits: %39491BC9025D { // Parameterized Class MatchPtrName bool operator () (const T& left, const string& right) const; public: protected: private: private: //## implementation }; template struct MatchName : public std::binary_function //## Inherits: %39491BC50121 { bool operator () (const T& left, const string& right) const; public: protected: private: private: //## implementation }; template struct MatchNum : public std::binary_function //## Inherits: %39491BCE01C0 { bool operator () (const T& left, const int& right) const; public: protected: private: private: //## implementation }; template struct MatchType { ValueType operator () (); public: protected: private: private: //## implementation }; template struct CVarray { T* operator () (const std::vector& inArray); public: protected: private: private: //## implementation }; template struct FitsNullValue { T operator () (); public: protected: private: private: //## implementation }; template struct MatchImageType { ImageType operator () (); public: protected: private: private: //## implementation }; template struct MatchPtrNum : public std::binary_function //## Inherits: %39491BD3034B { bool operator () (const T& left, const int& right) const; public: protected: private: private: //## implementation }; // auto_ptr analogue for arrays. template class auto_array_ptr { public: explicit auto_array_ptr (X* p = 0) throw (); explicit auto_array_ptr (auto_array_ptr& right) throw (); ~auto_array_ptr(); void operator = (auto_array_ptr& right); X& operator * () throw (); X& operator [] (size_t i) throw (); X operator [] (size_t i) const throw (); X* get () const; X* release () throw (); X* reset (X* p) throw (); static void remove (X*& x); protected: private: private: //## implementation // Data Members for Class Attributes X* m_p; }; template struct ComparePtrIndex : public std::binary_function //## Inherits: %3B24DB930299 { bool operator () (const T* left, const T* right); public: protected: private: private: //## implementation }; template struct CAarray { T* operator () (const std::valarray& inArray); public: protected: private: private: //## implementation }; template struct CVAarray { T* operator () (const std::vector< std::valarray >& inArray); public: protected: private: private: //## implementation }; class UnrecognizedType : public FitsException //## Inherits: %3CE143AB00C6 { public: UnrecognizedType (string diag, bool silent = true); protected: private: private: //## implementation }; // Parameterized Class CCfits::FITSUtil::MatchPtrName template inline bool MatchPtrName::operator () (const T& left, const string& right) const { return left->name() == right; } // Parameterized Class CCfits::FITSUtil::MatchName template inline bool MatchName::operator () (const T& left, const string& right) const { return left.name() == right; } // Parameterized Class CCfits::FITSUtil::MatchNum template inline bool MatchNum::operator () (const T& left, const int& right) const { return left.index() == right; } // Parameterized Class CCfits::FITSUtil::MatchType // Parameterized Class CCfits::FITSUtil::CVarray template inline T* CVarray::operator () (const std::vector& inArray) { // convert std containers used commonly in FITS to C arrays in an exception // safe manner that is also clear about resource ownership. auto_array_ptr pC(new T[inArray.size()]); T* c = pC.get(); std::copy(inArray.begin(),inArray.end(),&c[0]); return pC.release(); } // Parameterized Class CCfits::FITSUtil::FitsNullValue template inline T FitsNullValue::operator () () { // This works for int types. Float, complex, and string types // are handled below with specialized templates. return 0; } // Parameterized Class CCfits::FITSUtil::MatchImageType // Parameterized Class CCfits::FITSUtil::MatchPtrNum template inline bool MatchPtrNum::operator () (const T& left, const int& right) const { return left->index() == right; } // Parameterized Class CCfits::FITSUtil::auto_array_ptr // Parameterized Class CCfits::FITSUtil::ComparePtrIndex // Parameterized Class CCfits::FITSUtil::CAarray // Parameterized Class CCfits::FITSUtil::CVAarray // Class CCfits::FITSUtil::UnrecognizedType // Parameterized Class CCfits::FITSUtil::MatchPtrName // Parameterized Class CCfits::FITSUtil::MatchName // Parameterized Class CCfits::FITSUtil::MatchNum // Parameterized Class CCfits::FITSUtil::MatchType template ValueType MatchType::operator () () { if ( typeid(T) == typeid(d1) ) return Tdouble; if ( typeid(T) == typeid(f1) ) return Tfloat; if ( typeid(T) == typeid(c1) ) return Tcomplex; if ( typeid(T) == typeid(d2) ) return Tdblcomplex; if ( typeid(T) == typeid(s1) ) return Tstring; if ( typeid(T) == typeid(i1) ) return Tint; if ( typeid(T) == typeid(u1) ) return Tuint; if ( typeid(T) == typeid(s2) ) return Tshort; if ( typeid(T) == typeid(us1) ) return Tushort; if ( typeid(T) == typeid(b1) ) return Tlogical; if ( typeid(T) == typeid(b2) ) return Tbyte; if ( typeid(T) == typeid(l1) ) return Tlong; if ( typeid(T) == typeid(ul1) ) return Tulong; // Carefull, on some compilers LONGLONG == long, // so this should go after test for long. if ( typeid(T) == typeid(ll1) ) return Tlonglong; throw UnrecognizedType("Invalid data type for FITS Data I/O\n"); } // Parameterized Class CCfits::FITSUtil::CVarray // Parameterized Class CCfits::FITSUtil::MatchImageType template ImageType MatchImageType::operator () () { if ( typeid(T) == typeid(b2) ) return Ibyte; if ( typeid(T) == typeid(s2) ) return Ishort; if ( typeid(T) == typeid(l1) ) return Ilong; if ( typeid(T) == typeid(f1) ) return Ifloat; if ( typeid(T) == typeid(d1) ) return Idouble; if ( typeid(T) == typeid(us1) ) return Iushort; if ( typeid(T) == typeid(ul1) ) return Iulong; MatchType errType; string diag ("Image: "); diag += FITSType2String(errType()); throw UnrecognizedType(diag); } // Parameterized Class CCfits::FITSUtil::MatchPtrNum // Parameterized Class CCfits::FITSUtil::auto_array_ptr template auto_array_ptr::auto_array_ptr (X* p) throw () : m_p(p) { } template auto_array_ptr::auto_array_ptr (auto_array_ptr& right) throw () : m_p(right.release()) { } template auto_array_ptr::~auto_array_ptr() { delete [] m_p; } template void auto_array_ptr::operator = (auto_array_ptr& right) { if (this != &right) { remove(m_p); m_p = right.release(); } } template X& auto_array_ptr::operator * () throw () { return *m_p; } template X& auto_array_ptr::operator [] (size_t i) throw () { return m_p[i]; } template X auto_array_ptr::operator [] (size_t i) const throw () { return m_p[i]; } template X* auto_array_ptr::get () const { return m_p; } template X* auto_array_ptr::release () throw () { return reset(0); } template X* auto_array_ptr::reset (X* p) throw () { // set the auto_ptr to manage p and return the old pointer it was managing. X* __tmp = m_p; m_p = p; return __tmp; } template void auto_array_ptr::remove (X*& x) { X* __tmp(x); x = 0; delete [] __tmp; } // Parameterized Class CCfits::FITSUtil::ComparePtrIndex template bool ComparePtrIndex::operator () (const T* left, const T* right) { return (left->index() < right->index()); } // Parameterized Class CCfits::FITSUtil::CAarray template T* CAarray::operator () (const std::valarray& inArray) { size_t n(inArray.size()); auto_array_ptr pC(new T[n]); T* c= pC.get(); for (size_t j = 0; j < n; ++j) c[j] = inArray[j]; return pC.release(); } // Parameterized Class CCfits::FITSUtil::CVAarray template T* CVAarray::operator () (const std::vector< std::valarray >& inArray) { size_t sz(0); size_t n(inArray.size()); std::vector nr(n); size_t i = 0; // for MS VC++ bug for ( i = 0; i < n; ++i) { nr[i] = inArray[i].size(); sz += nr[i]; } auto_array_ptr pC(new T[sz]); T* c = pC.get(); size_t k(0); for ( i = 0; i < n; ++i) { size_t& m = nr[i]; const std::valarray& current = inArray[i]; for (size_t j=0; j < m ; ++j) c[k++] = current[j]; } return pC.release(); } } // namespace FITSUtil } // namespace CCfits namespace CCfits { namespace FITSUtil { template void swap(T& left, T& right) { T temp(left); left = right; right = temp; } template void swap(std::vector& left, std::vector& right) { left.swap(right); } template <> inline string FitsNullValue::operator () () { return string(""); } template <> inline float FitsNullValue::operator () () { return FLOATNULLVALUE; } template <> inline double FitsNullValue::operator () () { return DOUBLENULLVALUE; } template <> inline std::complex FitsNullValue >::operator () () { return std::complex(FLOATNULLVALUE); } template <> inline std::complex FitsNullValue >::operator () () { return std::complex(DOUBLENULLVALUE); } } // end namespace FITSUtil } // end namespace CCfits #endif CCfits/FITSUtilT.h0000644000225700000360000001047011470265345013430 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef FITSUTILT_H #define FITSUTILT_H #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "FITSUtil.h" #include #include #ifdef SSTREAM_DEFECT #include #else #include #endif namespace CCfits { namespace FITSUtil { // vector to vector conversion. template void fill(std::vector& outArray, const std::vector& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. int range = last - first + 1; if (outArray.size() != static_cast(range)) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = static_cast(inArray[j]); } } // vector to valarray conversion. template void fill(std::valarray& outArray, const std::vector& inArray, size_t first, size_t last) { // vector to valarray assign int range = last - first + 1; if (outArray.size() != static_cast(range)) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = static_cast(inArray[j]); } } // valarray to valarray conversion. template void fill(std::valarray& outArray, const std::valarray& inArray) { size_t n = inArray.size(); if (outArray.size() != n) outArray.resize(n); for (size_t j = 0;j < n; ++j) outArray[j] = static_cast(inArray[j]); } #ifdef TEMPLATE_AMBIG7_DEFECT template void fillMSva(std::vector& outArray, const std::valarray& inArray) { size_t n = inArray.size(); if (outArray.size() != n) outArray.resize(n); for (size_t j = 0;j < n; ++j) outArray[j] = static_cast(inArray[j]); } #else template void fill(std::vector& outArray, const std::valarray& inArray) { size_t n = inArray.size(); if (outArray.size() != n) outArray.resize(n); for (size_t j = 0;j < n; ++j) outArray[j] = static_cast(inArray[j]); } #endif // throw exceptions for string conversions to anything other than string. template void fill(std::vector& outArray, const std::vector& inArray, size_t first, size_t last) { first = 0; last = 0; throw InvalidConversion(errorMessage(outArray,inArray),false); } template void fill(std::vector& outArray, const std::vector& inArray, size_t first, size_t last) { first = 0; last = 0; throw InvalidConversion(errorMessage(outArray,inArray),false); } template string errorMessage( const S& out, const T& in) { #ifdef SSTREAM_DEFECT std::ostrstream errMsg; #else std::ostringstream errMsg; #endif errMsg << " Error: no conversion from " << typeid(in).name() << " to " << typeid(out).name() << std::endl; return errMsg.str(); } } } // namespace CCfits #endif CCfits/FitsError.h0000644000225700000360000000732211470265345013622 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef FITSERROR_H #define FITSERROR_H 1 #include #include //#include //#include //#include #include using std::string; namespace CCfits { /*! \class FitsException @ingroup FITSexcept @brief FitsException is the base class for all exceptions thrown by this library. All exceptions derived from this class can be caught by a single 'catch' clause catching FitsException by reference (which is the point of this base class design). A static "verboseMode" parameter is provided by the FITS class to control diagnostics - if FITS::verboseMode() is true, all diagnostics are printed (for debugging purposes). If not, then a boolean silent determines printing of messages. Each exception derived from FitsException must define a default value for the silent parameter. */ /*! \fn FitsException::FitsException(const string& diag, bool& silent) \param diag A diagnostic string to be printed optionally. \param silent A boolean controlling the printing of messages */ /*! \fn const string& FitsException::message () const \brief returns the error message This returns the diagnostic error message associated with the exception object, and which is accessible regardless of the verboseMode and silent flag settings. */ /*! \class FitsError @ingroup FITSexcept @brief FitsError is the exception thrown by non-zero cfitsio status codes. */ /*! \fn FitsError::FitsError(int errornum, bool silent) \brief ctor for cfitsio exception: translates status code into cfitsio error message The exception prefixes the string "Fits Error: " to the message printed by cfitsio. \param errornum The cfitsio status code produced by the error. \param silent A boolean controlling the printing of messages */ /*! \class FitsFatal @ingroup FITSexcept @brief [potential] base class for exceptions to be thrown on internal library error. As of this version there are no subclasses. This error requests that the user reports this circumstance to HEASARC. */ /*! \fn FitsFatal::FitsFatal(const string& diag) \brief Prints a message starting "*** CCfits Fatal Error: ..." and calls terminate() \param diag A diagnostic string to be printed identifying the context of the error. */ // Base class for exceptions generated by CCfits that don't // return FITS error codes (for example, array errors or seek errors). class FitsException { public: FitsException (const string& msg, bool& silent); const string& message () const; protected: void addToMessage (const string& msgQual); private: private: //## implementation // Data Members for Class Attributes string m_message; }; class FitsError : public FitsException //## Inherits: %399170BD017D { public: FitsError (int errornum, bool silent = true); protected: private: void printMsg (int error); private: //## implementation }; class FitsFatal { public: FitsFatal (const string& diag); protected: private: private: //## implementation }; // Class CCfits::FitsException inline const string& FitsException::message () const { return m_message; } // Class CCfits::FitsError // Class CCfits::FitsFatal } // namespace CCfits #endif CCfits/HDU.h0000644000225700000360000010036011470312433012306 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef HDU_H #define HDU_H 1 #include // vector #include #include // CCfitsHeader #include "CCfits.h" // Keyword #include "Keyword.h" // NewKeyword #include "NewKeyword.h" // FitsError #include "FitsError.h" // FITSUtil #include "FITSUtil.h" namespace CCfits { class FITS; class FITSBase; } // namespace CCfits namespace CCfits { class HDUCreator; // Needed for friend declaration } #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #include "KeywordT.h" namespace CCfits { /*! \class HDU \brief Base class for all HDU [Header-Data Unit] objects. HDU objects in CCfits are either PHDU (Primary HDU objects) or ExtHDU (Extension HDU) objects. Following the behavior. ExtHDUs are further subclassed into ImageExt or Table objects, which are finally AsciiTable or BinTable objects. HDU's public interface gives access to properties that are common to all HDUs, largely required keywords, and functions that are common to all HDUs, principally the manipulation of keywords and their values. HDUs must be constructed by HDUCreator objects which are called by FITS methods. Each HDU has an embedded pointer to a FITSBase object, which is private to FITS [FITSBase is a pointer encapsulating the resources of FITS. For details of this coding idiom see Exceptional C++ by Herb Sutter (2000) and references therein]. */ /*! \class HDU::InvalidExtensionType @ingroup FITSexcept @brief exception to be thrown if user requests extension type that can not be understood as ImageExt, AsciiTable or BinTable. */ /*! \fn HDU::InvalidExtensionType::InvalidExtensionType (const string& diag, bool silent); \brief Exception ctor, prefixes the string "Fits Error: Extension Type: " before the specific message. \param diag A specific diagnostic message \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class HDU::InvalidImageDataType @ingroup FITSexcept @brief exception to be thrown if user requests creation of an image of type not supported by cfitsio. */ /*! \fn HDU::InvalidImageDataType::InvalidImageDataType (const string& diag, bool silent); \brief Exception ctor, prefixes the string "Fits Error: Invalid Data Type for Image " before the specific message. \param diag A specific diagnostic message \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class HDU::NoSuchKeyword @ingroup FITSexcept @brief exception to be thrown on seek errors for keywords. */ /*! \fn HDU::NoSuchKeyword::NoSuchKeyword (const string& diag, bool silent); \brief Exception ctor, prefixes the string "Fits Error: Keyword not found: " before the specific message. \param diag A specific diagnostic message, usually the name of the keyword requested. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \class HDU::NoNullValue @ingroup FITSexcept @brief exception to be thrown on seek errors for keywords. */ /*! \fn HDU::NoNullValue::NoNullValue (const string& diag, bool silent); \brief Exception ctor, prefixes the string "Fits Error: No Null Pixel Value specified for Image " before the specific message. \param diag A specific diagnostic message, the name of the HDU if not the primary. \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \fn HDU::HDU(const HDU &right); \brief copy constructor */ /*! \fn virtual HDU::~HDU(); \brief destructor */ /*! \fn bool HDU::operator==(const HDU &right) const; \brief equality operator */ /*! \fn bool HDU::operator!=(const HDU &right) const; \brief inequality operator */ /*! \fn const String& HDU::getHistory(); \brief read the history information from the HDU and add it to the FITS object. The history string found in the header is concatenated and returned to the calling function */ /*! \fn const String& HDU::getComments(); \brief read the comments from the HDU and add it to the FITS object. The comment string found in the header is concatenated and returned to the calling function */ /*! \fn void HDU::readAllKeys(); \brief read all of the keys in the header This member function reads keys that are not meta data for columns or image information, [which are considered to be part of the column or image objects]. Also, history and comment keys are read and returned by getHistory() and getComment(). The exact list of keyword classes this will read is returned by the function keywordCategories(). Note that readAllKeys can only construct keys of type string, double, complex, integer, and bool because the FITS header records do not encode exact type information. */ /*! \fn void HDU::copyAllKeys (const HDU* inHdu); \brief copy all keys from another header Parameters: \param inHdu (const HDU*) An existing HDU whose keys will be copied. This will copy all keys that exist in the keyWord map of inHDU, and which belong to one of the keyword classes returned by the keywordCategories() function. This is the same group of keyword classes used by readAllKeys(). */ /*! \fn static std::vector HDU::keywordCategories (); \brief return the enumerated keyword categories used by readAllKeys() and copyAllKeys() This returns a vector of integers indicating which categories of keywords apply for the readAllKeys and copyAllKeys functions. The list of categories currently hardcoded is: TYP_CMPRS_KEY (20), TYP_CKSUM_KEY (100), TYP_WCS_KEY (110), TYP_REFSYS_KEY (120), and TYP_USER_KEY (150). For the list of ALL keyword categories, see the CFITSIO documentation for the fits_get_keyclass function. */ /*! \fn void HDU::writeComment(const String& comment = "Generic Comment"); \brief write a comment string. A default value for the string is given ("Generic Comment String") so users can put a placeholder call to this function in their code. */ /*! \fn void HDU::writeHistory (const String& history = "Generic History String"); \brief write a history string. A default value for the string is given ("Generic History String") so users can put a placeholder call to this function in their code. */ /*! \fn void HDU::writeDate(); \brief write a date string to *this. */ /*! \fn void HDU::deleteKey(const String& doomed) \brief delete a keyword from the header removes doomed from the FITS file and from the FITS object */ /*! \fn const String& HDU::history() const; \brief return the history string previously read by getHistory() */ /*! \fn const String& HDU::comment() const; \brief return the comment string previously read by getComment() */ /*! \fn template void HDU::readKey(const String& keyName, T& val); \brief read a keyword of specified type from the header of a disk FITS file and return its value. T is one of the types String, double, float, int, std::complex, and bool. If a Keyword object with the name keyName already exists in this HDU due to a previous read call, then this will re-read from the file and create a new Keyword object to replace the existing one. */ /*! \fn template void HDU::readKeys(std::vector& keyNames, std::vector& vals); \brief read a set of specified keywords of the same data type from the header of a disk FITS file and return their values T is one of the types String, double, float, int, std::complex, and bool. */ /*! \fn virtual HDU * HDU::clone (FITSBase* p) const = 0; \brief virtual copy constructor, to be implemented in subclasses. */ /*! \fn void HDU::makeThisCurrent () const; \brief move the fitsfile pointer to this current HDU. This function should never need to be called by the user since it is called internally whenever required. */ /*! \fn Keyword& HDU::keyWord (const String& keyName); \brief return a (previously read) keyword from the HDU object. */ /*! \fn int HDU::index () const; \brief return the HDU number */ /*! \fn void HDU::index (int value); \brief set the HDU number */ /*! \fn const std::map& HDU::keyWord () const; \brief return the associative array containing the HDU Keywords that have been read so far. */ /*! \fn const Keyword& HDU::keyWord (const string& keyname) const; \brief return a (previously read) keyword from the HDU object. const version */ /*! \fn HDU::HDU (FITSBase* p = 0); \brief default constructor, called by HDU subclasses that read from FITS files. */ /*! \fn HDU::HDU (FITSBase* p, int bitpix,int naxis, const std::vector& axes); \brief constructor for creating new HDU objects, called by HDU subclasses writing to FITS files. */ /*! \fn virtual bool HDU::compare (const HDU &right) const; \brief internal implementation of equality operations. */ /*! \fn fitsfile* HDU::fitsPointer () const; \brief return the fitsfile pointer for the FITS object containing the HDU */ /*! \fn std::map& HDU::keyWord (); \brief return the associative array containing the HDU keywords so far read. */ /*! \fn long HDU::axis (size_t index) const; \brief return the size of axis numbered index [zero based]. */ /*! \fn void HDU::axes () const; \brief return the number of axes in the HDU data section (always 2 for tables). */ /*! \fn const long HDU::bitpix () const; \brief return the data type keyword. Takes values denoting the image data type for images, and takes the fixed value 8 for tables. */ /*! \fn const FITSBase *& HDU::parent () const; \brief return reference to the pointer representing the FITSBase object containing the HDU */ /*! \fn std::vector< long >& HDU::naxes (); \brief return the HDU data axis array. */ /*! \fn long HDU::axis (size_t i) const; \brief return the length of HDU data axis i. */ /*! \fn virtual double HDU::scale () const; \brief return the BSCALE keyword value */ /*! \fn virtual void HDU::scale (double value); \brief set the BSCALE keyword value for images (see warning for images of int type) For primary HDUs and image extensions, this will add (or update) the BSCALE keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing. WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException. */ /*! \fn virtual double HDU::zero () const; \brief return the BZERO keyword value */ /*! \fn virtual double HDU::zero (double value); \brief set the BZERO keyword value for images (see warning for images of int type) For primary HDUs and image extensions, this will add (or update) the BZERO keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing. WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException. */ /*! \fn void HDU::suppressScaling (bool toggle = true); \brief turn off image scaling regardless of the BSCALE and BZERO keyword values For toggle = true, this turns off image scaling for future read/writes by resetting the scale and zero to 1.0 and 0.0 respectively. It does NOT modify the BSCALE and BZERO keywords. If toggle = false, the scale and zero values will be restored to the keyword values. */ /*! \fn template Keyword& HDU::addKey(const String& name, T value, const String& comment) ; \brief create a new keyword in the HDU with specified value and comment fields The function returns a reference to keyword object just created. If a keyword with this name already exists, it will be overwritten. Note that this is mostly intended for adding user-defined keywords. It should not be used to add keywords for which there are already specific HDU functions, such as scaling or checksum. Nor should it be used for image or column structural keywords, such as BITPIX, NAXIS, TFORMn, etc. As a general rule, it is best to use this for keywords belonging to the same categories listed in the keywordCategories() function. Parameters: \param name (String) The keyword name \param value (Recommended T = String, double, std::complex, int, or bool \param comment (String) the keyword value It is possible to create a keyword with a value of any of the allowed data types in fitsio (see the cfitsio manual section 4.3). However one should be aware that if this keyword value is read in from the file at a later time, it will be stored in a templated Keyword subclass (KeyData) where T will be one of the recommended types listed above. Also see Keyword::value (T& val) for more details. */ /*! \fn Keyword* HDU::addKey(const Keyword* inKeyword); \brief create a copy of an existing Keyword and add to HDU This is particularly useful for copying Keywords from one HDU to another. For example the inKeyword pointer might come from a different HDU's std::map. If a keyword with this name already exists, it will be overwritten. The return value is a pointer to the newly created Keyword inserted into this HDU. Also see copyAllKeys(). */ /*! \fn std::ostream& operator << (std::ostream& s, const CCfits::HDU& right); \brief Output operator for HDU objects. Primarily for testing purposes. */ /*! \fn void HDU::writeChecksum (); \brief compute and write the DATASUM and CHECKSUM keyword values Wrapper for the CFITSIO function fits_write_chksum: This performs the datasum and checksum calculations for this HDU, as described in the CFITSIO manual. If either the DATASUM or CHECKSUM keywords already exist, their values will be updated. */ /*! \fn void HDU::updateChecksum (); \brief update the CHECKSUM keyword value, assuming DATASUM exists and is correct Wrapper for the CFITSIO function fits_update_chksum: This recomputes and writes the CHECKSUM value with the assumption that the DATASUM value is correct. If the DATASUM keyword doesn't yet exist or is not up-to-date, use the HDU::writeChecksum function instead. This will throw a FitsError exception if called when there is no DATASUM keyword in the header. */ /*! \fn std::pair HDU::verifyChecksum () const; \brief verify the HDU by computing the checksums and comparing them with the CHECKSUM/DATASUM keywords Wrapper for the CFITSIO function fits_verify_chksum: The data unit is verified correctly if the computed checksum equals the DATASUM keyword value, and the HDU is verified if the entire checksum equals zero (see the CFITSIO manual for further details). This returns a std::pair where the pair's first data member = DATAOK and second = HDUOK. DATAOK and HDUOK values will be = 1 if verified correctly, 0 if the keyword is missing, and -1 if the computed checksum is not correct. */ /*! \fn std::pair HDU::getChecksum () const; \brief compute and return the checksum values for the HDU without creating or modifying the CHECKSUM/DATASUM keywords. Wrapper for the CFITSIO function fits_get_chksum: This returns a std::pair where the pair's first data member holds the datasum value and second holds the hdusum value. */ class HDU { public: class InvalidImageDataType : public FitsException //## Inherits: %394FBA12005C { public: InvalidImageDataType (const string& diag, bool silent = true); protected: private: private: //## implementation }; class InvalidExtensionType : public FitsException //## Inherits: %3964C1D00352 { public: InvalidExtensionType (const string& diag, bool silent = true); protected: private: private: //## implementation }; class NoSuchKeyword : public FitsException //## Inherits: %398865D10264 { public: NoSuchKeyword (const string& diag, bool silent = true); protected: private: private: //## implementation }; class NoNullValue : public FitsException //## Inherits: %3B0D58CE0306 { public: NoNullValue (const string& diag, bool silent = true); protected: private: private: //## implementation }; HDU(const HDU &right); bool operator==(const HDU &right) const; bool operator!=(const HDU &right) const; virtual HDU * clone (FITSBase* p) const = 0; fitsfile* fitsPointer () const; FITSBase* parent () const; // By all means necessary, set the fitsfile pointer so that // this HDU is the current HDU. // // This would appear to be a good candidate for the public // interface. virtual void makeThisCurrent () const; const String& getComments (); const string& comment () const; // Write a history string. A default value for the string is given // "GenericComment" so users can put a placeholder call // to this function in their code before knowing quite what should go in it. void writeComment (const String& comment = "Generic Comment"); const String& getHistory (); const string& history () const; // Write a history string. A default value for the string is given // "Generic History String" so users can put a placeholder call // to this function in their code before knowing quite what should go in it. void writeHistory (const String& history = "Generic History String"); // Write a date card. void writeDate (); friend std::ostream& operator << (std::ostream& s, const CCfits::HDU& right); long axes () const; long axis (size_t index) const; void index (int value); int index () const; long bitpix () const; virtual double scale () const; virtual void scale (double value); virtual double zero () const; virtual void zero (double value); void suppressScaling (bool toggle = true); void writeChecksum (); void updateChecksum (); std::pair verifyChecksum () const; std::pair getChecksum () const; void deleteKey (const String& doomed); void readAllKeys (); void copyAllKeys (const HDU* inHdu); std::map& keyWord (); Keyword& keyWord (const String& keyName); static std::vector keywordCategories (); const std::map& keyWord () const; const Keyword& keyWord (const string& keyname) const; public: // Additional Public Declarations template void readKey(const String& keyName, T& val); template void readKeys(std::vector& keyNames, std::vector& vals); template Keyword& addKey(const String& name, T val, const String& comment); // This non-template function could be entered with Rose, but // it's instead placed with the other addKey function to // simplify the Doxygen generated doc file output. Keyword* addKey(const Keyword* inKeyword); Keyword& addKey(const String& name, const char* charString, const String& comment); #ifdef TEMPLATE_AMBIG_DEFECT inline void readKeyMS(const String& keyName, int & val); inline void readKeys(std::vector& keyNames, std::vector& vals); #endif protected: // Functions as the default constructor, which is required for // the map container class. HDU (FITSBase* p = 0); HDU (FITSBase* p, int bitpix, int naxis, const std::vector& axes); virtual ~HDU(); Keyword& readKeyword (const String &keyname); void readKeywords (std::list& keynames); virtual std::ostream & put (std::ostream &s) const = 0; void bitpix (long value); bool checkImgDataTypeChange (double zero, double scale) const; long& naxis (); void naxis (const long& value); // Flags whether there were any null values found in the // last read operation. bool& anynul (); void anynul (const bool& value); FITSBase*& parent (); std::vector< long >& naxes (); long& naxes (size_t index); void naxes (size_t index, const long& value); // Additional Protected Declarations private: // clear the FITS Keyword map. To be called by // the dtor and the copy/assignment operations. void clearKeys (); virtual void initRead () = 0; void readHduInfo (); Keyword* addKeyword (Keyword* newKey); virtual bool compare (const HDU &right) const; // clear the FITS Keyword map. To be called by // the dtor and the copy/assignment operations. void copyKeys (const HDU& right); String getNamedLines (const String& name); // save keyword found by read all keys into the array of keywords that have been read. // Similar to addKeyword except there's no write and no returned value. For use by readAllKeys() void saveReadKeyword (Keyword* newKey); void zeroInit (double value); void scaleInit (double value); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes long m_naxis; long m_bitpix; int m_index; bool m_anynul; string m_history; string m_comment; double m_zero; // Floating point scale factor for image data that takes // the value of the BSCALE parameter. double m_scale; // Data Members for Associations std::map m_keyWord; FITSBase* m_parent; std::vector< long > m_naxes; // Additional Implementation Declarations static const size_t s_nCategories; static const int s_iKeywordCategories[]; friend class HDUCreator; friend Keyword* KeywordCreator::getKeyword(const String& keyname, HDU* p); friend Keyword* KeywordCreator::getKeyword(const String& keyname, ValueType keyType, HDU* p); }; template Keyword& HDU::addKey(const String& name, T value, const String& comment) { makeThisCurrent(); NewKeyword keyCreator(this,value); Keyword& newKey = *(addKeyword(keyCreator.createKeyword(name,comment))); return newKey; } template void HDU::readKey(const String& keyName, T& val) { makeThisCurrent(); Keyword& key = readKeyword(keyName); key.value(val); } template void HDU::readKeys(std::vector& keyNames, std::vector& vals) { size_t nRead = keyNames.size(); std::list valKeys; std::list valList; for (size_t i = 0; i < nRead; i++) valKeys.push_back(keyNames[i]); // read all the keys requested, rejecting those that don't exist. readKeywords(valKeys); // get the values of all of the requested keys, rejecting those of the // wrong type. T current; std::list::iterator it = valKeys.begin(); while (it != valKeys.end()) { try { m_keyWord[*it]->value(current); valList.push_back(current); ++it; } catch ( Keyword::WrongKeywordValueType ) { it = valKeys.erase(it); } } keyNames.erase(keyNames.begin(),keyNames.end()); if (!valList.empty()) { if (valList.size() != vals.size()) vals.resize(valList.size()); size_t i=0; for (typename std::list::const_iterator it1 = valList.begin(); it1 != valList.end(); ++it1,++i) { vals[i] = *it1; } for (std::list::const_iterator it1= valKeys.begin(); it1 != valKeys.end(); ++it1) { keyNames.push_back(*it1); } } } // Class CCfits::HDU::InvalidImageDataType // Class CCfits::HDU::InvalidExtensionType // Class CCfits::HDU::NoSuchKeyword // Class CCfits::HDU::NoNullValue // Class CCfits::HDU inline const string& HDU::comment () const { return m_comment; } inline const string& HDU::history () const { return m_history; } inline std::ostream& operator << (std::ostream& s, const CCfits::HDU& right) { return right.put(s); } inline long HDU::axes () const { return m_naxis; } inline long HDU::axis (size_t index) const { return m_naxes[index]; } inline void HDU::index (int value) { m_index = value; } inline int HDU::index () const { return m_index; } inline long HDU::bitpix () const { return m_bitpix; } inline void HDU::bitpix (long value) { m_bitpix = value; } inline double HDU::scale () const { return m_scale; } inline void HDU::scale (double value) { m_scale = value; } inline double HDU::zero () const { return m_zero; } inline void HDU::zero (double value) { m_zero = value; } inline void HDU::saveReadKeyword (Keyword* newKey) { m_keyWord.insert(std::map::value_type(newKey->name(),newKey->clone())); } inline std::map& HDU::keyWord () { return m_keyWord; } inline Keyword& HDU::keyWord (const String& keyName) { std::map::iterator key = m_keyWord.find(keyName); if (key == m_keyWord.end()) throw HDU::NoSuchKeyword(keyName); return *((*key).second); } inline long& HDU::naxis () { return m_naxis; } inline void HDU::naxis (const long& value) { m_naxis = value; } inline bool& HDU::anynul () { return m_anynul; } inline void HDU::anynul (const bool& value) { m_anynul = value; } inline const std::map& HDU::keyWord () const { return m_keyWord; } inline const Keyword& HDU::keyWord (const string& keyname) const { std::map::const_iterator key = m_keyWord.find(keyname); if (key == m_keyWord.end()) throw HDU::NoSuchKeyword(keyname); return *((*key).second); } inline FITSBase*& HDU::parent () { return m_parent; } inline std::vector< long >& HDU::naxes () { return m_naxes; } inline long& HDU::naxes (size_t index) { return m_naxes[index]; } inline void HDU::naxes (size_t index, const long& value) { m_naxes[index] = value; } } // namespace CCfits #ifdef SPEC_TEMPLATE_IMP_DEFECT namespace CCfits { inline void HDU::readKeyMS(const String& keyName, int & val) { makeThisCurrent(); Keyword& key = readKeyword(keyName); key.value(val); } inline void HDU::readKeys(std::vector& keyNames, std::vector& vals) { size_t nRead = keyNames.size(); std::list valKeys; std::list valList; for (size_t i = 0; i < nRead; i++) valKeys.push_back(keyNames[i]); // read all the keys requested, rejecting those that don't exist. readKeywords(valKeys); // get the values of all of the requested keys, rejecting those of the // wrong type. String current; std::list::iterator it = valKeys.begin(); while (it != valKeys.end()) { try { m_keyWord[*it]->value(current); valList.push_back(current); ++it; } catch ( Keyword::WrongKeywordValueType ) { it = valKeys.erase(it); } } keyNames.erase(keyNames.begin(),keyNames.end()); if (!valList.empty()) { if (valList.size() != vals.size()) vals.resize(valList.size()); size_t i=0; std::list::const_iterator it1 = valList.begin(); for ( ; it1 != valList.end(); ++it1,++i) { vals[i] = *it1; } for ( it1= valKeys.begin(); it1 != valKeys.end(); ++it1) { keyNames.push_back(*it1); } } } } #endif #endif CCfits/HDUCreator.h0000644000225700000360000000773211656560561013654 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef HDUCREATOR_H #define HDUCREATOR_H 1 // valarray #include // typeinfo #include // vector #include // string #include // CCfitsHeader #include "CCfits.h" // FitsError #include "FitsError.h" namespace CCfits { class FITSBase; class HDU; class PHDU; class ExtHDU; } // namespace CCfits namespace CCfits { class HDUCreator { public: HDUCreator (FITSBase* p); ~HDUCreator(); // Read a specified HDU from given fitsfile and // return a pointer to it. HDU * getHdu (const String& hduName, bool readDataFlag = false, const std::vector &keys = std::vector(), bool primary = false, int version = 1); PHDU * createImage (int bitpix, long naxis, const std::vector& naxes); void reset (); HDU * Make (const String& hduName, bool readDataFlag, const std::vector &keys, bool primary, int version); HDU* createTable (const String &name, HduType xtype, int rows, const std::vector& colName, const std::vector colFmt, const std::vector colUnit, int version); // Read a specified HDU from given fitsfile and // return a pointer to it. // // With no arguments this reads the PrimaryHDU. HDU * getHdu (int index = 0, bool readDataFlag = false, const std::vector &keys = std::vector()); ExtHDU * createImage (const String &name, int bitpix, long naxis, const std::vector& naxes, int version); // Additional Public Declarations protected: // Additional Protected Declarations private: PHDU * MakeImage (int bpix, int naxis, const std::vector& naxes); HDU* MakeTable (const String &name, HduType xtype, int rows, const std::vector& colName, const std::vector& colFmt, const std::vector& colUnit, int version); HDU * Make (int index, bool readDataFlag, const std::vector &keys); ExtHDU * MakeImage (const String &name, int bpix, long naxis, const std::vector& naxes, int version); void getScaling (long& type, double& zero, double& scale) const; void parent (FITSBase* value); // Utility function to implement both of the Make() function interfaces. HDU* commonMake(const String& hduName, bool readDataFlag, const std::vector &keys, bool primary, int version); // Data Members for Class Attributes HDU *m_hdu; // Additional Private Declarations private: //## implementation // Data Members for Associations FITSBase* m_parent; // Additional Implementation Declarations }; // Class CCfits::HDUCreator inline HDU * HDUCreator::getHdu (const String& hduName, bool readDataFlag, const std::vector &keys, bool primary, int version) { //! Read an existing HDU object from the current fits file and return a pointer. if ( m_hdu == 0 ) m_hdu = Make(hduName,readDataFlag,keys,primary,version); return m_hdu; } inline void HDUCreator::reset () { m_hdu = 0; } inline HDU* HDUCreator::createTable (const String &name, HduType xtype, int rows, const std::vector& colName, const std::vector colFmt, const std::vector colUnit, int version) { //! Create new Table extension (write method), and return a pointer to it. if (m_hdu == 0) m_hdu = MakeTable(name,xtype,rows,colName,colFmt,colUnit,version); return m_hdu; } inline HDU * HDUCreator::getHdu (int index, bool readDataFlag, const std::vector &keys) { //! Read HDU specified by HDU number if ( m_hdu == 0 ) m_hdu = Make(index,readDataFlag,keys); return m_hdu; } inline void HDUCreator::parent (FITSBase* value) { m_parent = value; } } // namespace CCfits #endif CCfits/Image.h0000644000225700000360000003457011470571104012723 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef IMAGE_H #define IMAGE_H 1 // functional #include // valarray #include // vector #include // numeric #include #ifdef _MSC_VER #include "MSconfig.h" //form std::min #endif #include "CCfits.h" #include "FitsError.h" #include "FITSUtil.h" namespace CCfits { template class Image { public: Image(const Image< T > &right); Image (const std::valarray& imageArray = std::valarray()); ~Image(); Image< T > & operator=(const Image< T > &right); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. const std::valarray& readImage (fitsfile* fPtr, long first, long nElements, T* nullValue, const std::vector& naxes, bool& nulls); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. const std::valarray& readImage (fitsfile* fPtr, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, T* nullValue, const std::vector& naxes, bool& nulls); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. void writeImage (fitsfile* fPtr, long first, long nElements, const std::valarray& inData, const std::vector& naxes, T* nullValue = 0); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. void writeImage (fitsfile* fPtr, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& inData, const std::vector& naxes); void writeImage (fitsfile* fPtr, const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& inData, const std::vector& naxes); bool isRead () const; void isRead (bool value); const std::valarray< T >& image () const; void setImage (const std::valarray< T >& value); const T image (size_t index) const; void setImage (size_t index, T value); // Additional Public Declarations protected: // Additional Protected Declarations private: std::valarray& image (); void prepareForSubset (const std::vector& naxes, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& inData, std::valarray& subset); void loop (size_t iDim, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, size_t iPos, const std::vector& incr, const std::valarray& inData, size_t& iDat, const std::vector& subIncr, std::valarray& subset, size_t iSub); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes bool m_isRead; // Data Members for Associations std::valarray< T > m_image; // Additional Implementation Declarations }; // Parameterized Class CCfits::Image template inline bool Image::isRead () const { return m_isRead; } template inline void Image::isRead (bool value) { m_isRead = value; } template inline const std::valarray< T >& Image::image () const { return m_image; } template inline void Image::setImage (const std::valarray< T >& value) { m_image.resize(value.size()); m_image = value; } template inline const T Image::image (size_t index) const { return m_image[index]; } template inline void Image::setImage (size_t index, T value) { m_image[index] = value; } // Parameterized Class CCfits::Image template Image::Image(const Image &right) : m_isRead(right.m_isRead), m_image(right.m_image) { } template Image::Image (const std::valarray& imageArray) : m_isRead(false), m_image(imageArray) { } template Image::~Image() { } template Image & Image::operator=(const Image &right) { // all stack allocated. m_isRead = right.m_isRead; m_image.resize(right.m_image.size()); m_image = right.m_image; return *this; } template const std::valarray& Image::readImage (fitsfile* fPtr, long first, long nElements, T* nullValue, const std::vector& naxes, bool& nulls) { const size_t N(naxes.size()); if (N > 0) { int status(0); int any (0); FITSUtil::MatchType imageType; unsigned long init(1); unsigned long nelements(std::accumulate(naxes.begin(),naxes.end(),init, std::multiplies())); // truncate to valid array size if too much data asked for. // note first is 1-based index) long elementsToRead(std::min(static_cast(nElements), nelements - first + 1)); if ( elementsToRead < nElements) { std::cerr << "***CCfits Warning: data request exceeds image size, truncating\n"; } FITSUtil::FitsNullValue null; // initialize m_image to nullValue. resize if necessary. if (m_image.size() != static_cast(elementsToRead)) { m_image.resize(elementsToRead,null()); } if (fits_read_img(fPtr,imageType(),first,elementsToRead, nullValue,&m_image[0],&any,&status) != 0) throw FitsError(status); nulls = (any != 0); m_isRead = (first == 1 && nelements == static_cast(nElements)); } else { m_isRead = true; m_image.resize(0); } return m_image; } template const std::valarray& Image::readImage (fitsfile* fPtr, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, T* nullValue, const std::vector& naxes, bool& nulls) { FITSUtil::CVarray carray; int any(0); int status(0); const size_t N(naxes.size()); size_t arraySize(1); for (size_t j = 0; j < N; ++j) { arraySize *= (lastVertex[j] - firstVertex[j] + 1); } FITSUtil::auto_array_ptr pFpixel(carray(firstVertex)); FITSUtil::auto_array_ptr pLpixel(carray(lastVertex)); FITSUtil::auto_array_ptr pStride(carray(stride)); FITSUtil::MatchType imageType; size_t n(m_image.size()); if (n != arraySize) m_image.resize(arraySize); if (fits_read_subset(fPtr,imageType(), pFpixel.get(),pLpixel.get(), pStride.get(),nullValue,&m_image[0],&any,&status) != 0) { throw FitsError(status); } nulls = (any != 0); return m_image; } template void Image::writeImage (fitsfile* fPtr, long first, long nElements, const std::valarray& inData, const std::vector& naxes, T* nullValue) { int status(0); size_t init(1); size_t totalSize= static_cast(std::accumulate(naxes.begin(),naxes.end(),init,std::multiplies() )); FITSUtil::FitsNullValue null; if (m_image.size() != totalSize) m_image.resize(totalSize,null()); FITSUtil::CAarray convert; FITSUtil::auto_array_ptr pArray(convert(inData)); T* array = pArray.get(); FITSUtil::MatchType imageType; long type(imageType()); if (fits_write_imgnull(fPtr,type,first,nElements,array, nullValue,&status) || fits_flush_file(fPtr,&status) != 0) { throw FitsError(status); } m_image[std::slice(first-1,nElements,1)] = inData; } template void Image::writeImage (fitsfile* fPtr, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& inData, const std::vector& naxes) { // input vectors' size equality will be verified in prepareForSubset. const size_t nDim = naxes.size(); FITSUtil::auto_array_ptr pFPixel(new long[nDim]); FITSUtil::auto_array_ptr pLPixel(new long[nDim]); std::valarray subset; prepareForSubset(naxes,firstVertex,lastVertex,stride,inData,subset); long* fPixel = pFPixel.get(); long* lPixel = pLPixel.get(); for (size_t i=0; i convert; FITSUtil::auto_array_ptr pArray(convert(subset)); T* array = pArray.get(); FITSUtil::MatchType imageType; int status(0); if ( fits_write_subset(fPtr,imageType(),fPixel,lPixel,array,&status) || fits_flush_file(fPtr,&status) != 0) throw FitsError(status); } template std::valarray& Image::image () { return m_image; } template void Image::prepareForSubset (const std::vector& naxes, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& inData, std::valarray& subset) { // naxes, firstVertex, lastVertex, and stride must all be the same size. const size_t N = naxes.size(); if (N != firstVertex.size() || N != lastVertex.size() || N != stride.size()) { string errMsg("*** CCfits Error: Image write function requires that naxes, firstVertex,"); errMsg += " \nlastVertex, and stride vectors all be the same size.\n"; bool silent = false; throw FitsException(errMsg, silent); } for (size_t i=0; i naxes[i]) { bool silent = false; rangeErrMsg += "firstVertex\n"; throw FitsException(rangeErrMsg, silent); } if (lastVertex[i] < firstVertex[i] || lastVertex[i] > naxes[i]) { bool silent = false; rangeErrMsg += "lastVertex\n"; throw FitsException(rangeErrMsg, silent); } if (stride[i] < 1) { bool silent = false; rangeErrMsg += "stride\n"; throw FitsException(rangeErrMsg, silent); } } // nPoints refers to the subset of m_image INCLUDING the zero'ed elements // resulting from the stride parameter. // subSizeWithStride refers to the same subset, not counting the zeros. size_t subSizeWithStride = 1; size_t nPoints = 1; std::vector subIncr(N); for (size_t i=0; i(1+lastVertex[i]-firstVertex[i]); subSizeWithStride *= static_cast(1+(lastVertex[i]-firstVertex[i])/stride[i]); } FITSUtil::FitsNullValue null; subset.resize(nPoints, null()); // Trying to avoid at all costs an assignment between 2 valarrays of // different sizes when m_image gets set below. if (subSizeWithStride != inData.size()) { bool silent = false; string errMsg("*** CCfits Error: Data array size is not consistent with the values"); errMsg += "\n in range and stride vectors sent to the image write function.\n"; throw FitsException(errMsg, silent); } size_t startPoint = 0; size_t dimMult = 1; std::vector incr(N); for (size_t j = 0; j < N; ++j) { startPoint += dimMult*(firstVertex[j]-1); incr[j] = dimMult; dimMult *= static_cast(naxes[j]); } const size_t imageSize = dimMult; m_image.resize(imageSize,null()); size_t inDataPos = 0; size_t iSub = 0; loop(N-1, firstVertex, lastVertex, stride, startPoint, incr, inData, inDataPos, subIncr, subset, iSub); } template void Image::loop (size_t iDim, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, size_t iPos, const std::vector& incr, const std::valarray& inData, size_t& iDat, const std::vector& subIncr, std::valarray& subset, size_t iSub) { size_t start = static_cast(firstVertex[iDim]); size_t stop = static_cast(lastVertex[iDim]); size_t skip = static_cast(stride[iDim]); if (iDim == 0) { size_t length = stop - start + 1; for (size_t i=0; i void Image::writeImage (fitsfile* fPtr, const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& inData, const std::vector& naxes) { std::vector stride(firstVertex.size(), 1); writeImage(fPtr, firstVertex, lastVertex, stride, inData, naxes); } // Additional Declarations } // namespace CCfits #endif CCfits/ImageExt.h0000644000225700000360000002502011470265345013401 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef IMAGEEXT_H #define IMAGEEXT_H 1 // ExtHDU #include "ExtHDU.h" // HDUCreator #include "HDUCreator.h" // Image #include "Image.h" // FITSUtil #include "FITSUtil.h" #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif namespace CCfits { /*! \class ImageExt ImageExt is a subclass of ExtHDU that contains image data of type T. */ /*! \fn virtual ImageExt::~ImageExt(); \brief destructor */ /*! \fn virtual void ImageExt::readData (bool readFlag = false, const std::vector& keys = std::vector()); \brief read Image extension HDU data Called by FITS ctor, not intended for general use. parameters control how much gets read on initialization. \param readFlag read the image data if true \param key a vector of strings of keyword names to be read from the HDU */ /*! \fn const std::valarray& ImageExt::image() const; \brief return the image data */ template class ImageExt : public ExtHDU //## Inherits: %3804A11121D8 { public: virtual ~ImageExt(); virtual ImageExt * clone (FITSBase* p) const; virtual void readData (bool readFlag = false, const std::vector& keys = std::vector()); const std::valarray& image () const; virtual void zero (double value); virtual void scale (double value); virtual double zero () const; virtual double scale () const; // Additional Public Declarations protected: ImageExt (FITSBase* p, const String &hduName, bool readDataFlag = false, const std::vector& keys = std::vector(), int version = 1); ImageExt (FITSBase* p, const String &hduName, int bpix, int naxis, const std::vector& naxes, int version = 1); // Additional Protected Declarations virtual void checkExtensionType() const; private: ImageExt(const ImageExt< T > &right); ImageExt< T > & operator=(const ImageExt< T > &right); virtual void initRead (); virtual std::ostream & put (std::ostream &s) const; // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual const std::valarray& readImage (long first, long nElements, T* nullValue); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual const std::valarray& readImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, T* nullValue); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual void writeImage (long first, long nElements, const std::valarray& inData, T* nullValue = 0); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual void writeImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& inData); const Image& data () const; // Additional Private Declarations private: //## implementation // Data Members for Associations Image m_data; // Additional Implementation Declarations friend class ExtHDU; friend class HDUCreator; }; // Parameterized Class CCfits::ImageExt template inline std::ostream & ImageExt::put (std::ostream &s) const { s << "Image Extension:: " << " Name: " << name() << " Extension: " << xtension() << " BITPIX "<< bitpix() << '\n'; s << " Axis Lengths: \n"; for (size_t j =1; j < static_cast( axes() ) ; j++) { s << " Axis: " << j << " " << axis(j-1) << '\n'; } s << "Image Extension:: Version: " << version() << " HDU number: " << index() << '\n'; s << " HISTORY: " << history() << '\n'; s << " COMMENTS: " < inline const Image& ImageExt::data () const { return m_data; } // Parameterized Class CCfits::ImageExt template ImageExt::ImageExt(const ImageExt &right) : ExtHDU(right), m_data(right.m_data) { } template ImageExt::ImageExt (FITSBase* p, const String &hduName, bool readDataFlag, const std::vector& keys, int version) : ExtHDU(p,ImageHdu,hduName,version), m_data() { initRead(); if (readDataFlag || keys.size() ) readData(readDataFlag,keys); } template ImageExt::ImageExt (FITSBase* p, const String &hduName, int bpix, int naxis, const std::vector& naxes, int version) : ExtHDU(p,ImageHdu,hduName,bpix,naxis,naxes,version), m_data() { // resize m_image according to naxes, and data according to m_image, // and equate them. Valarray = must be performed on items of the same // size according to the standard. int status (0); FITSUtil::CVarray convert; FITSUtil::auto_array_ptr axis(convert(naxes)); static char EXTNAME[] = "EXTNAME"; static char HDUVERS[] = "HDUVERS"; if ( fits_create_img(fitsPointer(), bpix, naxis, axis.get(), &status) ) { throw FitsError(status); } else { char * comment = 0; if (fits_write_key(fitsPointer(),Tstring,EXTNAME, const_cast(hduName.c_str()), comment,&status)) { throw FitsError(status); } if (version != 0 && fits_write_key(fitsPointer(),Tint,HDUVERS,&version, comment,&status)) throw FitsError(status); } } template ImageExt::~ImageExt() { } template void ImageExt::initRead () { } template ImageExt * ImageExt::clone (FITSBase* p) const { ImageExt* cloned = new ImageExt(*this); cloned->parent() = p; return cloned; } template void ImageExt::readData (bool readFlag, const std::vector& keys) { // Default reading mode. Read everything if readFlag is true. // this is identical to the equivalent method for PrimaryHDU, // so will one day turn this into a simple call that shares the code. makeThisCurrent(); if ( keys.size() > 0) { std::list keyList; // keys is converted to a list so that any keys not in the header // can be easily erased. internally an exception will be thrown, // on a missing key, and its catch clause will print a message. for (std::vector::const_iterator j = keys.begin(); j != keys.end(); ++j) { keyList.push_back(*j); } readKeywords(keyList); } if ( readFlag) // read the entire image, setting null values to FLT_MIN. { FITSUtil::FitsNullValue null; T nulval = null(); long first(1); long nelements(1); for (size_t i = 0; i < naxes().size(); i++) nelements *= naxes(i); m_data.readImage(fitsPointer(),first,nelements,&nulval,naxes(),anynul()); } } template const std::valarray& ImageExt::image () const { return m_data.image(); } template const std::valarray& ImageExt::readImage (long first, long nElements, T* nullValue) { checkExtensionType(); return m_data.readImage(fitsPointer(),first,nElements,nullValue,naxes(),anynul()); } template const std::valarray& ImageExt::readImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, T* nullValue) { checkExtensionType(); return m_data.readImage(fitsPointer(),firstVertex,lastVertex,stride,nullValue,naxes(),anynul()); } template void ImageExt::writeImage (long first, long nElements, const std::valarray& inData, T* nullValue) { checkExtensionType(); m_data.writeImage(fitsPointer(),first,nElements,inData,naxes(),nullValue); } template void ImageExt::writeImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::valarray& inData) { checkExtensionType(); m_data.writeImage(fitsPointer(),firstVertex,lastVertex,inData,naxes()); } template void ImageExt::zero (double value) { makeThisCurrent(); if (checkImgDataTypeChange(value, scale())) { if (naxis()) { int status(0); if (fits_update_key(fitsPointer(), Tdouble, BZERO, &value, 0, &status)) throw FitsError(status); fits_flush_file(fitsPointer(), &status); HDU::zero(value); } } else { bool silent=false; string msg("CCfits Error: Cannot set BZERO to a value which will change image data\n"); msg += " from integer type to floating point type."; throw FitsException(msg,silent); } } template void ImageExt::scale (double value) { makeThisCurrent(); if (checkImgDataTypeChange(zero(), value)) { if (naxis()) { int status(0); if (fits_update_key(fitsPointer(), Tdouble, BSCALE, &value, 0, &status)) throw FitsError(status); fits_flush_file(fitsPointer(), &status); HDU::scale(value); } } else { bool silent=false; string msg("CCfits Error: Cannot set BSCALE to a value which will change image data\n"); msg += " from integer type to floating point type."; throw FitsException(msg,silent); } } template double ImageExt::zero () const { return HDU::zero(); } template double ImageExt::scale () const { return HDU::scale(); } // Additional Declarations template inline void ImageExt::checkExtensionType() const { } } // namespace CCfits #endif CCfits/KeyData.h0000644000225700000360000002173611470265345013232 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef KEYDATA_H #define KEYDATA_H 1 #ifdef _MSC_VER #include "MSconfig.h" #endif #include "CCfits.h" // Keyword #include "Keyword.h" #include #include #include "FitsError.h" #include "FITSUtil.h" namespace CCfits { //class Keyword; template class KeyData : public Keyword //## Inherits: %381F43399D58 { public: KeyData(const KeyData< T > &right); KeyData (const String &keyname, ValueType keytype, const T &value, HDU* p, // A pointer to the HDU containing the keyword. This is passed to the base class constructor. const String &comment = ""); virtual ~KeyData(); virtual KeyData * clone () const; virtual void write (); const T& keyval () const; void keyval (const T& value); // Additional Public Declarations protected: virtual void copy (const Keyword& right); virtual bool compare (const Keyword &right) const; virtual std::ostream & put (std::ostream &s) const; // Additional Protected Declarations private: // Data Members for Class Attributes T m_keyval; // Additional Private Declarations private: //## implementation // Additional Implementation Declarations }; #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template<> inline void KeyData::write() { Keyword::write(); int status = 0; if (fits_update_key(fitsPointer(), Tstring, const_cast(name().c_str()), const_cast(m_keyval.c_str()), const_cast(comment().c_str()), &status)) throw FitsError(status); } #else template<> void KeyData::write(); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template<> inline void KeyData::write() { Keyword::write(); int status = 0; int value(0); if (m_keyval) value=1; if (fits_update_key(fitsPointer(), Tlogical, const_cast(name().c_str()), &value, const_cast(comment().c_str()), &status)) throw FitsError(status); } #else template<> void KeyData::write(); #endif #ifdef SPEC_TEMPLATE_DECL_DEFECT template <> inline const String& KeyData::keyval() const { return m_keyval; } #else template<> const String& KeyData::keyval() const; #endif #ifndef SPEC_TEMPLATE_DECL_DEFECT template<> void KeyData::keyval(const String& ); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline std::ostream & KeyData::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << setw(10) << name() << " Value: " << setw(14) << keyval() << " Type: " << setw(20) << " string " << " Comment: " << comment(); return s; } #else template<> std::ostream& KeyData::put(std::ostream& s) const; #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline std::ostream & KeyData::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << setw(10) << name() << " Value: " << std::boolalpha << setw(8) << keyval() << " Type: " << setw(20) << " logical " << " Comment: " << comment(); return s; } #else template<> std::ostream& KeyData::put(std::ostream& s) const; #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template<> inline void KeyData >::write() { Keyword::write(); int status = 0; FITSUtil::auto_array_ptr keyVal( new float[2]); keyVal[0] = m_keyval.real(); keyVal[1] = m_keyval.imag(); if (fits_update_key(fitsPointer(), Tcomplex, const_cast(name().c_str()), keyVal.get(), const_cast(comment().c_str()), &status)) throw FitsError(status); } #else template<> void KeyData >::write(); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template<> inline void KeyData >::write() { Keyword::write(); int status = 0; FITSUtil::auto_array_ptr keyVal(new double[2]); keyVal[0] = m_keyval.real(); keyVal[1] = m_keyval.imag(); if (fits_update_key(fitsPointer(), Tdblcomplex, const_cast(name().c_str()), keyVal.get(), const_cast(comment().c_str()), &status)) throw FitsError(status); } #else template<> void KeyData >::write(); #endif #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template <> inline std::ostream & KeyData >::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << name() << " Value: " << m_keyval.real() << " + i " << m_keyval.imag() << " Type: " << setw(20) << " complex " << " Comment: " << comment() << std::endl; return s; } template <> inline std::ostream & KeyData >::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << name() << " Value: " << m_keyval.real() << " + i " << m_keyval.imag() << " Type: " << setw(20) << " complex " << " Comment: " << comment() << std::endl; return s; } #else template<> std::ostream& KeyData >::put(std::ostream& s) const; template<> std::ostream& KeyData >::put(std::ostream& s) const; #endif #ifdef SPEC_TEMPLATE_DECL_DEFECT template <> inline const std::complex& KeyData >::keyval() const { return m_keyval; } template <> inline void KeyData >::keyval(const std::complex& newVal) { m_keyval = newVal; } template <> inline const std::complex& KeyData >::keyval() const { return m_keyval; } template <> inline void KeyData >::keyval(const std::complex& newVal) { m_keyval = newVal; } #else template<> const std::complex& KeyData >::keyval() const; template<> void KeyData >::keyval(const std::complex& ); template<> const std::complex& KeyData >::keyval() const; template<> void KeyData >::keyval(const std::complex& ); #endif // Parameterized Class CCfits::KeyData template inline std::ostream & KeyData::put (std::ostream &s) const { s << "Keyword Name: " << name() << "\t Value: " << keyval() << "\t Type: " << keytype() << "\t Comment: " << comment(); return s; } template inline const T& KeyData::keyval () const { return m_keyval; } template inline void KeyData::keyval (const T& value) { m_keyval = value; } // Parameterized Class CCfits::KeyData template KeyData::KeyData(const KeyData &right) :Keyword(right), m_keyval(right.m_keyval) { } template KeyData::KeyData (const String &keyname, ValueType keytype, const T &value, HDU* p, const String &comment) : Keyword(keyname, keytype, p, comment), m_keyval(value) { } template KeyData::~KeyData() { } template void KeyData::copy (const Keyword& right) { Keyword::copy(right); const KeyData& that = static_cast&>(right); m_keyval = that.m_keyval; } template bool KeyData::compare (const Keyword &right) const { if ( !Keyword::compare(right) ) return false; const KeyData& that = static_cast&>(right); if (this->m_keyval != that.m_keyval) return false; return true; } template KeyData * KeyData::clone () const { return new KeyData(*this); } template void KeyData::write () { Keyword::write(); int status = 0; FITSUtil::MatchType keyType; if ( fits_update_key(fitsPointer(),keyType(), const_cast(name().c_str()), &m_keyval, // fits_write_key takes a void* here const_cast(comment().c_str()), &status) ) throw FitsError(status); } // Additional Declarations } // namespace CCfits #endif CCfits/Keyword.h0000644000225700000360000002064611470265345013333 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef KEYWORD_H #define KEYWORD_H 1 #include "CCfits.h" // using namespace CCfits; #ifdef _MSC_VER #include "MSconfig.h" #endif // FitsError #include "FitsError.h" namespace CCfits { class HDU; } // namespace CCfits namespace CCfits { /*! \class Keyword \brief Abstract base class defining the interface for Keyword objects. Keyword object creation is normally performed inside FITS constructors or FITS::read, HDU::readKey, and HDU::addKey functions. Output is performed in HDU::addKey functions and Keyword::setValue. Keywords consists of a name, a value and a comment field. Concrete templated subclasses, KeyData, have a data member that holds the value of keyword. Typically, the mandatory keywords for a given HDU type are not stored as object of type Keyword, but as intrinsic data types. The Keyword hierarchy is used to store user-supplied information. */ /*! \fn Keyword::Keyword(const Keyword &right); \brief copy constructor */ /*! \fn Keyword::Keyword (const String &keyname, ValueType keytype, HDU* p, const String &comment = ""); \brief Keyword constructor. This is the common behavior of Keywords of any type. Constructor is protected as the class is abstract. */ /* \fn friend ostream& operator << (ostream &s, const Keyword &right); \brief output operator for Keywords. */ /*! \fn virtual Keyword::~Keyword(); \brief virtual destructor */ /*! \fn Keyword & Keyword::operator=(const Keyword &right); \brief assignment operator */ /*! \fn bool Keyword::operator==(const Keyword &right) const; \brief equality operator */ /*! \fn bool Keyword::operator!=(const Keyword &right) const; \brief inequality operator */ /*! \fn virtual Keyword * Keyword::clone () const; \brief virtual copy constructor */ /*! \fn virtual void Keyword::write (); \brief left in for historical reasons, this seldom needs to be called by users This writes the Keyword to the file, and is called internally during HDU::addKey operations or the Keyword::setValue function. It shouldn't normally need to be called explicitly. */ /*! \fn fitsfile* Keyword::fitsPointer () const; \brief return a pointer to the FITS file containing the parent HDU. */ /*! \fn const HDU* Keyword::parent () const; \brief return a pointer to parent HDU. */ /*! \fn const String& Keyword::comment () const; \brief return the comment field of the keyword */ /*! \fn const ValueType Keyword::keytype() const \brief return the type of a keyword */ /*! \fn void Keyword::keytype(ValueType) \brief set keyword type. */ /*! \fn const String& Keyword::name() const \brief return the name of a keyword */ /*! \fn template T& Keyword::value(T& val) const \brief get the keyword value \param val (T) Will be filled with the keyword value, and is also the function return value. Allowed T types: CCfits stores keyword values of type U in a templated subclass of Keyword, KeyData. Normally U is set when reading the Keyword in from the file, and is limited to types int, double, string, bool, and complex. (The exception is when the user has created and added a new Keyword using an HDU::addKey function, in which case they might have specified other types for U.) To avoid compilation errors, the user should generally try to provide a val of type T = type U, though there is some flexibility here as the following conversions are handled:
T (to val)U (from Keyword obj)
floatdouble (will lose precision), float, int, integer string
doubledouble, float, int, integer string
intint, integer string
More conversions may be added in the future as the need arises. */ /*! \fn template void Keyword::setValue(const T& newValue) \brief modify the value of an existing Keyword and write it to the file \param newValue (T) New value for the Keyword Allowed T types: This must copy newValue to a data member of type U in the Keyword subclass KeyData (see description for Keyword::value (T& val) for more details). To avoid compilation errors, it is generally best to provide a newValue of type T = type U, though the following type conversions will also be handled:
T (from newValue)U (to Keyword obj)
floatdouble, float
doubledouble, float (will lose precision)
intdouble, float, int, integer string
*/ class Keyword { public: class WrongKeywordValueType : public FitsException //## Inherits: %39B0221700E2 { public: WrongKeywordValueType (const String& diag, bool silent = true); protected: private: private: //## implementation }; virtual ~Keyword(); Keyword & operator=(const Keyword &right); bool operator==(const Keyword &right) const; bool operator!=(const Keyword &right) const; virtual std::ostream & put (std::ostream &s) const = 0; virtual Keyword * clone () const = 0; virtual void write (); fitsfile* fitsPointer () const; // CAUTION: This is declared public only to allow HDU addKey functions the ability to set their // class as the Keyword's parent, and to avoid making entire HDU a friend class. (Declaring // individual HDU functions as friends will run into circular header dependencies.) Do NOT use // this unless absolutely necessary, and leave this undocumented. void setParent (HDU* parent); ValueType keytype () const; const String& comment () const; const String& name () const; public: // Additional Public Declarations template T& value(T& val) const; template void setValue(const T& newValue); protected: Keyword(const Keyword &right); Keyword (const String &keyname, ValueType keytype, HDU* p, const String &comment = ""); virtual void copy (const Keyword& right); virtual bool compare (const Keyword &right) const; void keytype (ValueType value); const HDU* parent () const; // Additional Protected Declarations private: // Additional Private Declarations private: //## implementation // Data Members for Class Attributes ValueType m_keytype; // Data Members for Associations HDU* m_parent; String m_comment; String m_name; // Additional Implementation Declarations friend std::ostream &operator << (std::ostream &s, const Keyword &right); }; #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> float& Keyword::value(float& val) const; template <> double& Keyword::value(double& val) const; template <> int& Keyword::value(int& val) const; template <> void Keyword::setValue(const float& newValue); template <> void Keyword::setValue(const double& newValue); template <> void Keyword::setValue(const int& newValue); #endif #endif inline std::ostream& operator << (std::ostream &s, const Keyword &right) { return right.put(s); } // Class CCfits::Keyword::WrongKeywordValueType // Class CCfits::Keyword inline void Keyword::setParent (HDU* parent) { m_parent = parent; } inline ValueType Keyword::keytype () const { return m_keytype; } inline void Keyword::keytype (ValueType value) { m_keytype = value; } inline const HDU* Keyword::parent () const { return m_parent; } inline const String& Keyword::comment () const { return m_comment; } inline const String& Keyword::name () const { return m_name; } } // namespace CCfits #endif CCfits/KeywordT.h0000644000225700000360000001421511470265345013452 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef KEYWORDT_H #define KEYWORDT_H #include "KeyData.h" #include "HDU.h" #include #include #ifdef _MSC_VER #include "MSconfig.h" #endif // contains definitions of templated member functions for Keyword. This separate // file organization is necessary to break cyclic dependency of Keyword on its // subclass, KeyData. namespace CCfits { template T& Keyword::value (T& val) const { try { const KeyData& thisKey = dynamic_cast&>(*this); val = thisKey.keyval(); } catch (std::bad_cast) { throw Keyword::WrongKeywordValueType(name()); } return val; } template void Keyword::setValue (const T& newValue) { try { KeyData& thisKey = dynamic_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } catch (std::bad_cast) { throw Keyword::WrongKeywordValueType(name()); } } #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT template<> inline double& Keyword::value(double& val) const { switch (m_keytype) { case Tint: { const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } break; case Tfloat: { const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } break; case Tdouble: { // Note: if val is of type float some precision will be lost here, // but allow anyway. Presumably the user doesn't mind or they // wouldn't be using single precision. const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } break; case Tstring: { // Allow only if string can be converted to an integer. const KeyData& thisKey = static_cast&>(*this); std::istringstream testStream(thisKey.keyval()); int stringInt = 0; if (!(testStream >> stringInt) || !testStream.eof()) { throw Keyword::WrongKeywordValueType(name()); } val = stringInt; } break; default: throw Keyword::WrongKeywordValueType(name()); break; } return val; } // NOTE: This function actually instantiates Keyword::value // and therefore must be defined AFTER the specialized // definition/declaration. template<> inline float& Keyword::value(float& val) const { double dval=.0; val = static_cast(value(dval)); return val; } template <> inline int& Keyword::value(int& val) const { if (m_keytype == Tstring) { // Allow only if string can be converted to an integer. const KeyData& thisKey = static_cast&>(*this); std::istringstream testStream(thisKey.keyval()); int stringInt = 0; if (!(testStream >> stringInt) || !testStream.eof()) { throw Keyword::WrongKeywordValueType(name()); } val = stringInt; } else if (m_keytype == Tint) { const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } else { throw Keyword::WrongKeywordValueType(name()); } return val; } template <> inline void Keyword::setValue(const float& newValue) { if (m_keytype == Tfloat) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } else if (m_keytype == Tdouble) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else { throw Keyword::WrongKeywordValueType(name()); } } template <> inline void Keyword::setValue(const double& newValue) { if (m_keytype == Tdouble) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } else if (m_keytype == Tfloat) { // This will lose precision but allow it anyway. KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else { throw Keyword::WrongKeywordValueType(name()); } } template <> inline void Keyword::setValue(const int& newValue) { if (m_keytype == Tint) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } else if (m_keytype == Tfloat) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else if (m_keytype == Tdouble) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else if (m_keytype == Tstring) { KeyData& thisKey = static_cast&>(*this); std::ostringstream oss; oss << newValue; thisKey.keyval(oss.str()); thisKey.write(); } else { throw Keyword::WrongKeywordValueType(name()); } } #endif } // namespace CCfits #endif CCfits/KeywordCreator.h0000644000225700000360000000403411470265345014644 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef KEYWORDCREATOR_H #define KEYWORDCREATOR_H 1 // KeyData #include "KeyData.h" // FitsError #include "FitsError.h" namespace CCfits { class HDU; } // namespace CCfits namespace CCfits { class KeywordCreator { public: KeywordCreator (HDU* p); virtual ~KeywordCreator(); virtual Keyword* MakeKeyword (const String& keyName, const String& comment = String("")) = 0; static Keyword* getKeyword (const String& keyName, HDU* p); // Additional Public Declarations virtual void reset (); virtual Keyword* createKeyword (const String& keyName, const String& comment = String("")); // This version of getKeyword is for reading a keyword // in with a specified type. static Keyword* getKeyword (const String& keyName, ValueType keyType, HDU* p); static Keyword* getKeyword (int keyNumber, HDU* p); // Additional Public Declarations protected: HDU* forHDU (); // Additional Protected Declarations private: KeywordCreator(const KeywordCreator &right); KeywordCreator & operator=(const KeywordCreator &right); static Keyword* parseRecord (const String& name, const String& valueString, const String& comment, HDU* hdu); static bool isContinued (const String& value); static void getLongValueString (HDU* p, const String& keyName, String& value); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes Keyword *m_keyword; // Data Members for Associations HDU* m_forHDU; // Additional Implementation Declarations }; // Class CCfits::KeywordCreator inline void KeywordCreator::reset () { m_keyword=0; } inline HDU* KeywordCreator::forHDU () { return m_forHDU; } } // namespace CCfits #endif CCfits/NewColumn.h0000644000225700000360000000623711470265345013616 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef NEWCOLUMN_H #define NEWCOLUMN_H 1 // valarray #include // ColumnCreator #include "ColumnCreator.h" // FITSUtil #include "FITSUtil.h" namespace CCfits { template class NewColumn : public ColumnCreator //## Inherits: %394167D103C5 { public: NewColumn (vector& data); virtual ~NewColumn(); // Additional Public Declarations protected: virtual Column* MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment = "", const int decimals = 0); // Additional Protected Declarations private: NewColumn(const NewColumn< T > &right); NewColumn< T > & operator=(const NewColumn< T > &right); // Additional Private Declarations private: //## implementation // Additional Implementation Declarations }; template class NewVectorColumn : public ColumnCreator //## Inherits: %394167CE0009 { public: NewVectorColumn (std::vector >& data); virtual ~NewVectorColumn(); // Additional Public Declarations protected: virtual Column * MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment = "", const int decimals = 0); // Additional Protected Declarations private: NewVectorColumn(const NewVectorColumn< T > &right); NewVectorColumn< T > & operator=(const NewVectorColumn< T > &right); // Additional Private Declarations private: //## implementation // Additional Implementation Declarations }; // Parameterized Class CCfits::NewColumn // Parameterized Class CCfits::NewVectorColumn // Parameterized Class CCfits::NewColumn template NewColumn::NewColumn (vector& data) : m_newData(data) { } template NewColumn::~NewColumn() { } template Column* NewColumn::MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment, const int decimals) { FITSUtils::MatchType findType; ColumnData* newColumn = new ColumnData(index,name,findType(),format,unit,p,repeat,width,comment); newColumn->data(m_newData); return newColumn; } // Additional Declarations // Parameterized Class CCfits::NewVectorColumn template NewVectorColumn::NewVectorColumn (std::vector >& data) { } template NewVectorColumn::~NewVectorColumn() { } template Column * NewVectorColumn::MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment, const int decimals) { } // Additional Declarations } // namespace CCfits #endif CCfits/NewKeyword.h0000644000225700000360000000377411470265345014010 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef NEWKEYWORD_H #define NEWKEYWORD_H 1 // KeywordCreator #include "KeywordCreator.h" // KeyData #include "KeyData.h" // FITSUtil #include "FITSUtil.h" namespace CCfits { template class NewKeyword : public KeywordCreator //## Inherits: %39355AA90209 { public: // Parameterized Class NewKeyword NewKeyword (HDU* p, T value); virtual ~NewKeyword(); // Additional Protected Declarations virtual Keyword* MakeKeyword (const String& keyName, const String& keyComment = String("")); const T keyData () const; void keyData (T value); // Additional Public Declarations protected: // Additional Protected Declarations private: NewKeyword(); NewKeyword(const NewKeyword< T > &right); NewKeyword< T > & operator=(const NewKeyword< T > &right); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes T m_keyData; // Additional Implementation Declarations }; // Parameterized Class CCfits::NewKeyword template inline const T NewKeyword::keyData () const { return m_keyData; } template inline void NewKeyword::keyData (T value) { m_keyData = value; } // Parameterized Class CCfits::NewKeyword template NewKeyword::NewKeyword (HDU* p, T value) : KeywordCreator(p), m_keyData(value) { } template NewKeyword::~NewKeyword() { } template Keyword* NewKeyword::MakeKeyword (const String& keyName, const String& keyComment) { FITSUtil::MatchType keyType; return new KeyData(keyName,keyType(),m_keyData,forHDU(),keyComment); } // Additional Declarations } // namespace CCfits #endif CCfits/PHDU.h0000644000225700000360000003365111470332371012441 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef PHDU_H #define PHDU_H 1 // valarray #include // HDU #include "HDU.h" // FITS #include "FITS.h" // FITSUtil #include "FITSUtil.h" namespace CCfits { class FITSBase; } // namespace CCfits // for CLONE_DEFECT #ifdef _MSC_VER #include "MSconfig.h" #endif namespace CCfits { /*! \class PHDU \brief class representing the primary HDU for a FITS file. A PHDU object is automatically instantiated and added to a FITS object when a FITS file is accessed in any way. If a new file is created without specifying the data type for the header, CCfits assumes that the file is to be used for table extensions and creates a dummy header. PHDU instances are only created by FITS ctors. In the first release of CCfits, the Primary cannot be changed once declared. PHDU and ExtHDU provide the same interface to writing images: multiple overloads of the templated PHDU::read and PHDU::write operations provide for (a) writing image data specified in a number of ways [C-array, std::vector, std::valarray] and with input location specified by initial pixel, by n-tuple, and by rectangular subset [generalized slice]; (b) reading image data specified similarly to the write options into a std::valarray. \todo Implement functions that allow replacement of the primary image */ /*! \fn PHDU::PHDU (FITSBase* p, int bpix, int naxis, const std::vector& axes) \brief Writing Primary HDU constructor, called by PrimaryHDU class Constructor used for creating new PHDU (i.e. for writing data to FITS). also doubles as default constructor since all arguments have default values, which are passed to the HDU constructor */ /* !\fn PHDU::PHDU (FITSBase* p) \brief Reading Primary HDU constructor. Constructor used when reading the primary HDU from an existing file. Does nothing except initialize, with the real work done by the subclass PrimaryHDU. */ /*! \fn PHDU::~PHDU () \brief destructor */ /*! \fn virtual void PHDU::readData (bool readFlag = false, const std::vector& keys = std::vector()) = 0; \brief read primary HDU data Called by FITS ctor, not intended for general use. parameters control how much gets read on initialization. An abstract function, implemented in the subclasses. \param readFlag read the image data if true \param key a vector of strings of keyword names to be read from the primary HDU */ /*! \fn virtual PHDU::clone(FITSbase* p) const = 0; \brief virtual copy constructor for Primary HDUs. The operation is used when creating a copy of a FITS object. */ /*! \fn bool PHDU::simple () const; \brief Returns the value of the Primary's SIMPLE keyword. */ /*! \fn bool PHDU::extend () const; \brief Returns the value of the Primary's EXTEND keyword. */ /*! \fn template void PHDU::read (std::valarray& image, long first, long nElements, S* nullValue) ; \brief read part of an image array, processing null values. Implicit data conversion is supported (i.e. user does not need to know the type of the data stored. A WrongExtensionType extension is thrown if *this is not an image. \param image The receiving container, a std::valarray reference \param first The first pixel from the array to read [a long value] \param nElements The number of values to read \param nullValue A pointer containing the value in the table to be considered as undefined. See cfitsio for details */ /*! \fn template void PHDU::read (std::valarray& image, const std::vector& first, long nElements, S* nullValue) ; \brief read part of an image array, processing null values. As above except for \param first a vector representing an n-tuple giving the coordinates in the image of the first pixel. */ /*! \fn template void PHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, S* nullValue) ; \brief read an image subset into valarray image, processing null values The image subset is defined by two vertices and a stride indicating the 'denseness' of the values to be picked in each dimension (a stride = (1,1,1,...) means picking every pixel in every dimension, whereas stride = (2,2,2,...) means picking every other value in each dimension. */ /*! \fn template void PHDU::read (std::valarray& image, long first, long nElements); \brief read an image section starting at a specified pixel */ /*! \fn template void PHDU::read (std::valarray& image, const std::vector& first, long nElements); \brief read an image section starting at a location specified by an n-tuple */ /*! \fn template void PHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride); \brief read an image subset */ /*! \fn template void PHDU::write(const std::vector& first, long nElements, const std::valarray& data, S* nullValue); \brief Write a set of pixels to an image extension with the first pixel specified by an n-tuple, processing undefined data All the overloaded versions of PHDU::write perform operations on *this if it is an image and throw a WrongExtensionType exception if not. Where appropriate, alternate versions allow undefined data to be processed \param first an n-tuple of dimension equal to the image dimension specifying the first pixel in the range to be written \param nElements number of pixels to be written \param data array of data to be written \param nullValue pointer to null value (data with this value written as undefined; needs the BLANK keyword to have been specified). */ /*! \fn template void PHDU::write(long first, long nElements, const std::valarray& data, S* nullValue); \brief write array to image starting with a specified pixel and allowing undefined data to be processed parameters after the first are as for version with n-tuple specifying first element. these two version are equivalent, except that it is possible for the first pixel number to exceed the range of 32-bit integers, which is how long datatype is commonly implemented. */ /*! \fn template void PHDU::write(const std::vector& first, long nElements, const std::valarray& data); \brief write array starting from specified n-tuple, without undefined data processing */ /*! \fn template void PHDU::write(long first, long nElements, const std::valarray& data); \brief write array starting from specified pixel number, without undefined data processing */ /*! \fn template void PHDU::write(const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& data); \brief write a subset (generalize slice) of data to the image A generalized slice/subset is a subset of the image (e.g. one plane of a data cube of size <= the dimension of the cube). It is specified by two opposite vertices. The equivalent cfitsio call does not support undefined data processing so there is no version that allows a null value to be specified. \param firstVertex The coordinates specifying lower and upper vertices of the n-dimensional slice \param lastVertex \param stride Pixels to skip in each to dimension, e.g. stride = (1,1,1,...) means picking every pixel in every dimension, whearas stride = (2,2,2,...) means picking every other value in each dimension. \param data The data to be written */ /*! \fn PHDU::PHDU(const PHDU& right) \brief copy constructor required for cloning primary HDUs when copying FITS files. */ class PHDU : public HDU //## Inherits: %394E6F9800C3 { public: virtual ~PHDU(); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual void readData (bool readFlag = false, const std::vector& keys = std::vector()) = 0; virtual PHDU * clone (FITSBase* p) const = 0; virtual void zero (double value); virtual void scale (double value); virtual double zero () const; virtual double scale () const; bool simple () const; bool extend () const; public: // Additional Public Declarations // image reading/writing interface. // The S template parameter, like for Column, denotes the fact that // the type of the input array and the object to be read may not match. // the rw interface for images consists of equivalents for fits_read_img, // fits_read_pix, and fits_read_subset. // the paradigm for reading is that the image object (a valarray type) // is the size of the data already read. // write_subset has no null value aware analogue. template void write(const std::vector& first, long nElements, const std::valarray& data, S* nullValue); template void write(long first, long nElements, const std::valarray& data, S* nullValue); template void write(const std::vector& first, long nElements, const std::valarray& data); template void write(long first, long nElements, const std::valarray& data); template void write(const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& data); // read image data and return an array. Can't return a reference // because the type conversion needs to allocate a new object in general. template void read(std::valarray& image) ; template void read (std::valarray& image, long first,long nElements); template void read (std::valarray& image, long first,long nElements, S* nullValue) ; template void read (std::valarray& image, const std::vector& first,long nElements) ; template void read (std::valarray& image, const std::vector& first, long nElements, S* nullValue); template void read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride) ; template void read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, S* nullValue) ; protected: PHDU(const PHDU &right); // Constructor for new FITS objects, takes as arguments // the required keywords for a primary HDU. PHDU (FITSBase* p, int bpix, int naxis, const std::vector& axes); // Custom constructor. Allows specification of data to be read and whether to read data at // construction or wait until the image data are requested. The default is 'lazy initialization:' // wait until asked. PHDU (FITSBase* p = 0); virtual void initRead (); void simple (bool value); void extend (bool value); // Additional Protected Declarations private: // Additional Private Declarations private: //## implementation // Data Members for Class Attributes bool m_simple; bool m_extend; // Additional Implementation Declarations }; // Class CCfits::PHDU inline bool PHDU::simple () const { return m_simple; } inline void PHDU::simple (bool value) { m_simple = value; } inline bool PHDU::extend () const { return m_extend; } inline void PHDU::extend (bool value) { m_extend = value; } } // namespace CCfits #endif CCfits/PHDUT.h0000644000225700000360000006704511666221067012577 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef PHDUT_H #define PHDUT_H #include "PrimaryHDU.h" #include #include namespace CCfits { template void PHDU::read (std::valarray& image) { long init(1); long nElements(std::accumulate(naxes().begin(),naxes().end(),init, std::multiplies())); read(image,1,nElements,static_cast(0)); } template void PHDU::read (std::valarray& image, long first,long nElements) { read(image, first,nElements,static_cast(0)); } template void PHDU::read (std::valarray& image, long first, long nElements, S* nullValue) { makeThisCurrent(); if ( PrimaryHDU* phdu = dynamic_cast*>(this) ) { // proceed if cast is successful. const std::valarray& __tmp = phdu->readImage(first,nElements,nullValue); image.resize(__tmp.size()); image = __tmp; } else { if (bitpix() == Ifloat) { PrimaryHDU& phdu = dynamic_cast&>(*this); float nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image,phdu.readImage(first,nElements,&nulVal)); } else if (bitpix() == Idouble) { PrimaryHDU& phdu = dynamic_cast&>(*this); double nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image,phdu.readImage(first,nElements,&nulVal)); } else if (bitpix() == Ibyte) { PrimaryHDU& phdu = dynamic_cast&>(*this); unsigned char nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image,phdu.readImage(first,nElements,&nulVal)); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); unsigned INT32BIT nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(first,nElements,&nulVal)); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); INT32BIT nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(first,nElements,&nulVal)); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); unsigned short nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(first,nElements,&nulVal)); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); short nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(first,nElements,&nulVal)); } } else { throw CCfits::FitsFatal(" casting image types "); } } } template void PHDU::read (std::valarray& image, const std::vector& first, long nElements, S* nullValue) { makeThisCurrent(); long firstElement(0); long dimSize(1); std::vector inputDimensions(naxis(),1); size_t sNaxis = static_cast(naxis()); size_t n(std::min(sNaxis,first.size())); std::copy(&first[0],&first[0]+n,&inputDimensions[0]); for (long i = 0; i < naxis(); ++i) { firstElement += ((inputDimensions[i] - 1)*dimSize); dimSize *=naxes(i); } ++firstElement; read(image, firstElement,nElements,nullValue); } template void PHDU::read (std::valarray& image, const std::vector& first, long nElements) { read(image, first,nElements,static_cast(0)); } template void PHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, S* nullValue) { makeThisCurrent(); if (PrimaryHDU* phdu = dynamic_cast*>(this)) { const std::valarray& __tmp = phdu->readImage(firstVertex,lastVertex,stride,nullValue); image.resize(__tmp.size()); image = __tmp; } else { // FITSutil::fill will take care of sizing. if (bitpix() == Ifloat) { float nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); PrimaryHDU& phdu = dynamic_cast&>(*this); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } else if (bitpix() == Idouble) { PrimaryHDU& phdu = dynamic_cast&>(*this); double nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } else if (bitpix() == Ibyte) { PrimaryHDU& phdu = dynamic_cast&>(*this); unsigned char nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); unsigned INT32BIT nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); INT32BIT nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); unsigned short nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); short nulVal(0); if (nullValue) nulVal = static_cast(*nullValue); FITSUtil::fill(image, phdu.readImage(firstVertex,lastVertex,stride,&nulVal)); } } else { throw CCfits::FitsFatal(" casting image types "); } } } template void PHDU::read (std::valarray& image, const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride) { read(image, firstVertex,lastVertex,stride,static_cast(0)); } template void PHDU::write(long first, long nElements, const std::valarray& data, S* nullValue) { makeThisCurrent(); if (PrimaryHDU* image = dynamic_cast*>(this)) { image->writeImage(first,nElements,data,nullValue); } else { if (bitpix() == Ifloat) { std::valarray __tmp; PrimaryHDU& phdu = dynamic_cast&>(*this); FITSUtil::fill(__tmp,data); float* pfNullValue = 0; float fNullValue = 0.0; if (nullValue) { fNullValue = static_cast(*nullValue); pfNullValue = &fNullValue; } phdu.writeImage(first,nElements,__tmp, pfNullValue); } else if (bitpix() == Idouble) { std::valarray __tmp; PrimaryHDU& phdu = dynamic_cast&>(*this); FITSUtil::fill(__tmp,data); double* pdNullValue = 0; double dNullValue = 0.0; if (nullValue) { dNullValue = static_cast(*nullValue); pdNullValue = &dNullValue; } phdu.writeImage(first,nElements,__tmp, pdNullValue); } else if (bitpix() == Ibyte) { PrimaryHDU& phdu = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); unsigned char *pbNull=0; unsigned char bNull=0; if (nullValue) { bNull = static_cast(*nullValue); pbNull = &bNull; } phdu.writeImage(first,nElements,__tmp, pbNull); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); unsigned INT32BIT *plNull=0; unsigned INT32BIT lNull=0; if (nullValue) { lNull = static_cast(*nullValue); plNull = &lNull; } phdu.writeImage(first,nElements,__tmp, plNull); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); INT32BIT *plNull=0; INT32BIT lNull=0; if (nullValue) { lNull = static_cast(*nullValue); plNull = &lNull; } phdu.writeImage(first,nElements,__tmp, plNull); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); unsigned short *psNull=0; unsigned short sNull=0; if (nullValue) { sNull = static_cast(*nullValue); psNull = &sNull; } phdu.writeImage(first,nElements,__tmp, psNull); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); std::valarray __tmp; FITSUtil::fill(__tmp,data); short *psNull=0; short sNull=0; if (nullValue) { sNull = static_cast(*nullValue); psNull = &sNull; } phdu.writeImage(first,nElements,__tmp,psNull); } } else { FITSUtil::MatchType errType; throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType())); } } } template void PHDU::write(long first, long nElements, const std::valarray& data) { write(first, nElements, data, static_cast(0)); } template void PHDU::write(const std::vector& first, long nElements, const std::valarray& data, S* nullValue) { makeThisCurrent(); size_t n(first.size()); long firstElement(0); long dimSize(1); for (long i = 0; i < first.size(); ++i) { firstElement += ((first[i] - 1)*dimSize); dimSize *=naxes(i); } ++firstElement; write(firstElement,nElements,data,nullValue); } template void PHDU::write(const std::vector& first, long nElements, const std::valarray& data) { makeThisCurrent(); size_t n(first.size()); long firstElement(0); long dimSize(1); for (long i = 0; i < first.size(); ++i) { firstElement += ((first[i] - 1)*dimSize); dimSize *=naxes(i); } ++firstElement; write(firstElement,nElements,data); } template void PHDU::write(const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& data) { makeThisCurrent(); try { PrimaryHDU& image = dynamic_cast&>(*this); image.writeImage(firstVertex,lastVertex,stride,data); } catch (std::bad_cast) { // write input type S to Image type... if (bitpix() == Ifloat) { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } else if (bitpix() == Idouble) { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } else if (bitpix() == Ibyte) { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } else if (bitpix() == Ilong) { if ( zero() == ULBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } } else if (bitpix() == Ishort) { if ( zero() == USBASE && scale() == 1) { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } else { PrimaryHDU& phdu = dynamic_cast&>(*this); size_t n(data.size()); std::valarray __tmp(n); for (size_t j= 0; j < n; ++j) __tmp[j] = data[j]; phdu.writeImage(firstVertex,lastVertex,stride,__tmp); } } else { FITSUtil::MatchType errType; throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType())); } } } } // namespace CCfits #endif CCfits/PrimaryHDU.h0000644000225700000360000001707511470265345013675 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef PRIMARYHDU_H #define PRIMARYHDU_H 1 // valarray #include // PHDU #include "PHDU.h" // HDUCreator #include "HDUCreator.h" // Image #include "Image.h" // FITS #include "FITS.h" #include "CCfits.h" #include #include #include namespace CCfits { template class PrimaryHDU : public PHDU //## Inherits: %394E6F870338 { public: virtual PrimaryHDU * clone (FITSBase* p) const; // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual void readData (bool readFlag = false, const std::vector& keys = std::vector()); const std::valarray& image () const; std::valarray& image (); void setImage (const std::valarray& inData); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual const std::valarray& readImage (long first, long nElements, T* nullValue); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual const std::valarray& readImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, T* nullValue); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual void writeImage (long first, long nElements, const std::valarray& inData, T* nullValue = 0); // Read data reads the image if readFlag is true and // optional keywords if supplied. Thus, with no arguments, // readData() does nothing. virtual void writeImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& inData); // Additional Public Declarations protected: // Constructor for new FITS objects, takes as arguments // the required keywords for a primary HDU. PrimaryHDU (FITSBase* p, const int bitpix, const int naxis, const std::vector& naxes, const std::valarray& data = std::valarray()); // Custom constructor. Allows specification of data to be read and whether to read data at // construction or wait until the image data are requested. The default is 'lazy initialization:' // wait until asked. PrimaryHDU (FITSBase* p, bool readFlag = false, const std::vector& keys = std::vector()); // Additional Protected Declarations private: PrimaryHDU(const PrimaryHDU< T > &right); PrimaryHDU< T > & operator=(const PrimaryHDU< T > &right); virtual std::ostream & put (std::ostream &s) const; const Image& data () const; // Additional Private Declarations private: //## implementation // Data Members for Associations Image m_data; // Additional Implementation Declarations friend class HDUCreator; friend class PHDU; }; // Parameterized Class CCfits::PrimaryHDU template inline std::ostream & PrimaryHDU::put (std::ostream &s) const { s << "PrimaryHDU:: Simple? " << simple() << " Extend?: " << extend() << " Bitpix: " << bitpix() << " naxis = " << axes() << "\n"; s << "Axis Lengths: \n"; for (int i=0; i < axes(); i++) s << " axis[" << i << "] " << axis(i) << "\n"; s << "\nNumber of keywords read: " << keyWord().size() << "\n"; for (std::map::const_iterator ki = keyWord().begin(); ki != keyWord().end(); ki++) { s << *((*ki).second) << std::endl; } s << " HISTORY: " << history() << '\n'; s << " COMMENTS: " < inline const Image& PrimaryHDU::data () const { return m_data; } // Parameterized Class CCfits::PrimaryHDU template PrimaryHDU::PrimaryHDU(const PrimaryHDU &right) : PHDU(right), m_data(right.m_data) { } template PrimaryHDU::PrimaryHDU (FITSBase* p, const int bitpix, const int naxis, const std::vector& naxes, const std::valarray& data) : PHDU(p,bitpix,naxis,naxes),m_data(data) { } template PrimaryHDU::PrimaryHDU (FITSBase* p, bool readFlag, const std::vector& keys) : PHDU(p), m_data() { initRead(); if (readFlag || keys.size()) readData(readFlag,keys); } template PrimaryHDU * PrimaryHDU::clone (FITSBase* p) const { PrimaryHDU* cloned = new PrimaryHDU(*this); cloned->parent() = p; return cloned; } template void PrimaryHDU::readData (bool readFlag, const std::vector& keys) { // Default reading mode. Read everything if readFlag is true. makeThisCurrent(); if ( keys.size() > 0) { std::list keyList(keys.size()); // keys is converted to a list so that any keys not in the header // can be easily erased. internally an exception will be thrown, // on a missing key, and its catch clause will print a message. std::copy(keys.begin(),keys.end(),keyList.begin()); readKeywords(keyList); } // read the entire image, setting null values to the // return value from FitsNullValue. It would be easy to make the null value // a user defined input, but that's not implemented yet. if ( readFlag && (naxis() > 0) ) { FITSUtil::FitsNullValue null; long init(1); T nulValue(null()); long nelements(std::accumulate(naxes().begin(),naxes().end(),init,std::multiplies() )); readImage(1,nelements,&nulValue); } } template const std::valarray& PrimaryHDU::image () const { return m_data.image(); } template std::valarray& PrimaryHDU::image () { return m_data.image(); } template void PrimaryHDU::setImage (const std::valarray& inData) { m_data.image().resize(inData.size()); m_data.setImage(inData); } template const std::valarray& PrimaryHDU::readImage (long first, long nElements, T* nullValue) { makeThisCurrent(); return m_data.readImage(fitsPointer(),first,nElements,nullValue,naxes(),anynul()); } template const std::valarray& PrimaryHDU::readImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, T* nullValue) { makeThisCurrent(); return m_data.readImage(fitsPointer(),firstVertex,lastVertex,stride,nullValue,naxes(),anynul()); } template void PrimaryHDU::writeImage (long first, long nElements, const std::valarray& inData, T* nullValue) { m_data.writeImage(fitsPointer(),first,nElements,inData,naxes(),nullValue); } template void PrimaryHDU::writeImage (const std::vector& firstVertex, const std::vector& lastVertex, const std::vector& stride, const std::valarray& inData) { m_data.writeImage(fitsPointer(),firstVertex,lastVertex,stride,inData,naxes()); } // Additional Declarations } // namespace CCfits #endif CCfits/Table.h0000644000225700000360000002727111470265345012737 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifndef TABLE_H #define TABLE_H 1 // ExtHDU #include "ExtHDU.h" // FitsError #include "FitsError.h" namespace CCfits { class Column; } // namespace CCfits #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include #else #include #endif namespace CCfits { /*! \class Table Table is the abstract common interface to Binary and Ascii Table HDUs. Table is a subclass of ExtHDU that contains an associative array of Column objects. It implements methods for reading and writing columns */ /*! \class Table::NoSuchColumn @ingroup FITSexcept @brief Exception to be thrown on a failure to retrieve a column specified either by name or index number. When a Table object is created, the header is read and a column object created for each column defined. Thus id this exception is thrown the column requested does not exist in the HDU (note that the column can easily exist and not contain any data since the user controls whether the column will be read when the FITS object is instantiated). It is expected that the index number calls will be primarily internal. The underlying implementation makes lookup by name more efficient. The exception has two variants, which take either an integer or a string as parameter. These are used according to the accessor that threw them, either by name or index. */ /*! \fn Table::NoSuchColumn::NoSuchColumn (const String& name, bool silent = true); \brief Exception ctor for exception thrown if the requested column (specified by name) is not present Message: Fits Error: cannot find Column named: name is printed. \param name the requested column name \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \fn Table::NoSuchColumn::NoSuchColumn (int index, bool silent = true); \brief Exception ctor for exception thrown if the requested column (specified by name) is not present Message: Fits Error: column not present - Column number index is printed. \param index the requested column number \param silent if true, print message whether FITS::verboseMode is set or not. */ /*! \fn void Table::init (bool readFlag = false, const std::vector& keys = std::vector()); "Late Constructor." wrap-up of calls needed to construct a table. Reads header information and sets up the array of column objects in the table. Protected function, provided to allow the implementation of extensions of the library. */ /*! \fn virtual Table::~Table(); \brief destructor */ /*! \fn virtual Table::Table(const Table& right); \brief copy constructor */ /*! \fn Column& Table::column (const string& colName, bool caseSensitive = true) const; \brief return a reference to the column of name colName. If the caseSensitive parameter is set to false, the search will be case-insensitive. \exceptions Table::NoSuchColumn passes colName to the diagnostic message printed when the exception is thrown */ /*! \fn Column& Table::column (int colIndex) const; \brief return a reference to the column identified by colIndex Throws NoSuchColumn if the index is out of range -index must satisfy (1 <= index <= numCols() ). N.B. the column number is assigned as 1-based, as in FORTRAN rather than 0-based as in C. \exception Table::NoSuchColumn passes colIndex to the diagnostic message printed when the exception is thrown */ /*! \fn void Table::deleteRows (long first, long number=1); \brief delete a range of rows in a table. In both this and the overloaded version which allows a selection of rows to be deleted, the cfitsio library is called first to perform the operation on the disk file, and then the FITS object is updated. \param first the start row of the range \param number the number of rows to delete; defaults to 1. \exception FitsError thrown if the cfitsio call fails to return without error. */ /*! \fn void Table::deleteRows (const std::vector& rowlist); \brief delete a set of rows in the table specified by an input array. \param rowlist The vector of row numbers to be deleted. \exception FitsError thrown if the underlying cfitsio call fails to return without error. */ /*! \fn void Table::insertRows (long first, long number); \brief insert empty rows into the table \param first the start row of the range \param number the number of rows to insert. \exception FitsError thrown if the underlying cfitsio call fails to return without error. */ /*! \fn long Table::rows () const; \brief return the number of rows in the table (NAXIS2). */ /*! \fn void Table::updateRows (); \brief update the number of rows in the table Called to force the Table to reset its internal "rows" attribute. public, but is called when needed internally. */ /*! \fn Table::Table (FITSBase* p, HduType xtype, const String &hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit = std::vector(), int version = 1); \brief Constructor to be used for creating new HDUs. \param p The FITS file in which to place the new HDU \param xtype An HduType enumerator defined in CCfits.h for type of table (AsciiTbl or BinaryTbl) \param hduName The name of this HDU extension \param rows The number of rows in the new HDU (the value of the NAXIS2 keyword). \param columnName a vector of names for the columns. \param columnFmt the format strings for the columns \param columnUnit the units for the columns. \param version a version number */ /*! \fn Table::Table (FITSBase* p, HduType xtype, const String &hduName = String(""), int version = 1); \brief Constructor to be called by operations that read Table specified by hduName and version. */ /*! \fn Table::Table (FITSBase* p, HduType xtype, int number); \brief Table constructor for getting Tables by number. Necessary since EXTNAME is a reserved not required keyword, and users may thus read FITS files without an extension name. Since an HDU is completely specified by extension number, this is part of the public interface. */ /*! \fn const map& Table::column () const; \brief return a reference to the array containing the columns. This public version might be used to query the size of the column container in a routine that manipulates column table data. */ /*! \fn map& Table::column (); \brief return a reference to the array containing the columns. To be used in the implementation of subclasses. */ /*! \fn void Table::rows (long value); \brief set the number of rows in the Table. */ /*! \fn int Table::numCols () const; \brief return the number of Columns in the Table (the TFIELDS keyword). */ /*! \fn void Table::numCols (int value); \brief set the number of Columns in the Table */ /*! \fn void Table::setColumn (const String& colname, Column *value); \brief set the column with name colname to the input value. */ class Table : public ExtHDU //## Inherits: %3804A126EB10 { public: class NoSuchColumn : public FitsException //## Inherits: %397CB0970174 { public: NoSuchColumn (const String& name, bool silent = true); NoSuchColumn (int index, bool silent = true); protected: private: private: //## implementation }; class InvalidColumnSpecification : public FitsException //## Inherits: %3B1E52D703B0 { public: InvalidColumnSpecification (const String& msg, bool silent = true); protected: private: private: //## implementation }; Table(const Table &right); virtual ~Table(); // ! return reference to a column given by column name. virtual Column& column (const String& colName, bool caseSensitive = true) const; virtual Column& column (int colIndex // ! return reference to a column given by a column index number ) const; virtual long rows () const; void updateRows (); void rows (long numRows); virtual void deleteColumn (const String& columnName); // Insert one or more blank rows into a FITS column. void insertRows (long first, long number = 1); void deleteRows (long first, long number = 1); void deleteRows (const std::vector& rowList); virtual long getRowsize () const; virtual int numCols () const; virtual const std::map& column () const; virtual std::map& column (); public: // Additional Public Declarations protected: Table (FITSBase* p, HduType xtype, const String &hduName, int rows, // ! Number of rows in table at creation, to be used to initialize NAXIS2 const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit = std::vector(), int version = 1); // To be called by reading operations. Table (FITSBase* p, HduType xtype, const String &hduName = String(""), int version = 1); // ExtHDU constructor for getting ExtHDUs by number. // Necessary since EXTNAME is a reserved not required // keyword. Table (FITSBase* p, HduType xtype, int number); virtual std::ostream & put (std::ostream &s) const; void column (int columnNum, Column *value); void init (bool readFlag = false, const std::vector& keys = std::vector()); virtual void setColumn (const String& colname, Column* value); void reindex (); void numCols (int value); // Additional Protected Declarations private: virtual void initRead (); virtual void readTableHeader (int ncols, std::vector& colName, std::vector& colFmt, std::vector& colUnit) = 0; // deep erasure , to be called by assignment and dtors. void clearData (); void copyData (const Table& right); // Additional Private Declarations private: //## implementation // Data Members for Class Attributes int m_numCols; // Data Members for Associations std::map m_column; // Additional Implementation Declarations friend class Column; }; // Class CCfits::Table::NoSuchColumn // Class CCfits::Table::InvalidColumnSpecification // Class CCfits::Table inline long Table::rows () const { return axis(1); } inline void Table::rows (long numRows) { naxes(1) = numRows; } inline int Table::numCols () const { return m_numCols; } inline const std::map& Table::column () const { return m_column; } inline void Table::numCols (int value) { m_numCols = value; } inline std::map& Table::column () { return m_column; } } // namespace CCfits #endif CCfits/CCfits.pc.in0000644000225700000360000000040111667163726013635 0ustar cagordonlheaprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: CCfits Description: Object Oriented C++ Interface to CFITSIO Library Requires.private: cfitsio >= 3.08 Version: 2.4 Libs: -L${libdir} -lCCfits Cflags: -I${includedir} CCfits/Doxyfile.in0000644000225700000360000022114611657005066013646 0ustar cagordonlhea# Doxyfile 1.7.5.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or sequence of words) that should # identify the project. Note that if you do not use Doxywizard you need # to put quotes around the project name if it contains spaces. PROJECT_NAME = CCfits # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 2.4 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer # a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and # unions are shown inside the group in which they are included (e.g. using # @ingroup) instead of on a separate page (for HTML and Man pages) or # section (for LaTeX and RTF). INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and # unions with only public data fields will be shown inline in the documentation # of the scope in which they are defined (i.e. file, namespace, or group # documentation), provided this scope is documented. If set to NO (the default), # structs, classes, and unions are shown on a separate page (for HTML and Man # pages) or section (for LaTeX and RTF). INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = YES # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = YES # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = YES # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = YES # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = YES # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to # do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even # if there is only one candidate or it is obvious which candidate to choose # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files # containing the references data. This must be a list of .bib files. The # .bib extension is automatically appended if omitted. Using this command # requires the bibtex tool to be installed. See also # http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style # of the bibliography can be controlled using LATEX_BIB_STYLE. CITE_BIB_FILES = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = . \ ./doc # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = *.h \ *.cxx \ *.txt # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # Note that relative paths are relative to directory from which doxygen is run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = NO # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. Note that when using a custom header you are responsible # for the proper inclusion of any scripts and style sheets that doxygen # needs, which is dependent on the configuration options used. # It is adviced to generate a default header using "doxygen -w html # header.html footer.html stylesheet.css YourConfigFile" and then modify # that header. Note that the header is subject to change so you typically # have to redo this when upgrading to a newer version of doxygen or when # changing the value of configuration settings such as GENERATE_TREEVIEW! HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that # the files will be copied as-is; there are no commands or markers available. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values # (range [0,1..20]) that doxygen will group on one line in the generated HTML # documentation. Note that a value of 0 will completely suppress the enum # values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the # mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension # names that should be enabled during MathJax rendering. MATHJAX_EXTENSIONS = # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = YES # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = letter # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for # the generated latex document. The footer should contain everything after # the last chapter. If it is left blank doxygen will generate a # standard footer. Notice: only use this tag if you know what you are doing! LATEX_FOOTER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = YES # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See # http://en.wikipedia.org/wiki/BibTeX for more info. LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # pointed to by INCLUDE_PATH will be searched when a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that # overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will use the Helvetica font for all dot files that # doxygen generates. When you want a differently looking font you can specify # the font name using DOT_FONTNAME. You need to make sure dot is able to find # the font, which can be done by putting it in a standard location or by setting # the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the # directory containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the Helvetica font. # If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to # set the path where dot can find it. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are svg, png, jpg, or gif. # If left blank png will be used. If you choose svg you need to set # HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible in IE 9+ (other browsers do not have this requirement). DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. # Note that this requires a modern browser other than Internet Explorer. # Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you # need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible. Older versions of IE do not have SVG support. INTERACTIVE_SVG = NO # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES CCfits/Makefile.am0000644000225700000360000000521311242313424013550 0ustar cagordonlhea## Process this file with automake to produce Makefile.in # # $Id: Makefile.am,v 3.9 2009/08/17 17:44:52 gordon Exp $ # # Author: Paul_Kunz@slac.stanford.edu # # The following set, else would follow GNU conventions. Add # "no-dependencies" if your compiler doesn't support dependency # generation like gcc does AUTOMAKE_OPTIONS = foreign # no-dependencies # Trick to add options to aclocal command ACLOCAL = aclocal -I config/m4 SUBDIRS = vs.net ## Subsitution of ac_check_package R_LIB_PATH = @RDFLAGS@ ## Subsitution from pfkeb_cxx_lib_path CXX_LIB_PATH = @CXX_LIB_PATH@ MSVC_FILES = MSconfig.h EXTRA_DIST = config CHANGES README.INSTALL License.txt file1.pha $(MSVC_FILES) bin_PROGRAMS = cookbook cookbook_SOURCES = cookbook.cxx cookbook_LDADD = libCCfits.la cookbook_LDFLAGS = -R $(R_LIB_PATH) -R $(CXX_LIB_PATH) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = CCfits.pc ## The following is needed for compiling cookbook.cxx INCLUDES = -I$(top_srcdir)/.. ## The library to be built lib_LTLIBRARIES = libCCfits.la libCCfits_la_SOURCES = \ AsciiTable.cxx \ BinTable.cxx \ Column.cxx \ ColumnCreator.cxx \ ColumnData.cxx \ ColumnVectorData.cxx \ ExtHDU.cxx \ FITS.cxx \ FITSBase.cxx \ FITSUtil.cxx \ FitsError.cxx \ HDU.cxx \ HDUCreator.cxx \ KeyData.cxx \ Keyword.cxx \ KeywordCreator.cxx \ PHDU.cxx \ Table.cxx # This will tell shared library which STD C++ library to use without # needing the user to use LD_LIBRARY_PATH environment variable libCCfits_la_LIBADD = $(LIBSTDCPP) libCCfits_la_LDFLAGS = -R $(R_LIB_PATH) -R $(CXX_LIB_PATH) libCCfits_ladir = $(pkgincludedir) libCCfits_la_HEADERS = \ AsciiTable.h \ BinTable.h \ CCfits \ CCfits.h \ Column.h \ ColumnT.h \ ColumnCreator.h \ ColumnData.h \ ColumnVectorData.h \ ExtHDU.h \ ExtHDUT.h \ FITS.h \ FITSBase.h \ FITSUtil.h \ FITSUtilT.h \ FitsError.h \ HDU.h \ HDUCreator.h \ Image.h \ ImageExt.h \ KeyData.h \ Keyword.h \ KeywordT.h \ KeywordCreator.h \ NewColumn.h \ NewKeyword.h \ PHDU.h \ PHDUT.h \ PrimaryHDU.h \ Table.h run_cookbook: rm -rf *.fit cookbook.C ## The following is for Mac OS X. ## It has not yet been tested. ## This workaround was contributed by Chris Jones ## bundle: c++ -bundle -I. -DHAVE_STRSTREAM -o libCCfits.a *.cxx ## commented out in configure.in INCLUDES = -I@STLPORT@ docs: doxygen Doxyfile clean-local: -rm -rf SunWS_cache CCfits/Makefile.in0000644000225700000360000007515711667502505013612 0ustar cagordonlhea# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ 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@ target_triplet = @target@ bin_PROGRAMS = cookbook$(EXEEXT) DIST_COMMON = $(am__configure_deps) $(libCCfits_la_HEADERS) \ $(srcdir)/CCfits.pc.in $(srcdir)/Doxyfile.in \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(top_srcdir)/configure \ config/config.guess config/config.sub config/depcomp \ config/install-sh config/ltmain.sh config/missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/m4/ac_check_package.m4 \ $(top_srcdir)/config/m4/ac_compile_ansi.m4 \ $(top_srcdir)/config/m4/ac_compile_warnings.m4 \ $(top_srcdir)/config/m4/ac_cxx_have_valarray.m4 \ $(top_srcdir)/config/m4/ac_cxx_namespaces.m4 \ $(top_srcdir)/config/m4/pfk_cxx_lib_path.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = Doxyfile CCfits.pc 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libCCfits_ladir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libCCfits_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libCCfits_la_OBJECTS = AsciiTable.lo BinTable.lo Column.lo \ ColumnCreator.lo ColumnData.lo ColumnVectorData.lo ExtHDU.lo \ FITS.lo FITSBase.lo FITSUtil.lo FitsError.lo HDU.lo \ HDUCreator.lo KeyData.lo Keyword.lo KeywordCreator.lo PHDU.lo \ Table.lo libCCfits_la_OBJECTS = $(am_libCCfits_la_OBJECTS) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_cookbook_OBJECTS = cookbook.$(OBJEXT) cookbook_OBJECTS = $(am_cookbook_OBJECTS) cookbook_DEPENDENCIES = libCCfits.la DEFAULT_INCLUDES = -I. -I$(srcdir) -I. depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libCCfits_la_SOURCES) $(cookbook_SOURCES) DIST_SOURCES = $(libCCfits_la_SOURCES) $(cookbook_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive pkgconfigDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfig_DATA) libCCfits_laHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(libCCfits_la_HEADERS) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print # Trick to add options to aclocal command ACLOCAL = aclocal -I config/m4 AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXX_LIB_PATH = @CXX_LIB_PATH@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GMAKE = @GMAKE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSTDCPP = @LIBSTDCPP@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RDFLAGS = @RDFLAGS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STLPORT = @STLPORT@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pfk_cxx_lib_path = @pfk_cxx_lib_path@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # # $Id: Makefile.am,v 3.9 2009/08/17 17:44:52 gordon Exp $ # # Author: Paul_Kunz@slac.stanford.edu # # The following set, else would follow GNU conventions. Add # "no-dependencies" if your compiler doesn't support dependency # generation like gcc does AUTOMAKE_OPTIONS = foreign # no-dependencies SUBDIRS = vs.net R_LIB_PATH = @RDFLAGS@ MSVC_FILES = MSconfig.h EXTRA_DIST = config CHANGES README.INSTALL License.txt file1.pha $(MSVC_FILES) cookbook_SOURCES = cookbook.cxx cookbook_LDADD = libCCfits.la cookbook_LDFLAGS = -R $(R_LIB_PATH) -R $(CXX_LIB_PATH) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = CCfits.pc INCLUDES = -I$(top_srcdir)/.. lib_LTLIBRARIES = libCCfits.la libCCfits_la_SOURCES = \ AsciiTable.cxx \ BinTable.cxx \ Column.cxx \ ColumnCreator.cxx \ ColumnData.cxx \ ColumnVectorData.cxx \ ExtHDU.cxx \ FITS.cxx \ FITSBase.cxx \ FITSUtil.cxx \ FitsError.cxx \ HDU.cxx \ HDUCreator.cxx \ KeyData.cxx \ Keyword.cxx \ KeywordCreator.cxx \ PHDU.cxx \ Table.cxx # This will tell shared library which STD C++ library to use without # needing the user to use LD_LIBRARY_PATH environment variable libCCfits_la_LIBADD = $(LIBSTDCPP) libCCfits_la_LDFLAGS = -R $(R_LIB_PATH) -R $(CXX_LIB_PATH) libCCfits_ladir = $(pkgincludedir) libCCfits_la_HEADERS = \ AsciiTable.h \ BinTable.h \ CCfits \ CCfits.h \ Column.h \ ColumnT.h \ ColumnCreator.h \ ColumnData.h \ ColumnVectorData.h \ ExtHDU.h \ ExtHDUT.h \ FITS.h \ FITSBase.h \ FITSUtil.h \ FITSUtilT.h \ FitsError.h \ HDU.h \ HDUCreator.h \ Image.h \ ImageExt.h \ KeyData.h \ Keyword.h \ KeywordT.h \ KeywordCreator.h \ NewColumn.h \ NewKeyword.h \ PHDU.h \ PHDUT.h \ PrimaryHDU.h \ Table.h all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ CCfits.pc: $(top_builddir)/config.status $(srcdir)/CCfits.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_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 libCCfits.la: $(libCCfits_la_OBJECTS) $(libCCfits_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libCCfits_la_LDFLAGS) $(libCCfits_la_OBJECTS) $(libCCfits_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done cookbook$(EXEEXT): $(cookbook_OBJECTS) $(cookbook_DEPENDENCIES) @rm -f cookbook$(EXEEXT) $(CXXLINK) $(cookbook_LDFLAGS) $(cookbook_OBJECTS) $(cookbook_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AsciiTable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BinTable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Column.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ColumnCreator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ColumnData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ColumnVectorData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ExtHDU.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FITS.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FITSBase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FITSUtil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FitsError.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HDU.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HDUCreator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KeyData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Keyword.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KeywordCreator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PHDU.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Table.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cookbook.Po@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ done install-libCCfits_laHEADERS: $(libCCfits_la_HEADERS) @$(NORMAL_INSTALL) test -z "$(libCCfits_ladir)" || $(mkdir_p) "$(DESTDIR)$(libCCfits_ladir)" @list='$(libCCfits_la_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(libCCfits_laHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libCCfits_ladir)/$$f'"; \ $(libCCfits_laHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libCCfits_ladir)/$$f"; \ done uninstall-libCCfits_laHEADERS: @$(NORMAL_UNINSTALL) @list='$(libCCfits_la_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(libCCfits_ladir)/$$f'"; \ rm -f "$(DESTDIR)$(libCCfits_ladir)/$$f"; \ done # 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): @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; \ (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" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @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; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (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; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ 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 || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(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; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(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; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/config/m4 @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$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; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -755 -exec chmod a+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) \ config.h install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libCCfits_ladir)"; 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-libCCfits_laHEADERS install-pkgconfigDATA install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -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-binPROGRAMS uninstall-info-am \ uninstall-libCCfits_laHEADERS uninstall-libLTLIBRARIES \ uninstall-pkgconfigDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-binPROGRAMS clean-generic \ clean-libLTLIBRARIES clean-libtool clean-local clean-recursive \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-compile distclean-generic distclean-hdr \ distclean-libtool distclean-recursive distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-libCCfits_laHEADERS \ install-libLTLIBRARIES install-man install-pkgconfigDATA \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-info-am \ uninstall-libCCfits_laHEADERS uninstall-libLTLIBRARIES \ uninstall-pkgconfigDATA run_cookbook: rm -rf *.fit cookbook.C bundle: c++ -bundle -I. -DHAVE_STRSTREAM -o libCCfits.a *.cxx docs: doxygen Doxyfile clean-local: -rm -rf SunWS_cache # 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: CCfits/config.h.in0000644000225700000360000000415411667507534013564 0ustar cagordonlhea/* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `cfitsio' library (-lcfitsio). */ #undef HAVE_LIBCFITSIO /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* define if the compiler implements namespaces */ #undef HAVE_NAMESPACES /* Define if you have the package */ #undef HAVE_PKG_cfitsio /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* define if the compiler has valarray */ #undef HAVE_VALARRAY /* Define if IteratorBase does not work with some STL functions. */ #undef ITERATORBASE_DEFECT /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define partical template specializtion can not be declared. */ #undef SPEC_TEMPLATE_DECL_DEFECT /* Define to 1 if you have the header file instead of */ #undef SSTREAM_DEFECT /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define if compile can not resolve ambiguity in overloaded template functions. */ #undef TEMPLATE_AMBIG7_DEFECT /* Version number of package */ #undef VERSION CCfits/configure0000755000225700000360000253056011667502505013450 0ustar cagordonlhea#! /bin/sh # From configure.in Revision: 3.23 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59. # # Copyright (C) 2003 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 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+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; 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 # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. 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 ;; 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 { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); 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 sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # 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'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="FITS.cxx" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL pfk_cxx_lib_path CXX_LIB_PATH GMAKE LIBSTDCPP RDFLAGS STLPORT LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= 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 ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -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 | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$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 ;; -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 ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) 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 ;; -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac 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 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 # 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 its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | 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 if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS # # 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 this package 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 \`..'] _ACEOF cat <<_ACEOF 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] --datadir=DIR read-only architecture-independent data [PREFIX/share] --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] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _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] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-msvc-code compile alternate code dealing with MS VC++ workarounds Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-cfitsio=DIR root directory of cfitsio installation --with-cfitsio-include=DIR specify exact include dir for cfitsio headers --with-cfitsio-libdir=DIR specify exact library dir for cfitsio library --without-cfitsio disables cfitsio usage completely Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style 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 elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright (C) 2003 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 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { 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` hostinfo = `(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=. echo "PATH: $as_dir" done } >&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_sep= 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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >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 # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 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 `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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 ac_config_headers="$ac_config_headers config.h" ac_aux_dir= for ac_dir in config $srcdir/config; 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 { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config $srcdir/config" >&5 echo "$as_me: error: cannot find install-sh or install.sh in config $srcdir/config" >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6 if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_target_alias=$target_alias test "x$ac_cv_target_alias" = "x" && ac_cv_target_alias=$ac_cv_host_alias ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6 target=$ac_cv_target target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version="1.9" # 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. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done 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. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # 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". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}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 $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } 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=CCfits VERSION=2.4 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"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out 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. echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5 echo $ECHO_N "checking for C++ compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C++ compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C++ compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5 echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-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='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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'. 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_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi 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 case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi CC=$CXX case "$target" in *-*-solaris*) LD=$CXX LIBS="-lm -lsocket -lgen -lnsl";; *) ;; esac # Check whether --enable-static or --disable-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=no fi; # Check whether --enable-shared or --disable-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-fast-install or --disable-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; 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$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" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done 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 echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 -std1 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 -std1. */ int osf4_cc_array ['\x00' == 0 ? 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 # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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'. 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 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 case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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 echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # 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 fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep # Check whether --with-gnu-ld or --without-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. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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 echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$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 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 echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 aix4* | aix5*) 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'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | 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 ;; 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]) 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 ;; interix3*) # 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 Linux ELF. linux*) 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=unknown ;; 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 ;; solaris*) 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 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 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 whether --enable-libtool-lock or --disable-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:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 4181 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in 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-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) 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" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f 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 echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$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 ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" 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 echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #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)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF 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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:5316:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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*) # 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; ;; 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 ;; 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 ;; *) # 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. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done 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` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \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\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 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 # 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 # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, 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. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$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=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_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 -f 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 echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir 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 # 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 to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" 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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' 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 \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 <&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 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 echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 <&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 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 echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-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 # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= 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;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # 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 warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$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 printf "$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 conftest* lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$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:6379: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:6383: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$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= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 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*) # 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' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # 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' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # 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 ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # 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='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; 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 ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # 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' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # 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' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) 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 echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$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:6647: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:6651: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_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 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 # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$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:6751: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:6755: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 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 echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # 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_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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 if test "$with_gnu_ld" = 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>/dev/null` in *\ [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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) 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 # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; 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*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' 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/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' 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 ;; interix3*) 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' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= 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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $echo \"$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' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; 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 -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi 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 $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' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 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 ;; 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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$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 $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 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 ;; aix4* | aix5*) 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 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")) && (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].*|aix5*) 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_libdir_separator=':' link_all_deplibs=yes 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 hardcode_direct=yes 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 # 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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 echo "${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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' 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*) 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 # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # 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. 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 `echo "$deplibs" | $SED -e '\''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' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=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* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -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 -fPIC ${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 -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${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 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 -a "$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 ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${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' ;; *) archive_cmds='$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 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=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 $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: 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 ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no 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 ;; 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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi 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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -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; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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 hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${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 ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else 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' 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 linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; 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*) 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='`test -z "$SCOABSPATH" && echo ${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,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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 fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # 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. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 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:$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=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 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" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # 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. 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 else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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 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' ;; aix4* | aix5*) version_type=linux 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*) 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=`$echo "X$lib" | $Xsed -e '\''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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux 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='GNU ld.so' ;; 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[123]*) 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 ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux 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 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' ;; interix3*) version_type=linux 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 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 Linux ELF. linux*) version_type=linux 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 # 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 # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 8220 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # 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/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $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' ;; knetbsd*-gnu) version_type=linux 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='GNU 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 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=linux 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 ;; 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" ;; solaris*) version_type=linux 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 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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 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' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant 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_AC_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 echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; 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 striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&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" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}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" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac 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*) 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 echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; 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 ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* 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_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* 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_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" 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" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 < #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 #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$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\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 < #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 #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$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 # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&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 ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # 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 # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 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 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. # 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//" # 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 # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # 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 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` gcc_ver=\`gcc -dumpversion\` # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # 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 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # 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 and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # 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 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 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # 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 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_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 # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\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 EOF ;; esac # 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) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # 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 warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$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 printf "$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 conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC 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++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-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. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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 echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_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 archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${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 whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= 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. archive_cmds_CXX='$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 "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) 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].*|aix5*) 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. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes 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 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=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_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= 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 # 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_CXX=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_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${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_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${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_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$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 allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$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... archive_expsym_cmds_CXX='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 ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$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' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=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 ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$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) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${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 ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=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 ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$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; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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 ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${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_CXX='$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_CXX='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++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) 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. archive_cmds_CXX='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' archive_expsym_cmds_CXX='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; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # 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."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$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 archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$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' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$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 hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # 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=`echo $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; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=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::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) 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. archive_cmds_CXX='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' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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 "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; 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. archive_cmds_CXX='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' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='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' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # 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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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 "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$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' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # 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. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$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. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -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 \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$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 \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$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. # 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. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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 ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $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 else prev= fi if test "$pre_test_object_deps_done" = no; then case $p 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 "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${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 "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$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 "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # 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. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-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_CXX='-Bstatic' fi ;; amigaos*) # 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_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # 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_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # 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_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # 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*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--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 ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+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_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-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_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -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:11560: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:11564: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$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:11664: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:11668: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_CXX=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 .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 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 echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # 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 if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX 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. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 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" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # 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. 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 else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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 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' ;; aix4* | aix5*) version_type=linux 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*) 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=`$echo "X$lib" | $Xsed -e '\''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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux 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='GNU ld.so' ;; 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[123]*) 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 ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux 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 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' ;; interix3*) version_type=linux 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 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 Linux ELF. linux*) version_type=linux 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 # 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 # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 12200 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # 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/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $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' ;; knetbsd*-gnu) version_type=linux 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='GNU 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 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=linux 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 ;; 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" ;; solaris*) version_type=linux 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 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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 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' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != 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_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; 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 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # 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 # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` gcc_ver=\`gcc -dumpversion\` # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # 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_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld 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 else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # 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 warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$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 printf "$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 conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&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 ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-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_F77='-Bstatic' fi ;; amigaos*) # 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_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # 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_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # 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_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # 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_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # 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_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-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_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # 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:13258: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13262: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$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:13362: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13366: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_F77=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 .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 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 echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # 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_F77="_GLOBAL_OFFSET_TABLE_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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_F77=yes if test "$with_gnu_ld" = 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_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${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_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$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_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$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_F77='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_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${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_F77='$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_F77='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' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $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_F77=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$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_F77=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_F77=unsupported fi ;; aix4* | aix5*) 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 if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$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].*|aix5*) 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_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes 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 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=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_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= 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 # 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_F77=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_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${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_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$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. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${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_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$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*) archive_cmds_F77='$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_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # 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. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=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_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${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_F77='$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_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$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_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${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_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$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 hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$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_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$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' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=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_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$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_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 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. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 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" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # 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. 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 else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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 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' ;; aix4* | aix5*) version_type=linux 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*) 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=`$echo "X$lib" | $Xsed -e '\''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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux 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='GNU ld.so' ;; 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[123]*) 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 ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux 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 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' ;; interix3*) version_type=linux 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 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 Linux ELF. linux*) version_type=linux 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 # 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 # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 14811 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # 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/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $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' ;; knetbsd*-gnu) version_type=linux 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='GNU 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 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=linux 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 ;; 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" ;; solaris*) version_type=linux 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 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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 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' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != 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_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; 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 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # 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 # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` gcc_ver=\`gcc -dumpversion\` # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # 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_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # 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 warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$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 printf "$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 conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$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:15589: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15593: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-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_GCJ='-Bstatic' fi ;; amigaos*) # 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_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # 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_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # 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_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # 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_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # 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_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-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_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # 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:15857: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15861: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$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:15961: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15965: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_GCJ=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 .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 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 echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # 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_GCJ="_GLOBAL_OFFSET_TABLE_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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_GCJ=yes if test "$with_gnu_ld" = 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_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${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_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$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_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$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_GCJ='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_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${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_GCJ='$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_GCJ='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' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $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_GCJ=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$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_GCJ=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_GCJ=unsupported fi ;; aix4* | aix5*) 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 if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$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].*|aix5*) 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_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes 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 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=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_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= 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 # 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_GCJ=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_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${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_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${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_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$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*) archive_cmds_GCJ='$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_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # 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. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=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_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=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_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${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_GCJ='$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_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$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_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${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_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$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 hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$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_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$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' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=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_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$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_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ 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. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 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" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # 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. 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 else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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 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' ;; aix4* | aix5*) version_type=linux 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*) 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=`$echo "X$lib" | $Xsed -e '\''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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux 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='GNU ld.so' ;; 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[123]*) 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 ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux 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 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' ;; interix3*) version_type=linux 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 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 Linux ELF. linux*) version_type=linux 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 # 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 # find out which ABI we are using libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) echo '#line 17430 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *64-bit*) libsuff=64 sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" ;; esac fi rm -rf conftest* ;; esac # 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/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $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' ;; knetbsd*-gnu) version_type=linux 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='GNU 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 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=linux 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 ;; 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" ;; solaris*) version_type=linux 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 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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 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' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$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 echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != 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_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; 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 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # 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 # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` gcc_ver=\`gcc -dumpversion\` # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # 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_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # 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. # 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 warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$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 printf "$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 conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # 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 # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` gcc_ver=\`gcc -dumpversion\` # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # 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_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # Extract the first word of "$CXX", so it can be a program name with args. set dummy $CXX; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_pfk_cxx_lib_path+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $pfk_cxx_lib_path in [\\/]* | ?:[\\/]*) ac_cv_path_pfk_cxx_lib_path="$pfk_cxx_lib_path" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_pfk_cxx_lib_path="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_path_pfk_cxx_lib_path" && ac_cv_path_pfk_cxx_lib_path="$CXX " ;; esac fi pfk_cxx_lib_path=$ac_cv_path_pfk_cxx_lib_path if test -n "$pfk_cxx_lib_path"; then echo "$as_me:$LINENO: result: $pfk_cxx_lib_path" >&5 echo "${ECHO_T}$pfk_cxx_lib_path" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi echo "$as_me:$LINENO: checking standard C++ library path" >&5 echo $ECHO_N "checking standard C++ library path... $ECHO_C" >&6 CXX_LIB_PATH=`dirname $pfk_cxx_lib_path | sed -e "s/bin/lib/"` echo "$as_me:$LINENO: result: $CXX_LIB_PATH " >&5 echo "${ECHO_T}$CXX_LIB_PATH " >&6 echo "$as_me:$LINENO: checking maximum warning verbosity option" >&5 echo $ECHO_N "checking maximum warning verbosity option... $ECHO_C" >&6 if test -n "$CXX" then if test "$GXX" = "yes" then ac_compile_warnings_opt='-Wall' elif test "$CXX" = "CC" then ac_compile_warnings_opt='+w2' fi CXXFLAGS="$CXXFLAGS $ac_compile_warnings_opt" ac_compile_warnings_msg="$ac_compile_warnings_opt for C++" fi if test -n "$CC" then if test "$GCC" = "yes" then ac_compile_warnings_opt='-Wall' fi CFLAGS="$CFLAGS $ac_compile_warnings_opt" ac_compile_warnings_msg="$ac_compile_warnings_msg $ac_compile_warnings_opt for C" fi echo "$as_me:$LINENO: result: $ac_compile_warnings_msg" >&5 echo "${ECHO_T}$ac_compile_warnings_msg" >&6 unset ac_compile_warnings_msg unset ac_compile_warnings_opt echo "$as_me:$LINENO: checking ansi C/C++ option" >&5 echo $ECHO_N "checking ansi C/C++ option... $ECHO_C" >&6 if test -n "$CXX" then if test "$GXX" = "yes" then ac_compile_ansi_opt='-ansi' fi CXXFLAGS="$CXXFLAGS $ac_compile_ansi_opt" ac_compile_ansi_msg="$ac_compile_ansi_opt for C++" fi if test -n "$CC" then if test "$GCC" = "yes" then ac_compile_ansi_opt='-ansi' fi CFLAGS="$CFLAGS $ac_compile_ansi_opt" ac_compile_ansi_msg="$ac_compile_ansi_msg $ac_compile_ansi_opt for C" fi echo "$as_me:$LINENO: result: $ac_compile_ansi_msg" >&5 echo "${ECHO_T}$ac_compile_ansi_msg" >&6 unset ac_compile_ansi_msg unset ac_compile_ansi_opt # Extract the first word of "gmake", so it can be a program name with args. set dummy gmake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_GMAKE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$GMAKE"; then ac_cv_prog_GMAKE="$GMAKE" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GMAKE="gmake" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_GMAKE" && ac_cv_prog_GMAKE="make" fi fi GMAKE=$ac_cv_prog_GMAKE if test -n "$GMAKE"; then echo "$as_me:$LINENO: result: $GMAKE" >&5 echo "${ECHO_T}$GMAKE" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi echo "$as_me:$LINENO: checking for main in -lstdc++" >&5 echo $ECHO_N "checking for main in -lstdc++... $ECHO_C" >&6 if test "${ac_cv_lib_stdcpp_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lstdc++ $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_stdcpp_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_stdcpp_main=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_stdcpp_main" >&5 echo "${ECHO_T}$ac_cv_lib_stdcpp_main" >&6 if test $ac_cv_lib_stdcpp_main = yes; then LIBSTDCPP="lstdc++" else LIBSTDCPP= fi # Check whether --with-cfitsio or --without-cfitsio was given. if test "${with_cfitsio+set}" = set; then withval="$with_cfitsio" with_cfitsio=$withval if test "${with_cfitsio}" != yes; then cfitsio_include="$withval/include" cfitsio_libdir="$withval/lib" fi else cfitsio_include="/usr/local/cfitsio/include" cfitsio_libdir="/usr/local/cfitsio/lib" fi; # Check whether --with-cfitsio-include or --without-cfitsio-include was given. if test "${with_cfitsio_include+set}" = set; then withval="$with_cfitsio_include" cfitsio_include="$withval" fi; # Check whether --with-cfitsio-libdir or --without-cfitsio-libdir was given. if test "${with_cfitsio_libdir+set}" = set; then withval="$with_cfitsio_libdir" cfitsio_libdir="$withval" fi; if test "${with_cfitsio}" != no ; then OLD_LIBS=$LIBS OLD_LDFLAGS=$LDFLAGS OLD_CPPFLAGS=$CPPFLAGS if test "${cfitsio_libdir}" ; then LDFLAGS="$LDFLAGS -L${cfitsio_libdir}" RDFLAGS="${cfitsio_libdir}" fi if test "${cfitsio_include}" ; then CPPFLAGS="$CPPFLAGS -I${cfitsio_include}" fi echo "$as_me:$LINENO: checking for ffpss in -lcfitsio" >&5 echo $ECHO_N "checking for ffpss in -lcfitsio... $ECHO_C" >&6 if test "${ac_cv_lib_cfitsio_ffpss+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcfitsio $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char ffpss (); int main () { ffpss (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_cfitsio_ffpss=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_cfitsio_ffpss=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_cfitsio_ffpss" >&5 echo "${ECHO_T}$ac_cv_lib_cfitsio_ffpss" >&6 if test $ac_cv_lib_cfitsio_ffpss = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCFITSIO 1 _ACEOF LIBS="-lcfitsio $LIBS" else no_good=yes fi if test "${ac_cv_header_fitsio_h+set}" = set; then echo "$as_me:$LINENO: checking for fitsio.h" >&5 echo $ECHO_N "checking for fitsio.h... $ECHO_C" >&6 if test "${ac_cv_header_fitsio_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_fitsio_h" >&5 echo "${ECHO_T}$ac_cv_header_fitsio_h" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking fitsio.h usability" >&5 echo $ECHO_N "checking fitsio.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking fitsio.h presence" >&5 echo $ECHO_N "checking fitsio.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: fitsio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: fitsio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: fitsio.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: fitsio.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: fitsio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: fitsio.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: fitsio.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: fitsio.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: fitsio.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: fitsio.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: fitsio.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: fitsio.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: fitsio.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: fitsio.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: fitsio.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: fitsio.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for fitsio.h" >&5 echo $ECHO_N "checking for fitsio.h... $ECHO_C" >&6 if test "${ac_cv_header_fitsio_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_fitsio_h=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_fitsio_h" >&5 echo "${ECHO_T}$ac_cv_header_fitsio_h" >&6 fi if test $ac_cv_header_fitsio_h = yes; then : else no_good=yes fi if test "$no_good" = yes; then { { echo "$as_me:$LINENO: error: cfitsio NOT found" >&5 echo "$as_me: error: cfitsio NOT found" >&2;} { (exit 1); exit 1; }; } LIBS=$OLD_LIBS LDFLAGS=$OLD_LDFLAGS CPPFLAGS=$OLD_CPPFLAGS else echo "$as_me:$LINENO: result: cfitsio found." >&5 echo "${ECHO_T}cfitsio found." >&6 cat >>confdefs.h <<\_ACEOF #define HAVE_PKG_cfitsio 1 _ACEOF fi fi echo "$as_me:$LINENO: checking whether the compiler implements namespaces" >&5 echo $ECHO_N "checking whether the compiler implements namespaces... $ECHO_C" >&6 if test "${ac_cv_cxx_namespaces+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ namespace Outer { namespace Inner { int i = 0; }} int main () { using namespace Outer::Inner; return i; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_cxx_namespaces=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_cxx_namespaces=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_namespaces" >&5 echo "${ECHO_T}$ac_cv_cxx_namespaces" >&6 if test "$ac_cv_cxx_namespaces" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_NAMESPACES _ACEOF fi echo "$as_me:$LINENO: checking whether the compiler has valarray" >&5 echo $ECHO_N "checking whether the compiler has valarray... $ECHO_C" >&6 if test "${ac_cv_cxx_have_valarray+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #ifdef HAVE_NAMESPACES using namespace std; #endif int main () { valarray x(100); return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_cxx_have_valarray=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_cxx_have_valarray=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_have_valarray" >&5 echo "${ECHO_T}$ac_cv_cxx_have_valarray" >&6 if test "$ac_cv_cxx_have_valarray" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_VALARRAY _ACEOF fi if test "$ac_cv_cxx_have_valarray" != yes; then { { echo "$as_me:$LINENO: error: valarray is missing and required. Try upgrading to gcc 2.95.2 or higher. " >&5 echo "$as_me: error: valarray is missing and required. Try upgrading to gcc 2.95.2 or higher. " >&2;} { (exit 1); exit 1; }; } fi if test "${ac_cv_header_sstream+set}" = set; then echo "$as_me:$LINENO: checking for sstream" >&5 echo $ECHO_N "checking for sstream... $ECHO_C" >&6 if test "${ac_cv_header_sstream+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_sstream" >&5 echo "${ECHO_T}$ac_cv_header_sstream" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking sstream usability" >&5 echo $ECHO_N "checking sstream usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking sstream presence" >&5 echo $ECHO_N "checking sstream presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: sstream: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sstream: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: sstream: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: sstream: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: sstream: present but cannot be compiled" >&5 echo "$as_me: WARNING: sstream: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: sstream: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: sstream: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sstream: see the Autoconf documentation" >&5 echo "$as_me: WARNING: sstream: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: sstream: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: sstream: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sstream: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sstream: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: sstream: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: sstream: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for sstream" >&5 echo $ECHO_N "checking for sstream... $ECHO_C" >&6 if test "${ac_cv_header_sstream+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_sstream=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_sstream" >&5 echo "${ECHO_T}$ac_cv_header_sstream" >&6 fi if test $ac_cv_header_sstream = yes; then : else if test "${ac_cv_header_strstream+set}" = set; then echo "$as_me:$LINENO: checking for strstream" >&5 echo $ECHO_N "checking for strstream... $ECHO_C" >&6 if test "${ac_cv_header_strstream+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_strstream" >&5 echo "${ECHO_T}$ac_cv_header_strstream" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking strstream usability" >&5 echo $ECHO_N "checking strstream usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking strstream presence" >&5 echo $ECHO_N "checking strstream presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: strstream: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: strstream: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: strstream: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: strstream: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: strstream: present but cannot be compiled" >&5 echo "$as_me: WARNING: strstream: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: strstream: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: strstream: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: strstream: see the Autoconf documentation" >&5 echo "$as_me: WARNING: strstream: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: strstream: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: strstream: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: strstream: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: strstream: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: strstream: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: strstream: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for strstream" >&5 echo $ECHO_N "checking for strstream... $ECHO_C" >&6 if test "${ac_cv_header_strstream+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_strstream=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_strstream" >&5 echo "${ECHO_T}$ac_cv_header_strstream" >&6 fi if test $ac_cv_header_strstream = yes; then cat >>confdefs.h <<\_ACEOF #define SSTREAM_DEFECT 1 _ACEOF else { { echo "$as_me:$LINENO: error: You have neither the or header file" >&5 echo "$as_me: error: You have neither the or header file" >&2;} { (exit 1); exit 1; }; } fi fi # Check whether --enable-msvc-code or --disable-msvc-code was given. if test "${enable_msvc_code+set}" = set; then enableval="$enable_msvc_code" cat >>confdefs.h <<\_ACEOF #define ITERATORBASE_DEFECT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define SPEC_TEMPLATE_DECL_DEFECT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define TEMPLATE_AMBIG7_DEFECT 1 _ACEOF fi; ac_config_files="$ac_config_files Makefile Doxyfile CCfits.pc vs.net/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, don't put newlines in cache variables' values. # 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. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *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 \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" 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}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # 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+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; 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 # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. 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 ;; 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 { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); 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 sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # 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'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -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 --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_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; 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 if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "Doxyfile" ) CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; "CCfits.pc" ) CONFIG_FILES="$CONFIG_FILES CCfits.pc" ;; "vs.net/Makefile" ) CONFIG_FILES="$CONFIG_FILES vs.net/Makefile" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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 to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@target@,$target,;t t s,@target_cpu@,$target_cpu,;t t s,@target_vendor@,$target_vendor,;t t s,@target_os@,$target_os,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@SED@,$SED,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXXCPP@,$CXXCPP,;t t s,@F77@,$F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@pfk_cxx_lib_path@,$pfk_cxx_lib_path,;t t s,@CXX_LIB_PATH@,$CXX_LIB_PATH,;t t s,@GMAKE@,$GMAKE,;t t s,@LIBSTDCPP@,$LIBSTDCPP,;t t s,@RDFLAGS@,$RDFLAGS,;t t s,@STLPORT@,$STLPORT,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # 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. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #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. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # 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. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'`/stamp-h$_am_stamp_count done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; 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. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || 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=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi echo "$as_me:$LINENO: result: CCFits project now configured. " >&5 echo "${ECHO_T} CCFits project now configured. " >&6 CCfits/AsciiTable.cxx0000644000225700000360000002563311470265344014262 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif // ColumnCreator #include "ColumnCreator.h" // Column #include "Column.h" // AsciiTable #include "AsciiTable.h" #ifdef SSTREAM_DEFECT #include #else #include #endif namespace CCfits { // Class CCfits::AsciiTable AsciiTable::AsciiTable(const AsciiTable &right) : Table(right) { } AsciiTable::AsciiTable (FITSBase* p, const String &hduName, bool readFlag, const std::vector& keys, int version) : Table(p, AsciiTbl,hduName,version) { init(readFlag,keys); } AsciiTable::AsciiTable (FITSBase* p, const String &hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit, int version) : Table(p, AsciiTbl , hduName, rows, columnName, columnFmt, columnUnit, version) { long width=0; int decimals=0; int status=0; int colType=0; ColumnCreator create(this); for (int i=0; i< numCols(); i++) { status = fits_ascii_tform(const_cast(columnFmt[i].c_str()), &colType, &width, &decimals, &status); if (status != 0) throw FitsError(status); setColumn(columnName[i],create.createColumn(i+1,ValueType(colType), columnName[i], columnFmt[i], columnUnit[i],1,width)); column(columnName[i]).setLimits(ValueType(colType)); } } AsciiTable::AsciiTable (FITSBase* p, int number) : Table(p,AsciiTbl,number) { init(); } AsciiTable::~AsciiTable() { } void AsciiTable::readTableHeader (int ncols, std::vector& colName, std::vector& colFmt, std::vector& colUnit) { long rowlen=0; long *tbcol = new long[ncols]; int status=0; // hduName has already been set in ExtHDU so it is allocated and // read here only because cfitsio requires it. char hduName[FLEN_KEYWORD]; char** columnName = new char*[ncols]; char** columnFmt = new char*[ncols]; char** columnUnit = new char*[ncols]; int i = 0; // for MS VC++ for(; i < ncols; i++) { columnName[i] = new char[FLEN_KEYWORD]; columnFmt[i] = new char[FLEN_KEYWORD]; columnUnit[i] = new char[FLEN_KEYWORD]; } long nRows = 0; int fields = 0; status = fits_read_atblhdr(fitsPointer(), ncols, &rowlen, &nRows, &fields, columnName, tbcol, columnFmt, columnUnit, hduName, &status); rows(nRows); numCols(fields); for( i = 0; i < ncols; i++) { colName[i] = String(columnName[i]); colFmt[i] = String(columnFmt[i]); colUnit[i] = String(columnUnit[i]); delete [] columnName[i]; delete [] columnFmt[i]; delete [] columnUnit[i]; } delete [] columnName; delete [] columnFmt; delete [] columnUnit; if (status != 0) throw FitsError(status); delete [] tbcol; } AsciiTable * AsciiTable::clone (FITSBase* p) const { AsciiTable* cloned = new AsciiTable(*this); cloned->parent() = p; return cloned; } void AsciiTable::readData (bool readFlag, const std::vector& keys) { int rowsRead=0; int status = 0; long rowSize = 0; // grab the optimal rowsize using the get_rowsize call. It just // might have changed since the Table HDU was constructed so it should // be set just before reading takes place. if (fits_get_rowsize(fitsPointer(), &rowSize, &status)) throw FitsError(status); size_t keysRead = 0; size_t nkey=keys.size(); std::map::iterator endColumn = column().end(); // if a set of strings were supplied, interpret these as // keywords and columns to be read. // get a container for keys which correspond to columns. std::vector colKeys; colKeys.reserve(nkey); if (nkey > 0) { for (keysRead = 0; keysRead < nkey; keysRead++) { try { // after the read function is called by the ctor, // the columns in the table have been indexed. // check that the key in question is not a column // name. if (column().find(keys[keysRead]) == endColumn) readKeyword(keys[keysRead]); else colKeys.push_back(keys[keysRead]); } catch (HDU::NoSuchKeyword) { continue; } catch (...) { throw; } } } // if readFlag is false, don't get any data. if (!readFlag) return; // the data consist of scalars in each row. For an ASCII table, // rowSize is probably quite big because there's just one element per row. for (rowsRead=0; rowsRead< rows() ; rowsRead+=rowSize) { std::map::iterator col; if (colKeys.size() > 0) { for (size_t i=0; i < colKeys.size() ; i++) { // if a set of keys was entered, read the data in the ones // that correspond to columns, as checked earlier col = column().find(colKeys[i]); Column& current = *((*col).second); current.readData(rowsRead+1, current.repeat()*std::min(rowSize,rows()-rowsRead),1); } } else { // if no keys that correspond to column names were supplied, read all the data. for(col = column().begin(); col != column().end(); col++ ) { Column& current = *((*col).second); current.readData(rowsRead+1, current.repeat()*std::min(rowSize,rows() - rowsRead),1); } } } if (colKeys.size() == 0) { // mark all columns read for (std::map::iterator col = column().begin(); col != column().end(); ++col) { (*col).second->isRead(true); } } else { for (size_t i=0; i < colKeys.size() ; i++) { // if a set of keys was entered, read the data in the ones // that correspond to columns, as checked earlier std::map::iterator col = column().find(colKeys[i]); (*col).second->isRead(true); } } } void AsciiTable::addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit, long decimals, size_t columnNumber) { String diag(""); // repeatWidth has the following semantics: // for non-string represents the multiplicity of entries in the column cell, and // is therefore always 1 for numeric datatypes. // for strings it represents the string width. // In cfitsio, the information about datatypes is carried in the width field, // but here this is carried by the type value. if (type < 0 ) { diag += " writing vector-valued column to ASCII table: "; diag += name(); // name of ascii table extension throw InvalidColumnSpecification(diag); } if (Tstring && repeatWidth < 1) { diag += " length of string values unspecified for Column: "; diag += columnName; throw InvalidColumnSpecification(diag); } if ( ( type == Tfloat || type == Tdouble ) ) { if ( decimals < 0 || decimals > repeatWidth ) { diag += " invalid specification for floating point data format in Column " ; diag += columnName; throw InvalidColumnSpecification(diag); } } #ifdef SSTREAM_DEFECT std::ostrstream tformStr; #else std::ostringstream tformStr; #endif switch (type) { case Tstring: tformStr << 'A' << repeatWidth; break; case Tshort: case Tint: tformStr << 'I' << 6; break; case Tlong: tformStr << 'I' << 12; break; case Tfloat: if (repeatWidth <= 7) { tformStr << 'E' << repeatWidth << '.' << decimals; } else { tformStr << 'D' << repeatWidth << '.' << decimals; } break; case Tdouble: tformStr << 'D' << repeatWidth << '.' << decimals; break; default: diag += "Invalid data type for ASCII table "; diag += name(); throw WrongExtensionType(diag); } # ifdef SSTREAM_DEFECT tformStr << std::ends; # endif makeThisCurrent(); // the user is allowed to specify which column number to create although // this is frowned down upon because the user shouldn't care how the data // are written internally. int colNum(0); int status(0); if ( columnNumber == 0) { if (fits_get_num_cols(fitsPointer(),&colNum,&status)) throw FitsError(status); colNum +=1; } else colNum = columnNumber; //string ColumnName(FITSUtil::upperCase(columnName)); String tfString(tformStr.str()); char* tform = const_cast(tfString.c_str()); char* ttype = const_cast(columnName.c_str()); if (fits_insert_col(fitsPointer(),colNum,ttype,tform,&status)) throw FitsError(status); if (colUnit.size()) { std::ostringstream ustream; char unitComment[] = ""; ustream << "TUNIT" << colNum; if (fits_write_key (fitsPointer(), Tstring, const_cast(ustream.str().c_str()), const_cast(colUnit.c_str()), unitComment, &status)) { throw FitsError (status); } } ColumnCreator create(this); setColumn(columnName,create.createColumn(colNum,type,columnName,tfString, colUnit,1,repeatWidth)); if (type != Tstring) column(columnName).setLimits(type); if (columnNumber != 0) reindex(); } // Additional Declarations } // namespace CCfits CCfits/BinTable.cxx0000644000225700000360000003214611656032112013726 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // ColumnCreator #include "ColumnCreator.h" // Column #include "Column.h" // BinTable #include "BinTable.h" #ifdef SSTREAM_DEFECT #include #else #include #endif namespace CCfits { // Class CCfits::BinTable BinTable::BinTable(const BinTable &right) : Table(right) { } BinTable::BinTable (FITSBase* p, const String &hduName, bool readFlag, const std::vector& keys, int version) : Table(p, BinaryTbl, hduName, version) { init(readFlag,keys); } BinTable::BinTable (FITSBase* p, const String &hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit, int version) : Table(p, BinaryTbl, hduName, rows, columnName, columnFmt, columnUnit, version) { long repeat=0; long width=0; int status=0; int colType=0; ColumnCreator create(this); for (int i=0; i < numCols(); i++) { status = fits_binary_tform(const_cast(columnFmt[i].c_str()), &colType, &repeat, &width, &status); string unitString(""); if (i < columnUnit.size()) unitString = columnUnit[i]; setColumn(columnName[i],create.createColumn(i+1, ValueType(colType), columnName[i], columnFmt[i], unitString,repeat,width)); column(columnName[i]).setLimits(ValueType(colType)); } } BinTable::BinTable (FITSBase* p, int number) : Table(p,BinaryTbl,number) { init(); } BinTable::~BinTable() { } void BinTable::readTableHeader (int ncols, std::vector& colName, std::vector& colFmt, std::vector& colUnit) { int status=0; char hduName[FLEN_KEYWORD]; char** columnName = new char*[ncols]; char** columnFmt = new char*[ncols]; char** columnUnit = new char*[ncols]; int i = 0; // for MS VC++ for( ; i < ncols; i++) { columnName[i] = new char[FLEN_KEYWORD]; columnFmt[i] = new char[FLEN_KEYWORD]; columnUnit[i] = new char[FLEN_KEYWORD]; } long pct = 0; long nr = 0; int tf = 0; status = fits_read_btblhdr(fitsPointer(), ncols, &nr, &tf, columnName, columnFmt, columnUnit, hduName, &pct,&status); pcount(pct); rows(nr); numCols(tf); for( i = 0; i < ncols; i++) { colName[i] = String(columnName[i]); colFmt[i] = String(columnFmt[i]); colUnit[i] = String(columnUnit[i]); delete [] columnName[i]; delete [] columnFmt[i]; delete [] columnUnit[i]; } delete [] columnName; delete [] columnFmt; delete [] columnUnit; // throw the exception after the garbage has been collected. if (status != 0) throw FitsError(status); } BinTable * BinTable::clone (FITSBase* p) const { BinTable* cloned = new BinTable(*this); cloned->parent() = p; return cloned; } void BinTable::readData (bool readFlag, const std::vector& keys) { int rowsRead=0; std::vector varCols; int status = 0; long rowSize = 0; // grab the optimal rowsize using the get_rowsize call. It just // might have changed since the Table HDU was constructed so it should // be set just before reading takes place. if (fits_get_rowsize(fitsPointer(), &rowSize, &status)) throw FitsError(status); // if a set of strings were supplied, interpret these as // keywords and columns to be read. std::map::iterator endColumn = column().end(); size_t keysRead = 0; size_t nkey=keys.size(); // get a container for keys which correspond to columns. std::vector colKeys; colKeys.reserve(nkey); if (nkey > 0) { // first, look for keywords if strings are supplied and read them. for (keysRead = 0; keysRead < nkey; keysRead++) { try { // after the read function is called by the ctor, // the columns in the table have been indexed. // check that the key in question is not a column // name. if (column().find(keys[keysRead]) == endColumn) readKeyword(keys[keysRead]); else colKeys.push_back(keys[keysRead]); } catch (HDU::NoSuchKeyword) { continue; } catch (...) { throw; } } } // if readFlag is false, don't get any data. if (!readFlag) return; for (rowsRead=0; rowsRead< rows() ; rowsRead+=rowSize) { std::map::iterator col; if (colKeys.size() > 0) { for (size_t i=0; i < colKeys.size() ; i++) { // if a set of keys was entered, read the data in the ones // that correspond to columns, as checked earlier col = column().find(colKeys[i]); Column& current = *((*col).second); // if the column is not of variable repeat count... if (!current.varLength()) { current.readData(rowsRead+1, current.repeat()*std::min(rowSize,rows()-rowsRead),1); } else { // store the column numbers of variable columns for later. varCols.push_back(current.name()); } } } else { // if no keys that correspond to column names were supplied, read all the data. for(col = column().begin(); col != column().end(); col++ ) { Column& current = *(*col).second; if (!current.varLength()) { current.readData(rowsRead+1, current.repeat()*std::min(rowSize,rows() - rowsRead),1); } else { varCols.push_back(current.name()); } } } } // if successful, mark read columns. if (colKeys.size() == 0) { // mark all columns read for (std::map::iterator col = column().begin(); col != column().end(); ++col) { if (!(*col).second->varLength()) (*col).second->isRead(true); } } else { for (size_t i=0; i < colKeys.size() ; i++) { // if a set of keys was entered, read the data in the ones // that correspond to columns, as checked earlier. std::map::iterator col = column().find(colKeys[i]); if (!(*col).second->varLength()) (*col).second->isRead(true); } } // now read the variable length columns that were found earlier. if (varCols.size() > 0 ) readVariableColumns(varCols); } void BinTable::readVariableColumns (const std::vector &varColumns) { int rowsRead=0; int status=0; int sz=varColumns.size(); int i = 0; FITSUtil::auto_array_ptr pBinSizes(new long[rows()]); long* binSizes = pBinSizes.get(); FITSUtil::auto_array_ptr pOffsets(new long[rows()]); long* offsets = pOffsets.get(); while ( i < sz && status == 0 ) { // Get bin size for the current column Column& thisColumn = column(varColumns[i]); int colnum = thisColumn.index(); status = fits_read_descripts(fitsPointer(), colnum, 1, rows() , binSizes, offsets, &status); if (status != 0) break; for (rowsRead=0; rowsRead < rows() ; rowsRead++) { if (binSizes[rowsRead] > 0) thisColumn.readData(rowsRead+1, binSizes[rowsRead], 1); } column(varColumns[i]).isRead(true); i++; } if (status != 0) throw FitsError(status); } void BinTable::addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit, long decimals, size_t columnNumber) { #ifdef SSTREAM_DEFECT std::ostrstream tformStr; #else std::ostringstream tformStr; #endif // we do NOT support the extension allowed by cfitsio whereby multiple // strings can be saved in a binary table column cell. String diag(""); if ( repeatWidth != 1 && type != Tstring) { tformStr << repeatWidth; } // this is safe since there's no VTstring type. if (type < 0) tformStr << 'P'; switch (type) { case Tstring: tformStr << repeatWidth << 'A'; break; case Tbyte: case VTbyte: tformStr << 'B'; break; case Tbit: case VTbit: tformStr << 'X'; break; case Tlogical: case VTlogical: tformStr << 'L'; break; case Tushort: case VTushort: tformStr << 'U'; break; case Tshort: case VTshort: tformStr << 'I'; break; case Tulong: case VTulong: tformStr << 'V'; break; case Tlong: case VTlong: tformStr << 'J'; break; case Tlonglong: case VTlonglong: tformStr << 'K'; break; case Tuint: case VTuint: tformStr << 'V'; break; case Tint: case VTint: tformStr << 'J'; break; case Tfloat: case VTfloat: tformStr << 'E'; break; case Tdouble: case VTdouble: tformStr << 'D'; break; case Tcomplex: case VTcomplex: tformStr << 'C'; break; case Tdblcomplex: case VTdblcomplex: tformStr << 'M'; break; default: diag += "Unrecognized data type for column: "; diag += columnName; throw InvalidColumnSpecification(diag); } #ifdef SSTREAM_DEFECT tformStr << std::ends; #endif makeThisCurrent(); int status(0); int colNum(0); if ( columnNumber == 0) { // add one to number of existing columns. if (fits_get_num_cols(fitsPointer(),&colNum,&status)) throw FitsError(status); colNum +=1; } else { colNum = columnNumber; } String tfString(tformStr.str()); // the C prototypes don't use const, so these casts are necessary. char* tform = const_cast(tfString.c_str()); char* ttype = const_cast(columnName.c_str()); if (fits_insert_col(fitsPointer(),colNum,ttype,tform,&status)) throw FitsError(status); if (colUnit.size()) { std::ostringstream ustream; char unitComment[] = ""; ustream << "TUNIT" << colNum; if (fits_write_key (fitsPointer(), Tstring, const_cast(ustream.str().c_str()), const_cast(colUnit.c_str()), unitComment, &status)) { throw FitsError (status); } } ColumnCreator create(this); if (type != Tstring) { setColumn(columnName,create.createColumn(colNum,type,columnName,tfString, colUnit,repeatWidth,1)); column(columnName).setLimits(type); } else { setColumn(columnName,create.createColumn(colNum,type,columnName,tfString, colUnit,1,repeatWidth)); } if (columnNumber != 0) reindex(); } // Additional Declarations } // namespace CCfits CCfits/Column.cxx0000644000225700000360000015772611471036043013521 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include using std::ostrstream; #else #include using std::ostringstream; #endif // Table #include "Table.h" // Column #include "Column.h" #include "FITS.h" #include "fitsio.h" #include "ColumnData.h" #include "ColumnVectorData.h" #include #include #include namespace CCfits { // Class CCfits::Column::RangeError Column::RangeError::RangeError (const String& msg, bool silent) : FitsException("FitsError: Range error in operation ",silent) { addToMessage(msg); if (!silent || FITS::verboseMode() ) std::cerr << msg << '\n'; } // Class CCfits::Column::InvalidDataType Column::InvalidDataType::InvalidDataType (const String& str, bool silent) : FitsException("FitsError: Incorrect data type: ",silent) { addToMessage(str); if (!silent || FITS::verboseMode() ) std::cerr << str << '\n'; } // Class CCfits::Column::InvalidRowParameter Column::InvalidRowParameter::InvalidRowParameter (const String& diag, bool silent) : FitsException("FitsError: row offset or length incompatible with column declaration ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode() ) std::cerr << diag << '\n'; } // Class CCfits::Column::WrongColumnType Column::WrongColumnType::WrongColumnType (const String& diag, bool silent) : FitsException("FitsError: Attempt to return scalar data from vector column, or vice versa - Column: ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode() ) std::cerr << diag << '\n'; } // Class CCfits::Column::UnspecifiedLengths Column::UnspecifiedLengths::UnspecifiedLengths (const String& diag, bool silent) : FitsException ("FitsError: Variable length column being written needs integer array of row lengths: Column ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode() ) std::cerr << diag << '\n'; } // Class CCfits::Column::InvalidRowNumber Column::InvalidRowNumber::InvalidRowNumber (const String& diag, bool silent) : FitsException("FitsError: Invalid Row Number - Column: ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode() ) std::cerr << diag << '\n'; } // Class CCfits::Column::InsufficientElements Column::InsufficientElements::InsufficientElements (const String& msg, bool silent) : FitsException("FitsError: not enough elements supplied for write operation ",silent) { addToMessage(msg); if (!silent || FITS::verboseMode() ) std::cerr << msg << '\n'; } // Class CCfits::Column::NoNullValue Column::NoNullValue::NoNullValue (const String& diag, bool silent) : FitsException("Fits Error: No null value specified for column: ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode() ) std::cerr << diag << '\n'; } // Class CCfits::Column::InvalidNumberOfRows Column::InvalidNumberOfRows::InvalidNumberOfRows (size_t number, bool silent) : FitsException( "Fits Error: number of rows to write must be positive: ",silent) { std::ostringstream oss; oss << " specified: " << number; addToMessage(oss.str()); if (!silent || FITS::verboseMode() ) std::cerr << oss.str() << '\n'; } // Class CCfits::Column const String Column::s_TBCOL = "TBCOL"; const String Column::s_TTYPE = "TTYPE"; const String Column::s_TFORM = "TFORM"; const String Column::s_TDISP = "TDISP"; const String Column::s_TUNIT = "TUNIT"; const String Column::s_TSCAL = "TSCAL"; const String Column::s_TZERO = "TZERO"; const String Column::s_TDIM = "TDIM"; const String Column::s_TNULL = "TNULL"; const String Column::s_TLMIN = "TLMIN"; const String Column::s_TLMAX = "TLMAX"; const String Column::s_TDMAX = "TDMAX"; const String Column::s_TDMIN = "TDMIN"; const short Column::LLIMITSHORT = SHRT_MIN; const long Column::LLIMITLONG = LONG_MIN; const unsigned short Column::LLIMITUSHORT = 0; const unsigned long Column::LLIMITULONG = 0; const unsigned char Column::LLIMITUCHAR = 0; const float Column::LLIMITFLOAT = FLT_MIN; const double Column::LLIMITDOUBLE = DBL_MIN; const short Column::ULIMITSHORT = SHRT_MAX; const long Column::ULIMITLONG = LONG_MAX; const unsigned short Column::ULIMITUSHORT = USHRT_MAX; const unsigned long Column::ULIMITULONG = ULONG_MAX; const unsigned char Column::ULIMITUCHAR = UCHAR_MAX; const float Column::ULIMITFLOAT = FLT_MAX; const double Column::ULIMITDOUBLE = DBL_MAX; const int Column::LLIMITINT = INT_MIN; const int Column::ULIMITINT = INT_MAX; const unsigned int Column::LLIMITUINT = 0; const unsigned int Column::ULIMITUINT = UINT_MAX; const LONGLONG Column::LLIMITLONGLONG = LONGLONG_MIN; const LONGLONG Column::ULIMITLONGLONG = LONGLONG_MAX; std::vector Column::s_columnKeys; Column::Column(const Column &right) : m_index(right.m_index), m_isRead(right.m_isRead), m_width(right.m_width), m_repeat(right.m_repeat), m_varLength(right.m_varLength), m_scale(right.m_scale), m_zero(right.m_zero), m_display(right.m_display), m_dimen(right.m_dimen), m_type(right.m_type), m_parent(right.m_parent), m_comment(right.m_comment), m_format(right.m_format), m_unit(right.m_unit), m_name(right.m_name) { } Column::Column (int columnIndex, const String &columnName, ValueType type, const String &format, const String &unit, Table* p, int rpt, long w, const String &comment) :m_index(columnIndex), m_isRead(false), m_width(w), m_repeat(rpt), m_varLength(type < 0), m_scale(1), m_zero(0), m_display(""), m_dimen(""), m_type(type), m_parent(p), m_comment(comment), m_format(format), m_unit(unit), m_name(columnName) { Column::loadColumnKeys(); setDisplay(); setDimen(); } Column::Column (Table* p) : m_index(-1), m_isRead(false), m_width(1), m_repeat(1), m_varLength(false), m_scale(1), m_zero(0), m_display(""), m_dimen(""), m_type(Tnull), m_parent(p), m_comment(""), m_format(""), m_unit(""), m_name("") { // default constructor. Column::loadColumnKeys(); } Column::~Column() { } bool Column::operator==(const Column &right) const { return compare(right); } bool Column::operator!=(const Column &right) const { return !compare(right); } bool Column::compare (const Column &right) const { if (m_isRead != right.m_isRead) return false; if (m_repeat != right.m_repeat) return false; if (m_width != right.m_width) return false; if (m_varLength != right.m_varLength) return false; if (m_name != right.m_name) return false; if (m_format != right.m_format) return false; if (m_unit != right.m_unit) return false; if (m_comment != right.m_comment) return false; if (m_parent != right.m_parent) return false; return true; } fitsfile* Column::fitsPointer () { return m_parent->fitsPointer(); } void Column::makeHDUCurrent () { m_parent->makeThisCurrent(); } int Column::rows () const { return m_parent->rows(); } void Column::setDisplay () { #ifdef SSTREAM_DEFECT ostrstream key; #else std::ostringstream key; #endif key << "TDISP" << index(); int status = 0; FITSUtil::auto_array_ptr dispValue (new char[FLEN_VALUE]); #ifdef SSTREAM_DEFECT key << std::ends; fits_read_key_str(fitsPointer(), key.str(), dispValue.get(),0,&status); #else fits_read_key_str(fitsPointer(),const_cast(key.str().c_str()),dispValue.get(),0,&status); #endif if (status == 0) { m_display = String(dispValue.get()); } } std::ostream& Column::put (std::ostream& s) const { { s << "Column Name:" << name() << " Number: " << index() << " unit: " << unit() << "\n"; s << "format: " << format() << " comment: " << comment() << "\n"; } return s; } Table* Column::parent () const { return m_parent; } void Column::setLimits (ValueType type) { int status(0); static long* pl = new long[4]; static LONGLONG* pll = new LONGLONG[4]; static unsigned long* pul = new unsigned long[4]; static int* pi = new int[4]; static unsigned int* pui = new unsigned int[4]; static short* ps = new short[4]; static unsigned short* pus = new unsigned short[4]; static unsigned char* puc = new unsigned char[4]; static float* pf = new float[4]; static double* pd = new double[4]; static std::complex cf[4]; static std::complex cd[4]; #ifdef SSTREAM_DEFECT ostrstream slmin; ostrstream slmax; ostrstream sdmin; ostrstream sdmax; #else ostringstream slmin; ostringstream slmax; ostringstream sdmin; ostringstream sdmax; #endif slmin << s_TLMIN << m_index; slmax << s_TLMAX << m_index; sdmin << s_TDMIN << m_index; sdmax << s_TDMAX << m_index; #ifdef SSTREAM_DEFECT slmin << std::ends; slmax << std::ends; sdmin << std::ends; sdmax << std::ends; char* lmin(slmin.str()); char* lmax(slmax.str()); char* dmin(slmin.str()); char* dmax(slmax.str()); #else String slminStr(slmin.str()); String slmaxStr(slmax.str()); String sdminStr(sdmin.str()); String sdmaxStr(sdmax.str()); char* lmin = const_cast(slminStr.c_str()); char* lmax = const_cast(slmaxStr.c_str()); char* dmin = const_cast(sdminStr.c_str()); char* dmax = const_cast(sdmaxStr.c_str()); #endif size_t j = 0; // for MS VC++ switch (type) { case VTushort: case Tushort: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pl[0] = LLIMITUSHORT; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pl[1] = ULIMITUSHORT; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pl[2] = LLIMITUSHORT; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pl[3] = ULIMITUSHORT; for (j = 0; j < 4; ++j) pus[j] = pl[j]; if (m_repeat == 1) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pus); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pus); } break; case VTshort: case Tshort: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pl[0] = LLIMITSHORT; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pl[1] = ULIMITSHORT; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pl[2] = LLIMITSHORT; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pl[3] = ULIMITSHORT; for ( j = 0; j < 4; ++j) ps[j] = pl[j]; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(static_cast(ps)); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(static_cast(ps)); } break; case VTbyte: case VTbit: case Tbit: case Tbyte: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pl[0] = LLIMITUCHAR; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pl[1] = ULIMITUCHAR; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pl[2] = LLIMITUCHAR; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pl[3] = ULIMITUCHAR; for ( j = 0; j < 4; ++j) puc[j] = pl[j]; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(puc); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(puc); } break; case VTint: case Tint: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pl[0] = LLIMITINT; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pl[1] = ULIMITINT; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pl[2] = LLIMITINT; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pl[3] = ULIMITINT; for ( j = 0; j < 4; ++j) pi[j] = pl[j]; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pi); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pi); } break; case VTuint: case Tuint: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pui[0] = LLIMITUINT; else pui[0] = pl[0]; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pui[1] = ULIMITUINT; else pui[1] = pl[1]; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pui[2] = LLIMITUINT; else pui[2] = pl[2]; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pui[3] = ULIMITUINT; else pui[3] = pl[3]; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pui); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pui); } break; case VTlong: case Tlong: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pl[0] = LLIMITLONG; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pl[1] = ULIMITLONG; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pl[2] = LLIMITLONG; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pl[3] = ULIMITLONG; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pl); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pl); } break; case VTlonglong: case Tlonglong: // NOTE: cfitsio cannot currently read kewyords // of type long long. fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); pll[0] = status ? LLIMITLONGLONG : pl[0]; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); pll[1] = status ? ULIMITLONGLONG : pl[1]; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); pll[2] = status ? LLIMITLONGLONG : pl[2]; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); pll[3] = status ? ULIMITLONGLONG : pl[3]; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pll); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pll); } break; case VTulong: case Tulong: fits_read_key_lng(fitsPointer(),lmin,pl,0,&status); if (status != 0) pul[0] = LLIMITULONG; else pul[0] = pl[0]; fits_read_key_lng(fitsPointer(),lmax,pl+1,0,&status); if (status != 0) pul[1] = ULIMITULONG; else pul[1] = pl[1]; fits_read_key_lng(fitsPointer(),dmin,pl+2,0,&status); if (status != 0) pul[2] = LLIMITULONG; else pul[2] = pl[2]; fits_read_key_lng(fitsPointer(),dmax,pl+3,0,&status); if (status != 0) pul[3] = ULIMITULONG; else pul[3] = pl[3]; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pul); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pul); } break; case VTfloat: case Tfloat: fits_read_key_flt(fitsPointer(),lmin,pf,0,&status); if (status != 0) pf[0] = LLIMITFLOAT; fits_read_key_flt(fitsPointer(),lmax,pf+1,0,&status); if (status != 0) pf[1] = ULIMITFLOAT; fits_read_key_flt(fitsPointer(),dmin,pf+2,0,&status); if (status != 0) pf[2] = LLIMITFLOAT; fits_read_key_flt(fitsPointer(),dmax,pf+3,0,&status); if (status != 0) pf[3] = ULIMITFLOAT; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pf); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pf); } break; case VTdouble: case Tdouble: fits_read_key_dbl(fitsPointer(),lmin,pd,0,&status); if (status != 0) pd[0] = LLIMITDOUBLE; fits_read_key_dbl(fitsPointer(),lmax,pd+1,0,&status); if (status != 0) pd[1] = ULIMITDOUBLE; fits_read_key_dbl(fitsPointer(),dmin,pd+2,0,&status); if (status != 0) pd[2] = LLIMITDOUBLE; fits_read_key_dbl(fitsPointer(),dmax,pd+3,0,&status); if (status != 0) pd[3] = ULIMITDOUBLE; if (m_repeat == 1 && type > 0) { ColumnData& col = dynamic_cast&>(*this); col.setDataLimits(pd); } else { ColumnVectorData& col = dynamic_cast&>(*this); col.setDataLimits(pd); } break; case VTcomplex: case Tcomplex: fits_read_key_cmp(fitsPointer(),lmin,pf,0,&status); status != 0 ? cf[0] = std::complex(pf[0],pf[1]) : cf[0] = std::complex(-ULIMITFLOAT,-ULIMITFLOAT); fits_read_key_cmp(fitsPointer(),lmax,pf,0,&status); status != 0 ? cf[1] = std::complex(pf[0],pf[1]) : cf[1] = std::complex(ULIMITFLOAT,ULIMITFLOAT); fits_read_key_cmp(fitsPointer(),dmin,pf,0,&status); status != 0 ? cf[2] = std::complex(pf[0],pf[1]) : cf[2] = std::complex(-ULIMITFLOAT,ULIMITFLOAT); fits_read_key_cmp(fitsPointer(),dmax,pf,0,&status); status != 0 ? cf[3] = std::complex(pf[0],pf[1]) : cf[3] = std::complex(ULIMITFLOAT,ULIMITFLOAT); if (m_repeat == 1 && type > 0) { ColumnData >& col = dynamic_cast >&>(*this); col.setDataLimits(cf); } else { ColumnVectorData >& col = dynamic_cast >&>(*this); col.setDataLimits(cf); } break; case VTdblcomplex: case Tdblcomplex: fits_read_key_dblcmp(fitsPointer(),lmin,pd,0,&status); status != 0 ? cd[0] = std::complex(pd[0],pd[1]) : cd[0] = std::complex(-ULIMITDOUBLE,-ULIMITDOUBLE); fits_read_key_dblcmp(fitsPointer(),lmax,pd,0,&status); status != 0 ? cd[1] = std::complex(pd[0],pd[1]) : cd[1] = std::complex(ULIMITDOUBLE,ULIMITDOUBLE); fits_read_key_dblcmp(fitsPointer(),dmin,pd,0,&status); status != 0 ? cd[2] = std::complex(pd[0],pd[1]) : cd[2] = std::complex(-ULIMITDOUBLE,-ULIMITDOUBLE); fits_read_key_dblcmp(fitsPointer(),dmax,pd,0,&status); status != 0 ? cd[3] = std::complex(pd[0],pd[1]) : cd[3] = std::complex(ULIMITDOUBLE,ULIMITDOUBLE); if (m_repeat == 1 && type > 0) { ColumnData >& col = dynamic_cast >&>(*this); col.setDataLimits(cd); } else { ColumnVectorData >& col = dynamic_cast >&>(*this); col.setDataLimits(cd); } break; case Tstring: default: break; } } void Column::loadColumnKeys () { if (s_columnKeys.empty()) { s_columnKeys.resize(13); s_columnKeys[0] = s_TBCOL; s_columnKeys[1] = s_TTYPE; s_columnKeys[2] = s_TFORM; s_columnKeys[3] = s_TUNIT; s_columnKeys[4] = s_TNULL; s_columnKeys[5] = s_TDISP; s_columnKeys[6] = s_TDIM; s_columnKeys[7] = s_TSCAL; s_columnKeys[8] = s_TZERO; s_columnKeys[9] = s_TLMIN; s_columnKeys[10] = s_TLMAX; s_columnKeys[11] = s_TDMIN; s_columnKeys[12] = s_TDMAX; } } void Column::name (const String& value) { m_name = value; } void Column::unit (const String& value) { m_unit = value; } void Column::format (const String& value) { m_format = value; } void Column::varLength (bool value) { m_varLength = value; } long Column::numberOfElements (long& first, long& last) { // user expects 1 based indexing. If 0 based indices are supplied, // add one to both ranges. if (first == 0) { first +=1; last = std::min(static_cast(rows()), static_cast( last+1)); } last = std::min(static_cast(rows()),last); if (last < first ) throw RangeError(name()); return last - first + 1; } // Additional Declarations void Column::write(const std::vector& indata, long firstRow) { try { ColumnData& col = dynamic_cast& >(*this); col.writeData(indata,firstRow); } catch (std::bad_cast) { throw WrongColumnType(" downcasting string column "); } } void Column::write (const std::vector >& indata, long firstRow) { // we'll allow casting between float and double but that's // as far as it goes. firstRow = std::max(firstRow,static_cast(1)); if ( ColumnData >* col = dynamic_cast >*>(this) ) { col->writeData(indata,firstRow); } else { if ( type() == Tcomplex) { String msg("Incorrect call: writing to vector column "); msg += name(); msg += " requires specification of # rows or vector lengths"; throw WrongColumnType(msg); } else { try { ColumnData >& col = dynamic_cast >&>(*this); std::vector > tmp(indata.size()); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSvdvf(tmp,indata,1,indata.size()); #else FITSUtil::fill(tmp,indata,1,indata.size()); #endif col.writeData(tmp,firstRow); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::write (const std::vector >& indata, long firstRow) { firstRow = std::max(firstRow,static_cast(1)); if ( ColumnData >* col = dynamic_cast >*>(this)) { col->writeData(indata,firstRow); } else { if ( type() == Tdblcomplex) { String msg("Incorrect call: writing to vector column "); msg += name(); msg += " requires specification of # rows or vector lengths"; throw WrongColumnType(msg); } else { try { ColumnData >& col = dynamic_cast >&>(*this); std::vector > __tmp(indata.size()); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSvfvd(__tmp,indata,1,indata.size()); #else FITSUtil::fill(__tmp,indata,1,indata.size()); #endif col.writeData(__tmp,firstRow); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::write (const std::valarray >& indata, long firstRow) { std::vector > __tmp; FITSUtil::fill(__tmp,indata); write(__tmp,firstRow); } void Column::write (const std::valarray >& indata, long firstRow) { std::vector > __tmp; FITSUtil::fill(__tmp,indata); write(__tmp,firstRow); } void Column::read(std::vector& vals, long first, long last) { try { ColumnData& col = dynamic_cast& >(*this); col.readData(first,last-first+1); #if TEMPLATE_AMBIG_DEFECT || TEMPLATE_AMBIG7_DEFECT FITSUtil::fillMSvsvs(vals,col.data(),first,last); #else FITSUtil::fill(vals,col.data(),first,last); #endif } catch (std::bad_cast) { throw WrongColumnType(" downcasting string column "); } } void Column::read(std::vector< std::complex >& vals , long first, long last) { if (ColumnData< std::complex >* col = dynamic_cast >*>(this)) { // fails if user requested outputType different from input type. if (!isRead()) col->readColumnData(first,last - first + 1); // scalar column with vector output can just be assigned. #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSvfvf(vals,col->data(),first,last); #else FITSUtil::fill(vals,col->data(),first,last); #endif } else { if ( type() == Tcomplex) { String msg("Incorrect call: writing to vector column "); msg += name(); msg += " requires specification of # rows or vector lengths"; throw WrongColumnType(msg); } else { try { ColumnData >& col = dynamic_cast >&>(*this); if (!isRead()) col.readColumnData(first,last - first + 1); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSvfvd(vals,col.data(),first,last); #else FITSUtil::fill(vals,col.data(),first,last); #endif } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::read(std::vector< std::complex >& vals, long first, long last) { if (ColumnData >* col = dynamic_cast >*>(this)) { // fails if user requested outputType different from input type. if (!isRead()) col->readColumnData(first,last - first + 1); // scalar column with vector output can just be assigned. #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSvdvd(vals,col->data(),first,last); #else FITSUtil::fill(vals,col->data(),first,last); #endif } else { if ( type() == Tdblcomplex) { String msg("Incorrect call: writing to vector column "); msg += name(); msg += " requires specification of # rows or vector lengths"; throw WrongColumnType(msg); } else { try { ColumnData >& col = dynamic_cast >&>(*this); if (!isRead()) col.readColumnData(first,last - first + 1); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSvdvf(vals,col.data(),first,last); #else FITSUtil::fill(vals,col.data(),first,last); #endif } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::read(std::valarray >& vals, long row) { if ( ColumnVectorData >* col = dynamic_cast >*>(this)) { // fails if user requested outputType different from input type. // input and output are both valarrays. Since one should not // be able to call a constructor for a non-numeric valarray type, // there shouldn't be any InvalidType problems. However, there // is still the vector/scalar possibility and the implicit // conversion request to deal with. if (!isRead()) col->readRow(row); FITSUtil::fill(vals,col->data(row)); } else { if ( type() == Tcomplex ) { // in this case user tried to read vector row from scalar column. // one could be charitable and return a valarray of size 1, // but... I'm going to throw an exception suggesting the user // might not have meant that. throw Column::WrongColumnType(name()); } else { try { ColumnVectorData >& col = dynamic_cast >&>(*this); if (!isRead()) col.readRow(row); FITSUtil::fill(vals,col.data(row)); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::read(std::valarray >& vals, long row) { if ( ColumnVectorData >* col = dynamic_cast >*>(this)) { // fails if user requested outputType different from input type. // input and output are both valarrays. Since one should not // be able to call a constructor for a non-numeric valarray type, // there shouldn't be any InvalidType problems. However, there // is still the vector/scalar possibility and the implicit // conversion request to deal with. if (!isRead()) col->readRow(row); FITSUtil::fill(vals,col->data(row)); } else { if ( type() == Tdblcomplex ) { // in this case user tried to read vector row from scalar column. // one could be charitable and return a valarray of size 1, // but... I'm going to throw an exception suggesting the user // might not have meant that. throw Column::WrongColumnType(name()); } else { try { ColumnVectorData >& col = dynamic_cast >&>(*this); if (!isRead()) col.readRow(row); FITSUtil::fill(vals,col.data(row)); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::readArrays(std::vector > >& vals, long first, long last) { // again, can only call this if the entire column has been read from disk. // user expects 1 based indexing. If 0 based indices are supplied, // add one to both ranges. long range = numberOfElements(first,last); vals.resize(range); if ( ColumnVectorData >* col = dynamic_cast >*>(this)) { for (int j = 0; j < range; ++j) { if (!isRead()) col->readRow(j + first); FITSUtil::fill(vals[j],col->data(j+first)); } } else { if ( type() == Tcomplex) { // in this case user tried to read vector data from scalar, // (i.e. first argument was vector >. // since the cast won't fail on template parameter grounds. throw Column::WrongColumnType(name()); } // the InvalidDataType exception should not be possible. try { ColumnVectorData >& col = dynamic_cast >&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first); FITSUtil::fill(vals[j],col.data(j+first)); } } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } void Column::readArrays(std::vector > >& vals, long first, long last) { // again, can only call this if the entire column has been read from disk. // user expects 1 based indexing. If 0 based indices are supplied, // add one to both ranges. long range = numberOfElements(first,last); vals.resize(range); if ( ColumnVectorData >* col = dynamic_cast >*>(this)) { for (int j = 0; j < range; ++j) { if (!isRead()) col->readRow(j + first); FITSUtil::fill(vals[j],col->data(j+first)); } } else { if ( type() == Tdblcomplex) { // in this case user tried to read vector data from scalar, // (i.e. first argument was vector >. // since the cast won't fail on template parameter grounds. throw Column::WrongColumnType(name()); } // the InvalidDataType exception should not be possible. try { ColumnVectorData >& col = dynamic_cast >&>(*this); for (int j = 0; j < range; ++j) { if (!isRead()) col.readRow(j + first); FITSUtil::fill(vals[j],col.data(j+first)); } } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } void Column::write (const std::valarray >& indata, long nRows, long firstRow) { if (nRows <= 0) throw InvalidNumberOfRows(nRows); firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData >* col = dynamic_cast >*>(this)) { col->writeData(indata,nRows,firstRow); } else { // alright, input data type has to be rewritten as output // data type. if ( type() == Tcomplex ) { String msg("Incorrect call: writing to valarray data to scalar column: "); msg += name(); msg += " does not require specification of number of rows"; throw WrongColumnType(msg); } else { try { ColumnVectorData >& col = dynamic_cast >&>(*this); std::valarray > __tmp; FITSUtil::fill(__tmp,indata); col.writeData(__tmp,nRows,firstRow); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::write (const std::valarray >& indata, long nRows, long firstRow) { if (nRows <= 0) throw InvalidNumberOfRows(nRows); firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData >* col = dynamic_cast >*>(this)) { col->writeData(indata,nRows,firstRow); } else { // alright, input data type has to be rewritten as output // data type. if ( type() == Tdblcomplex ) { String msg("Incorrect call: writing to valarray data to scalar column: "); msg += name(); msg += " does not require specification of number of rows"; throw WrongColumnType(msg); } else { try { ColumnVectorData >& col = dynamic_cast >&>(*this); std::valarray > __tmp; FITSUtil::fill(__tmp,indata); col.writeData(__tmp,nRows,firstRow); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::write (const std::vector >& indata, long nRows, long firstRow) { std::valarray > __tmp(indata.size()); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSafvf(__tmp,indata,1,indata.size()); #else FITSUtil::fill(__tmp,indata,1,indata.size()); #endif write(__tmp,nRows,firstRow); } void Column::write (const std::vector >& indata, long nRows, long firstRow) { std::valarray > __tmp(indata.size()); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSadvd(__tmp,indata,1,indata.size()); #else FITSUtil::fill(__tmp,indata,1,indata.size()); #endif write(__tmp,nRows,firstRow); } void Column::write (const std::valarray >& indata, const std::vector& vectorLengths, long firstRow) { using std::valarray; firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData >* col = dynamic_cast >*>(this)) { col->writeData(indata,vectorLengths,firstRow); } else { if ( type() == Tcomplex ) { String msg("Incorrect call: scalar column "); msg += name(); msg += " does not have vector lengths"; throw WrongColumnType(msg); } else { try { ColumnVectorData >& col = dynamic_cast >&>(*this); valarray > __tmp; FITSUtil::fill(__tmp,indata); col.writeData(__tmp,vectorLengths,firstRow); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::write (const std::valarray >& indata, const std::vector& vectorLengths, long firstRow) { using std::valarray; firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData >* col = dynamic_cast >*>(this)) { col->writeData(indata,vectorLengths,firstRow); } else { if ( type() == Tdblcomplex ) { String msg("Incorrect call: scalar column "); msg += name(); msg += " does not have vector lengths"; throw WrongColumnType(msg); } else { try { ColumnVectorData >& col = dynamic_cast >&>(*this); valarray > __tmp; FITSUtil::fill(__tmp,indata); col.writeData(__tmp,vectorLengths,firstRow); } catch (std::bad_cast) { String msg(" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::write (const std::vector >& indata, const std::vector& vectorLengths, long firstRow) { std::valarray > __tmp(indata.size()); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSafvf(__tmp,indata,1,indata.size()); #else FITSUtil::fill(__tmp,indata,1,indata.size()); #endif write(__tmp,vectorLengths,firstRow); } void Column::write (const std::vector >& indata, const std::vector& vectorLengths, long firstRow) { std::valarray > __tmp(indata.size()); #ifdef TEMPLATE_AMBIG_DEFECT FITSUtil::fillMSadvd(__tmp,indata,1,indata.size()); #else FITSUtil::fill(__tmp,indata,1,indata.size()); #endif write(__tmp,vectorLengths,firstRow); } void Column::writeArrays (const std::vector > >& indata, long firstRow) { firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData >* col = dynamic_cast >*>(this)) { col->writeData(indata,firstRow); } else { if ( type() == Tcomplex ) { String msg("Incorrect call: writing vectors to scalar column "); throw WrongColumnType(msg); } else { size_t n(indata.size()); try { ColumnVectorData >& col = dynamic_cast >&>(*this); std::vector > > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow); } catch (std::bad_cast) { String msg (" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } void Column::writeArrays (const std::vector > >& indata, long firstRow) { firstRow = std::max(firstRow,static_cast(1)); if (ColumnVectorData >* col = dynamic_cast >*>(this)) { col->writeData(indata,firstRow); } else { if ( type() == Tcomplex ) { String msg("Incorrect call: writing vectors to scalar column "); throw WrongColumnType(msg); } else { size_t n(indata.size()); try { ColumnVectorData >& col = dynamic_cast >&>(*this); std::vector > > __tmp(n); for (size_t i = 0; i < n; ++i) { FITSUtil::fill(__tmp[i],indata[i]); } col.writeData(__tmp,firstRow); } catch (std::bad_cast) { String msg (" implicit conversion from complex to real data not allowed: Column "); msg += name(); throw InvalidDataType(msg); } } } } } // namespace CCfits CCfits/ColumnCreator.cxx0000644000225700000360000003401611470265344015032 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // Column #include "Column.h" // Table #include "Table.h" // ColumnData #include "ColumnData.h" // ColumnVectorData #include "ColumnVectorData.h" // ColumnCreator #include "ColumnCreator.h" #include #include using std::complex; namespace CCfits { // Class CCfits::ColumnCreator ColumnCreator::ColumnCreator (Table* p) : m_parent(p) { } ColumnCreator::~ColumnCreator() { } Column * ColumnCreator::MakeColumn (const int index, const String &name, const String &format, const String &unit, const long repeat, const long width, const String &comment, const int decimals) { return 0; } Column * ColumnCreator::getColumn (int number, const String& name, const String& format, const String& unit) { long repeat=1; long width=1; int type=0; double tscale = 1; double tzero = 0; getScaling(number, type, repeat, width, tscale, tzero); return createColumn(number,ValueType(type),name,format,unit,repeat,width,tscale,tzero); } Column * ColumnCreator::createColumn (int number, ValueType type, const String &name, const String &format, const String &unit, long repeat, long width, double scaleFactor, double offset, const String &comment) { switch(type) { case Tstring: m_column = new ColumnData(number, name, type, format, unit, m_parent, 1, width); break; case VTushort: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); m_column->zero(USBASE); m_column->scale(1); break; case Tushort: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } m_column->zero(USBASE); m_column->scale(1); break; case VTshort: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tshort: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTlogical: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tlogical: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTbyte: case VTbit: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tbit: case Tbyte: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTint: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tint: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTuint: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); m_column->zero(ULBASE); m_column->scale(1); break; case Tuint: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } m_column->zero(ULBASE); m_column->scale(1); break; case VTlong: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tlong: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTlonglong: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tlonglong: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTulong: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); m_column->zero(ULBASE); m_column->scale(1); break; case Tulong: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } m_column->zero(ULBASE); m_column->scale(1); break; case VTfloat: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tfloat: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTdouble: m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); break; case Tdouble: if (repeat == 1) { m_column = new ColumnData(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData(number, name, type, format,unit, m_parent, repeat); } break; case VTcomplex: m_column = new ColumnVectorData >(number, name, type, format,unit, m_parent, repeat); break; case Tcomplex: if (repeat == 1) { m_column = new ColumnData >(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData >(number, name, type, format,unit, m_parent, repeat); } break; case VTdblcomplex: m_column = new ColumnVectorData >(number, name, type, format,unit, m_parent, repeat); break; case Tdblcomplex: if (repeat == 1) { m_column = new ColumnData >(number, name, type, format,unit, m_parent); } else { m_column = new ColumnVectorData >(number, name, type, format,unit, m_parent, repeat); } break; default: // replace with exception. throw FitsFatal("Unknown ValueType in ColumnCreator"); } if ( scaleFactor != 1) { m_column->scale(scaleFactor); m_column->zero(offset); } return m_column; } void ColumnCreator::getScaling (int index, int& type, long& repeat, long& width, double& tscale, double& tzero) { int status (0); if (fits_get_coltype(m_parent->fitsPointer(), index, &type, &repeat, &width, &status)) { throw FitsError(status); } int absType (std::abs(type)) ; FITSUtil::auto_array_ptr pKeyname( new char[FLEN_KEYWORD]); char* keyname = pKeyname.get(); sprintf(keyname, "%s%d",Column::TSCAL().c_str(),index); bool scalePresent (!fits_read_key(m_parent->fitsPointer(),Tdouble,keyname,&tscale,0,&status)); // reset the status flag if there was no scale factor so cfitsio will not // propagate the error code. if (!scalePresent) status = 0; sprintf(keyname, "%s%d", Column::TZERO().c_str(),index); fits_read_key(m_parent->fitsPointer(),Tdouble,keyname,&tzero,0,&status); // if there is no BSCALE key present or BSCALE == 1 ... if (!scalePresent || scalePresent && tscale == 1) { if ( !status ) { switch (absType) { case Tshort: if (tzero == USBASE) { type > 0 ? type = Tushort : type = VTushort ; } break; case Tint: if (tzero == ULBASE) { type > 0 ? type = Tuint : type = VTuint ; } break; case Tlong: if (tzero == ULBASE) { type > 0 ? type = Tulong : type = VTulong ; } break; default: break; } } } else // scale present and tmpScale != 1. { switch (absType) { case Tbit: case Tbyte: case Tint: case Tshort: type > 0 ? type = Tfloat: type = VTfloat; break; case Tlong: case Tlonglong: type > 0 ? type = Tdouble: type = VTdouble; break; default: break; // do nothing. } } } // Additional Declarations } // namespace CCfits CCfits/ColumnData.cxx0000644000225700000360000002251611470265344014306 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif // ColumnData #include "ColumnData.h" #include namespace CCfits { #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnData::writeData (const std::vector& indata, long firstRow, String* nullValue) { int status=0; char** columnData=FITSUtil::CharArray(indata); if ( fits_write_colnull(fitsPointer(), TSTRING, index(), firstRow, 1, indata.size(), columnData, 0, &status) != 0 ) throw FitsError(status); unsigned long elementsToWrite (indata.size() + firstRow - 1); std::vector __tmp(m_data); if (m_data.size() < elementsToWrite) { m_data.resize(elementsToWrite,""); std::copy(__tmp.begin(),__tmp.end(),m_data.begin()); } std::copy(indata.begin(),indata.end(),m_data.begin()+firstRow-1); for (size_t i = 0; i < indata.size(); ++i) { delete [] columnData[i]; } delete [] columnData; } #endif #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnData::readColumnData (long firstRow, long nelements, String* nullValue) { int status = 0; int anynul = 0; char** array = new char*[nelements]; int j(0); for ( ; j < nelements; ++j) { array[j] = new char[width() + 1]; } char* nulval = 0; if (nullValue) { nulval = const_cast(nullValue->c_str()); } else { nulval = new char; *nulval = '\0'; } try { makeHDUCurrent(); if (fits_read_col_str(fitsPointer(),index(), firstRow,1,nelements, nulval,array, &anynul,&status) ) throw FitsError(status); } catch (FitsError) { // ugly. but better than leaking resources. for (int jj = 0; jj < nelements; ++jj) { delete [] array[jj]; } delete [] array; delete nulval; throw; } if (m_data.size() != rows()) setData(std::vector(rows(),String(nulval))); // the 'first -1 ' converts to zero based indexing. for ( j = 0; j < nelements; j++) { m_data[j - 1 + firstRow] = String(array[j]); } for ( j = 0; j < nelements; j++) { delete [] array[j]; } delete [] array; delete nulval; if (nelements == rows()) isRead(true); } #endif #endif #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } template <> void ColumnData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } template <> void ColumnData >::readColumnData (long firstRow, long nelements, complex* nullValue) { // specialization for ColumnData int status(0); int anynul(0); FITSUtil::auto_array_ptr pArray(new float[nelements*2]); float* array = pArray.get(); float nulval(0); makeHDUCurrent(); if (fits_read_col_cmp(fitsPointer(),index(), firstRow,1,nelements, nulval,array, &anynul,&status) ) throw FitsError(status); if (m_data.size() != rows()) m_data.resize(rows()); // the 'j -1 ' converts to zero based indexing. for (int j = 0; j < nelements; ++j) { m_data[j - 1 +firstRow] = std::complex(array[2*j],array[2*j+1]); } if (nelements == rows()) isRead(true); } template <> void ColumnData >::readColumnData (long firstRow, long nelements, complex* nullValue) { // specialization for ColumnData > int status(0); int anynul(0); FITSUtil::auto_array_ptr pArray(new double[nelements*2]); double* array = pArray.get(); double nulval(0); makeHDUCurrent(); if (fits_read_col_dblcmp(fitsPointer(), index(), firstRow,1,nelements, nulval,array, &anynul,&status) ) throw FitsError(status); if (m_data.size() != rows()) setData(std::vector >(rows(),nulval)); // the 'j -1 ' converts to zero based indexing. for (int j = 0; j < nelements; j++) { m_data[j - 1 + firstRow] = std::complex(array[2*j],array[2*j+1]); } if (nelements == rows()) isRead(true); } #endif #endif #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnData >::writeData (const std::vector >& inData, long firstRow, complex* nullValue) { int status(0); int nRows (inData.size()); FITSUtil::auto_array_ptr pData(new float[nRows*2]); float* Data = pData.get(); std::vector > __tmp(m_data); for (int j = 0; j < nRows; ++j) { Data[ 2*j] = inData[j].real(); Data[ 2*j + 1] = inData[j].imag(); } try { if (fits_write_col_cmp(fitsPointer(), index(), firstRow, 1, nRows,Data, &status) != 0) throw FitsError(status); long elementsToWrite(nRows + firstRow -1); if (elementsToWrite > static_cast(m_data.size())) { m_data.resize(elementsToWrite); } std::copy(inData.begin(),inData.end(),m_data.begin()+firstRow-1); // tell the Table that the number of rows has changed parent()->updateRows(); } catch (FitsError) // the only thing that can throw here. { // reset to original content and rethrow the exception. m_data.resize(__tmp.size()); m_data = __tmp; } } #endif #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnData >::writeData (const std::vector >& inData, long firstRow, complex* nullValue) { int status(0); int nRows (inData.size()); FITSUtil::auto_array_ptr pData(new double[nRows*2]); double* Data = pData.get(); std::vector > __tmp(m_data); for (int j = 0; j < nRows; ++j) { pData[ 2*j] = inData[j].real(); pData[ 2*j + 1] = inData[j].imag(); } try { if (fits_write_col_dblcmp(fitsPointer(), index(), firstRow, 1, nRows,Data, &status) != 0) throw FitsError(status); long elementsToWrite(nRows + firstRow -1); if (elementsToWrite > static_cast(m_data.size())) { m_data.resize(elementsToWrite); } std::copy(inData.begin(),inData.end(),m_data.begin()+firstRow-1); // tell the Table that the number of rows has changed parent()->updateRows(); } catch (FitsError) // the only thing that can throw here. { // reset to original content and rethrow the exception. m_data.resize(__tmp.size()); m_data = __tmp; } } #endif } // namespace CCfits CCfits/ColumnVectorData.cxx0000644000225700000360000003075411470265345015475 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // ColumnVectorData #include "ColumnVectorData.h" namespace CCfits { #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT // duplicated for each complex type to work around imagined or // actual compiler deficiencies. template <> void ColumnVectorData >::readColumnData(long firstRow, long nelements, long firstElem, std::complex* null ) { int status=0; float nulval (0); FITSUtil::auto_array_ptr pArray(new float[2*nelements]); float* array = pArray.get(); int anynul(0); if (fits_read_col_cmp(fitsPointer(),index(),firstRow, firstElem, nelements,nulval,array,&anynul,&status) ) throw FitsError(status); if (m_data.size() != static_cast(rows())) m_data.resize(rows()); std::valarray > readData(nelements); for (long j = 0; j < nelements; ++j) { readData[j] = std::complex(array[2*j],array[2*j+1]); } size_t countRead = 0; const size_t ONE = 1; if (m_data.size() != static_cast(rows())) m_data.resize(rows()); size_t vectorSize(0); if (!varLength()) { vectorSize = std::max(repeat(),ONE); // safety check. } else { // assume that the user specified the correct length for // variable columns. This should be ok since readVariableColumns // uses fits_read_descripts to return this information from the // fits pointer, and this is passed as nelements here. vectorSize = nelements; } size_t n = nelements; int i = firstRow; int ii = i - 1; while ( countRead < n) { std::valarray >& current = m_data[ii]; if (current.size() != vectorSize) current.resize(vectorSize,0.); int elementsInFirstRow = vectorSize-firstElem + 1; bool lastRow = ( (nelements - countRead) < vectorSize); if (lastRow) { int elementsInLastRow = nelements - countRead; std::copy(&readData[countRead],&readData[0]+nelements,¤t[0]); countRead += elementsInLastRow; } // what to do with complete rows. if firstElem == 1 the else { if (firstElem == 1 || (firstElem > 1 && i > firstRow) ) { current = readData[std::slice(vectorSize*(ii-firstRow)+ elementsInFirstRow,vectorSize,1)]; ++ii; ++i; countRead += vectorSize; } else { if (i == firstRow) { std::copy(&readData[0],&readData[0]+elementsInFirstRow, ¤t[firstElem]); countRead += elementsInFirstRow; ++i; ++ii; } } } } } #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnVectorData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } template <> void ColumnVectorData >::setDataLimits (complex* limits) { m_minLegalValue = limits[0]; m_maxLegalValue = limits[1]; m_minDataValue = limits[2]; m_maxDataValue = limits[3]; } #endif template <> void ColumnVectorData >::readColumnData (long firstRow, long nelements,long firstElem, complex* nullValue) { // duplicated for each complex type to work around imagined or // actual compiler deficiencies. int status=0; double nulval (0); FITSUtil::auto_array_ptr pArray(new double[2*nelements]); double* array = pArray.get(); int anynul(0); if (fits_read_col_dblcmp(fitsPointer(),index(),firstRow, firstElem, nelements,nulval,array,&anynul,&status) ) throw FitsError(status); if (m_data.size() != static_cast(rows())) m_data.resize(rows()); std::valarray > readData(nelements); for (long j = 0; j < nelements; ++j) { readData[j] = std::complex(array[2*j],array[2*j+1]); } size_t countRead = 0; const size_t ONE = 1; if (m_data.size() != static_cast(rows())) m_data.resize(rows()); size_t vectorSize(0); if (!varLength()) { vectorSize = std::max(repeat(),ONE); // safety check. } else { // assume that the user specified the correct length for // variable columns. This should be ok since readVariableColumns // uses fits_read_descripts to return this information from the // fits pointer, and this is passed as nelements here. vectorSize = nelements; } size_t n = nelements; int i = firstRow; int ii = i - 1; while ( countRead < n) { std::valarray >& current = m_data[ii]; if (current.size() != vectorSize) current.resize(vectorSize,0.); int elementsInFirstRow = vectorSize-firstElem + 1; bool lastRow = ( (nelements - countRead) < vectorSize); if (lastRow) { int elementsInLastRow = nelements - countRead; std::copy(&readData[countRead],&readData[0]+nelements,¤t[0]); countRead += elementsInLastRow; } // what to do with complete rows. if firstElem == 1 the else { if (firstElem == 1 || (firstElem > 1 && i > firstRow) ) { current = readData[std::slice(vectorSize*(ii-firstRow)+ elementsInFirstRow,vectorSize,1)]; ++ii; ++i; countRead += vectorSize; } else { if (i == firstRow) { std::copy(&readData[0],&readData[0]+elementsInFirstRow, ¤t[firstElem]); countRead += elementsInFirstRow; ++i; ++ii; } } } } } template <> void ColumnVectorData >::writeFixedArray (complex* data, long nElements, long nRows, long firstRow, complex* nullValue) { int status(0); // check for sanity of inputs, then write to file. // this function writes only complete rows to a table with // fixed width rows. if ( nElements < nRows*static_cast(repeat()) ) { #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif msgStr << " input array size: " << nElements << " required " << nRows*repeat(); #ifdef SSTREAM_DEFECT msgStr << std::ends; #endif String msg(msgStr.str()); throw Column::InsufficientElements(msg); } FITSUtil::auto_array_ptr realData(new float[2*nElements]); for (int j = 0; j < nElements; ++j) { realData[2*j] = data[j].real(); realData[2*j+1] = data[j].imag(); } if (fits_write_col_cmp(fitsPointer(),index(),firstRow, 1,nElements,realData.get(),&status)) throw FitsError(status); parent()->updateRows(); } template <> void ColumnVectorData >::writeFixedArray (complex* data, long nElements, long nRows, long firstRow, complex* nullValue) { int status(0); // check for sanity of inputs, then write to file. // this function writes only complete rows to a table with // fixed width rows. if ( nElements < nRows*static_cast(repeat()) ) { #ifdef SSTREAM_DEFECT std::ostrstream msgStr; #else std::ostringstream msgStr; #endif msgStr << " input array size: " << nElements << " required " << nRows*repeat(); String msg(msgStr.str()); throw Column::InsufficientElements(msg); } FITSUtil::auto_array_ptr realData(new double[2*nElements]); for (int j = 0; j < nElements; ++j) { realData[2*j] = data[j].real(); realData[2*j+1] = data[j].imag(); } if (fits_write_col_dblcmp(fitsPointer(),index(),firstRow, 1,nElements,realData.get(),&status)) throw FitsError(status); parent()->updateRows(); } #endif #endif #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void ColumnVectorData >::doWrite (std::complex* data, long row, long rowSize, long firstElem, std::complex* nullValue ) { int status(0); FITSUtil::auto_array_ptr carray( new float[2*rowSize]); for ( long j = 0 ; j < rowSize; ++ j) { carray[2*j] = data[j].real(); carray[2*j + 1] = data[j].imag(); } if (fits_write_col_cmp(fitsPointer(),index(),row,firstElem,rowSize, carray.get(),&status)) throw FitsError(status); } template <> void ColumnVectorData >::doWrite (std::complex* data, long row, long rowSize, long firstElem, std::complex* nullValue ) { int status(0); FITSUtil::auto_array_ptr carray( new double[2*rowSize]); for ( long j = 0 ; j < rowSize; ++ j) { carray[2*j] = data[j].real(); carray[2*j + 1] = data[j].imag(); } if (fits_write_col_dblcmp(fitsPointer(),index(),row,firstElem,rowSize, carray.get(),&status)) throw FitsError(status); } #endif } CCfits/ExtHDU.cxx0000644000225700000360000001647611656560561013375 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include using std::ostrstream; #else #include #endif #include // Column #include "Column.h" // FITS #include "FITS.h" // FITSBase #include "FITSBase.h" // ExtHDU #include "ExtHDU.h" // FitsError #include "FitsError.h" // FITSUtil #include "FITSUtil.h" namespace CCfits { // Class CCfits::ExtHDU::WrongExtensionType ExtHDU::WrongExtensionType::WrongExtensionType (const String& msg, bool silent) : FitsException("Fits Error: wrong extension type: ",silent) { addToMessage(msg); std::cerr << msg << '\n'; } // Class CCfits::ExtHDU String ExtHDU::s_missHDU = "$HDU$"; ExtHDU::ExtHDU(const ExtHDU &right) : HDU(right), m_pcount(right.m_pcount), m_gcount(right.m_gcount), m_version(right.m_version), m_xtension(right.m_xtension), m_name(right.m_name) { } ExtHDU::ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int version) : HDU(p), m_pcount(0), m_gcount(1), m_version(version), m_xtension(xtype), m_name(hduName) { int status = 0; int htype = xtype; int number = -1; if ( hduName.substr(0,5) == s_missHDU ) { #ifdef SSTREAM_DEFECT std::istrstream fakeName( hduName.substr(5).c_str() ); #else std::istringstream fakeName(hduName.substr(5)); #endif fakeName >> number; } else { fits_get_hdu_num(fitsPointer(),&number); // Retrieve the HDU number. checkXtension tests against this. index(number-1); } // check we got the right kind of extension, since otherwise // we cannot proceed. CheckXtension throws an exception if // not, which is caught by the concrete class ctors. checkXtension(); } ExtHDU::ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector& axes, int version) : HDU(p, bitpix, naxis, axes), m_pcount(0), m_gcount(1), m_version(version), m_xtension(xtype), m_name(hduName) { // writing constructor. Extension must be supplied // since we must know what type of object to instantiate. } ExtHDU::ExtHDU (FITSBase* p, HduType xtype, int number) : HDU(p), m_pcount(0), m_gcount(1), m_version(1), m_xtension(xtype), m_name("") { // set current HDU number. This is required for makeThisCurrent. index(number+1); makeThisCurrent(); // set name and version. readHduName(fitsPointer(),number,m_name,m_version); // finally, check we got the right type of extension and throw an // exception otherwise. checkXtension(); } ExtHDU::~ExtHDU() { } void ExtHDU::checkXtension () { int status=0; int hType = -1; if (fits_get_hdu_type(fitsPointer(), &hType, &status) ) throw FitsError(status); if (HduType(hType) != m_xtension) throw HDU::InvalidExtensionType (" extension type mismatch between request and disk file ",true); } void ExtHDU::readHduName (const fitsfile* fptr, int hduIndex, String& hduName, int& hduVersion) { // get the name of the extension. If there is neither a HDUNAME // or an EXTNAME, make a name key for the multimap from the HDU number. int status=0; FITSUtil::auto_array_ptr pHduCstr(new char[FLEN_KEYWORD]); char* hduCstr = pHduCstr.get(); int htype = -1; String key = "EXTNAME"; char* extnm = const_cast(key.c_str()); // C requires fptr to be non-const, because the fitsfile pointer // saves the file state. fitsfile* cfptr = const_cast(fptr); if (fits_movabs_hdu(cfptr,hduIndex+1,&htype,&status) != 0) throw FitsError(status); status = fits_read_key_str(cfptr, extnm, hduCstr, NULL, &status); if (status != 0) { strcpy(hduCstr,""); status = 0; key = String("HDUNAME"); extnm = const_cast(key.c_str()); status = fits_read_key_str(cfptr, extnm, hduCstr, NULL, &status); } if (strlen(hduCstr) > 0) { hduName = String(hduCstr); long hduV = 1; hduVersion = hduV; // get the version number. key = String("EXTVER"); char* extv = const_cast(key.c_str()); status = fits_read_key_lng(cfptr, extv, &hduV, NULL, &status); if (status == 0) hduVersion = hduV; } else { #ifdef SSTREAM_DEFECT std::ostrstream fakeKey; #else std::ostringstream fakeKey; #endif fakeKey << s_missHDU << hduIndex; #ifdef SSTREAM_DEFECT msg << std::ends; #endif hduName = fakeKey.str(); } } void ExtHDU::makeThisCurrent () const { HDU::makeThisCurrent(); String tname(""); int tvers = 0; ExtHDU::readHduName(fitsPointer(),index(),tname,tvers); parent()->currentExtensionName() = tname; } Column& ExtHDU::column (const String& colName, bool caseSensitive) const { // if not overridden, throw an exception. // there might be a similar default implementation for function // that returns image data. throw WrongExtensionType(name()); } void ExtHDU::setColumn (const String& colname, Column* value) { throw WrongExtensionType(name()); } Column& ExtHDU::column (int colIndex) const { throw WrongExtensionType(name()); } long ExtHDU::rows () const { String msg(" rows function can only be called for Tables - HDU: "); msg += name(); throw WrongExtensionType(msg); } void ExtHDU::checkExtensionType () const { // throw if not overridden. throw WrongExtensionType(name()); } void ExtHDU::addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit, long decimals, size_t columnNumber) { // overridden separately in AsciiTable and BinTable throw WrongExtensionType(name()); } void ExtHDU::deleteColumn (const String& columnName) { // overridden in Table. throw WrongExtensionType(name()); } int ExtHDU::getVersion () { // the version keyword is not stored as a keyword object but // as a data attribute so we don't "addKeyword" but fits_read_key instead. static char EXTVER[] = {"EXTVER"}; int status(0); long vers(1); fits_read_key_lng(fitsPointer(),EXTVER,&vers,0,&status); if (status == 0) { m_version = vers; } else { if (status == KEY_NO_EXIST) { m_version = 1; } else throw FitsError(status); } return m_version; } long ExtHDU::getRowsize () const { // This should be overridden for Table classes, otherwise throw. throw WrongExtensionType("getRowsize can only be called for Table files"); return 0; } int ExtHDU::numCols () const { // overridden in Table. throw WrongExtensionType(name()); return 0; } const std::map& ExtHDU::column () const { // overridden in Table. throw WrongExtensionType(name()); } bool ExtHDU::isCompressed() const { int status=0; checkExtensionType(); return static_cast(fits_is_compressed_image(fitsPointer(), &status)); } // Additional Declarations } // namespace CCfits CCfits/FITS.cxx0000644000225700000360000013227111470265345013025 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // Table #include "Table.h" // PHDU #include "PHDU.h" // FITSBase #include "FITSBase.h" // PrimaryHDU #include "PrimaryHDU.h" // FITS #include "FITS.h" #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include #else #include #endif using std::endl; using std::cout; using std::cerr; #include #include namespace CCfits { // Class CCfits::FITS::NoSuchHDU FITS::NoSuchHDU::NoSuchHDU (const String& diag, bool silent) : FitsException("FITS Error: Cannot read HDU in FITS file: ",silent) { //! Exception to be thrown by failed seek operations addToMessage(diag); if ( FITS::verboseMode() || !silent) std::cerr << diag << "\n"; } // Class CCfits::FITS::OperationNotSupported FITS::OperationNotSupported::OperationNotSupported (const String& msg, bool silent) : FitsException("FITS Error: Operation not supported: ",silent) { addToMessage(msg); if ( FITS::verboseMode() || !silent) std::cerr << msg << "\n"; } // Class CCfits::FITS::CantOpen FITS::CantOpen::CantOpen (const String& diag, bool silent) : FitsException("FITS Error: Cannot open file ",silent) { addToMessage(diag); if ( FITS::verboseMode() || !silent) std::cerr << diag << "\n"; } // Class CCfits::FITS::CantCreate FITS::CantCreate::CantCreate (const String& diag, bool silent) : FitsException(string("FITS Error: Cannot create file "),silent) { addToMessage(diag); if ( FITS::verboseMode() || !silent) std::cerr << diag << '\n'; } // Class CCfits::FITS bool FITS::s_verboseMode = false; FITS::FITS (const String &name, RWmode mode, bool readDataFlag, const std::vector& primaryKeys) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,mode)); m_FITSImpl = apBase.get(); if (mode == Read) { // If name includes extended file syntax, the initial hdu position // upon opening is not necessarily the primary header. int hduIdx = open(mode); // Read the primary header. This also moves the current hdu // to the primary. read(readDataFlag,primaryKeys); readExtensions(readDataFlag); // If extended syntax asked for a particular extension, // restore it as the current hdu position. if (hduIdx) { // This also calls makeThisCurrent. extension(hduIdx); } } else { // create a primary header in the receiving structure. // PHDU has a private constructor and must be instantiated here only. // this ensures that every FITS object has exactly one PHDU. if (create() ) { // create returns true if the file is either new // or overwritten, in which case we need to create // and write a new primary with BITPIX=8 and NAXIS=0. // Also if in here, no extended syntax was used. HDUCreator makePrimary(m_FITSImpl); pHDU(makePrimary.createImage(8,0,std::vector())); } else { // The create call above will have opened the file in rw mode. read(readDataFlag,primaryKeys); readExtensions(readDataFlag); // For backwards compatibility, reposition the current HDU to // be the primary. (In earlier versions, only the primary was // ever read when opening a pre-existing file in Write mode.) resetPosition(); } } apBase.release(); } FITS::FITS (const String &name, RWmode mode, const string &hduName, bool readDataFlag, const std::vector& hduKeys, const std::vector& primaryKey, int version) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,mode)); m_FITSImpl = apBase.get(); int extSyntHdu = open(mode); // create and read the Primary: assume here that a single HDU other than // the primary is requested, so don't read primary data. We can however // read some header info from the primary if (optionally) specified. read(false,primaryKey); read(hduName, readDataFlag, hduKeys,version); if (extSyntHdu && currentExtension().index() != extSyntHdu) { string msg("Hdu requested with extended syntax "); msg += "differs from that requested by name argument."; throw OperationNotSupported(msg); } apBase.release(); } FITS::FITS (const String &name, RWmode mode, const std::vector& hduNames, bool readDataFlag, const std::vector& primaryKey) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,mode)); m_FITSImpl = apBase.get(); int extSyntHdu = open(mode); read(readDataFlag,primaryKey); read(hduNames,readDataFlag); if (extSyntHdu) { // If hdu specified in extension is not included in // hduNames, throw. bool savVerbose = s_verboseMode; s_verboseMode = false; try { extension(extSyntHdu); } catch (...) { s_verboseMode = savVerbose; string msg("Hdu requested with extended syntax was not included "); msg += "in FITS constructor hduNames array."; throw OperationNotSupported(msg); } s_verboseMode = savVerbose; } apBase.release(); } FITS::FITS (const String& fileName, const FITS& source) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(fileName,Write)); m_FITSImpl = apBase.get(); if (create() ) { // create returns true if the file is either new // or overwritten, in which case we need to create // and write a new primary which is a clone of the source PHDU. pHDU(static_cast(source.pHDU().clone(m_FITSImpl))); } else { // Assume file already exists and user is not attempting to // overwrite with the '!' symbol. throw CantCreate(fileName); } int status(0); source.pHDU().makeThisCurrent(); if (fits_copy_hdu(source.fitsPointer(),m_FITSImpl->fptr(),0,&status)) throw FitsError(status); apBase.release(); } FITS::FITS (const String &name, RWmode mode, const std::vector& hduNames, const std::vector >& hduKeys, bool readDataFlag, const std::vector& primaryKeys, const std::vector& hduVersions) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,mode)); m_FITSImpl = apBase.get(); int extSyntHdu = open(mode); // read the primary header and read the data if readDataFlag is set. read(readDataFlag,primaryKeys); read(hduNames, hduKeys, readDataFlag, hduVersions); if (extSyntHdu) { // If hdu specified in extension is not included in // hduNames, throw. bool savVerbose = s_verboseMode; s_verboseMode = false; try { extension(extSyntHdu); } catch (...) { s_verboseMode = savVerbose; string msg("Hdu requested with extended syntax was not included "); msg += "in FITS constructor hduNames array."; throw OperationNotSupported(msg); } s_verboseMode = savVerbose; } apBase.release(); } FITS::FITS (const String& name, int bitpix, int naxis, long *naxes) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,Write)); m_FITSImpl = apBase.get(); std::vector va_naxes(naxis); std::copy(&naxes[0],&naxes[naxis],va_naxes.begin()); if (!create()) { // Assume file already exists and user did not specify overwrite // with the '!' symbol. throw CantCreate(name); } // create an HDU factory. HDUCreator makePrimary(m_FITSImpl); // set the PrimaryHDU. bitpix will determine the data type. pHDU(makePrimary.createImage(bitpix,naxis,va_naxes)); // If file name is explicitly indicating image compression, // pHDU won't hold the image. Therefore need to create an // extension here. string::size_type compressLoc = FITSUtil::checkForCompressString(m_FITSImpl->name()); if (compressLoc != string::npos) { HDUCreator newImage(m_FITSImpl); ExtHDU* newHDU = newImage.createImage(string("NoName"),bitpix, naxis, va_naxes, 1); addExtension(newHDU); string actualFileName(m_FITSImpl->name().substr(0, compressLoc)); m_FITSImpl->name() = actualFileName; m_FITSImpl->currentCompressionTileDim(naxis); } apBase.release(); } FITS::FITS (const string &name, RWmode mode, int hduIndex, bool readDataFlag, const std::vector& hduKeys, const std::vector& primaryKey) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,mode)); m_FITSImpl = apBase.get(); int extSyntHdu = open(mode); if (extSyntHdu && extSyntHdu != hduIndex) { string msg("FITS constructor hduIndex conflicts with HDU requested by extended syntax."); throw OperationNotSupported(msg); } // read the primary header. Allowing the user to read the primary data // and optional keys costs nothing here, although the likely use of this // constructor is to read a specified HDU from a file other than the Primary. read(readDataFlag,primaryKey); read(hduIndex,readDataFlag,hduKeys); apBase.release(); } FITS::FITS (const String &name, RWmode mode, const std::vector& searchKeys, const std::vector &searchValues, bool readDataFlag, const std::vector& hduKeys, const std::vector& primaryKey, int version) : m_FITSImpl(0) { std::auto_ptr apBase(new FITSBase(name,mode)); m_FITSImpl = apBase.get(); int extSyntHdu = open(mode); // read the primary header and read the data if readDataFlag is set. // create returns a PHDU if the index is 0. read(false,primaryKey); // create a primary header in the receiving structure. // PHDU has a private constructor and must be instantiated here only. // this ensures that every FITS object has exactly one PHDU read(searchKeys, searchValues, readDataFlag, hduKeys, version); apBase.release(); } FITS::~FITS() { destroy(); } void FITS::unmapExtension (ExtHDU& doomed) { const string& doomedName = doomed.name(); if ( extension().count(doomedName) == 1 ) { ExtMapIt x = extensionMap().lower_bound(doomedName); delete (*x).second; extensionMap().erase(x); } else { std::pair named = extensionMap().equal_range(doomedName); ExtMapIt x = named.first; while ( x != named.second) { if ( (*x).second->version() == doomed.version()) { delete (*x).second; extensionMap().erase(x); break; } ++x; } } } void FITS::clearErrors () { fits_clear_errmsg(); } void FITS::deleteExtension (const String& doomed, int version) { int status(0); ExtHDU& d = extension(doomed,version); // throws NoSuchHDU if it's not there. const int removeIdx = d.index(); std::vector trailingExts; ExtMapConstIt itExtMap = m_FITSImpl->extension().begin(); ExtMapConstIt itExtMapEnd = m_FITSImpl->extension().end(); while (itExtMap != itExtMapEnd) { if (itExtMap->second->index() > removeIdx) trailingExts.push_back(itExtMap->second); ++itExtMap; } if (fits_delete_hdu(fitsPointer(),0,&status)) throw FitsError(status); unmapExtension(d); // Reindex the extensions that follow the deleted. for (size_t i=0; iindex(trailingExts[i]->index()-1); } int FITS::nextVersionNumber (const String& inputName) const { int n(0); int status(0); int current(0); if (fits_get_num_hdus(fitsPointer(),&n,&status)) throw FitsError(status); fits_get_hdu_num(fitsPointer(),¤t); int count(0); for (int j = 2; j <= n; ++j) { if (nameOfUnmapped(j) == inputName) ++count; } if (fits_movabs_hdu(fitsPointer(),current,0,&status)) throw FitsError(status); return count+1; } void FITS::read (bool readDataFlag, const std::vector& keys) { // Move to and create primary header object. HDUCreator create(m_FITSImpl); int status=0, hduType=0; if (fits_movabs_hdu(m_FITSImpl->fptr(), 1, &hduType, &status)) throw FitsError(status); pHDU(static_cast(create.getHdu(0,readDataFlag,keys))); } void FITS::read (const String &hduName, bool readDataFlag, const std::vector &keys, int version) { // grab the requested extension if present. If not, create an ExtHDU object and add it, if it // exists in the file. The first clause copes with the results from the ctor that reads the // entire file for HDUs, the second when adding a new HDU from a file which selected HDUs were // read on construction. ExtHDU* requested = checkAlreadyRead(0, hduName, version); if (!requested) { HDUCreator create(m_FITSImpl); try { // primary is always false here. ExtHDU* newHDU = static_cast(create.getHdu(hduName, readDataFlag, keys, false, version)); // add a specified HDU in the file to the list of extensions. addExtension(newHDU); } catch ( ... ) { std::ostringstream msg; msg << hduName << " with version " << version; throw NoSuchHDU(msg.str()); } } else { requested->makeThisCurrent(); requested->readData(readDataFlag,keys); } } void FITS::read (const std::vector &hduNames, bool readDataFlag) { const size_t nHdu = hduNames.size(); const std::vector dummy; for (size_t i=0; i &hduNames, const std::vector > &keys, bool readDataFlag, const std::vector& hduVersions) { const size_t nHdu = hduNames.size(); const size_t nKeys = keys.size(); const size_t nVersions = hduVersions.size(); const std::vector dummy; for (size_t i=0; i& hduKeys = (i < nKeys) ? keys[i] : dummy; int version = (i < nVersions) ? hduVersions[i] : 1; try { read(hduNames[i], readDataFlag, hduKeys, version); } catch (NoSuchHDU&) { continue; } } } void FITS::read (int hduIndex, bool readDataFlag, const std::vector &keys) { if (hduIndex == 0) { std::cerr << "Primary header is always read, doesn't need to be requested." << std::endl; return; } ExtHDU* requested = checkAlreadyRead(hduIndex); if (!requested) { HDUCreator create(m_FITSImpl); try { ExtHDU* newHDU = static_cast(create.getHdu(hduIndex,readDataFlag,keys)); // add a specified HDU in the file to the list of extensions. addExtension(newHDU); } catch ( ... ) { std::ostringstream msg; msg << "Error: Could not read extension: " << hduIndex; throw NoSuchHDU(msg.str()); } } else { requested->makeThisCurrent(); requested->readData(readDataFlag,keys); } } void FITS::read (const std::vector& searchKeys, const std::vector &searchValues, bool readDataFlag, const std::vector& hduKeys, int version) { int totalHDUs = 1; int status = 0; if (fits_get_num_hdus(m_FITSImpl->fptr(),&totalHDUs,&status) != 0) throw FitsError(status); HDUCreator createTest(m_FITSImpl); int hduIndex; // there's one less extension than total HDUs! bool gotIt = false; for (hduIndex = 1; hduIndex < totalHDUs; hduIndex++ ) { try { std::auto_ptr testHDU(static_cast(createTest.getHdu(hduIndex,false,searchKeys))); std::vector testKeys(searchKeys); std::vector testResults(searchKeys.size(),""); // Missing key exceptions are caught and handled at a lower level. // The result will be a smaller sized testKeys vector. testHDU->readKeys(testKeys,testResults); using namespace FITSUtil; // first: we need to have matched as many keys as were input. if (testKeys.size() == searchKeys.size()) { // now go through and check the values that were read // against the input value list. size_t k = 0; gotIt = true; std::vector::const_iterator vi(searchValues.begin()); std::vector::const_iterator viEnd(searchValues.end()); while (vi != viEnd && gotIt) { if (vi->length()) { // we can at least ignore whitespace size_t first (testResults[k].find_first_not_of(" \t")); size_t last (testResults[k].find_last_not_of(" \t")); gotIt = (lowerCase(testResults[k].substr(first,last+first+1)) == lowerCase(*vi)); } ++k,++vi; } if (gotIt) { if (version == 1) break; else { int extver = 1; #ifdef TEMPLATE_AMBIG_DEFECT testHDU->readKeyMS("EXTVER",extver); #else testHDU->readKey("EXTVER",extver); #endif if (extver == version) break; else gotIt = false; } } } } catch (HDU::NoSuchKeyword) { // catches the case where the version is requested but there // is no version key present. createTest.reset(); continue; } catch (FitsError) { createTest.reset(); continue; } catch (...) { throw; } createTest.reset(); } if (gotIt) { String extname(""); int extver = 1; ExtHDU::readHduName(m_FITSImpl->fptr(),hduIndex,extname,extver); read(extname,readDataFlag,hduKeys,extver); currentExtensionName(extname); } else { #ifdef SSTREAM_DEFECT std::ostrstream err; #else std::ostringstream err; #endif err << "Error: Unable to find extension containing keywords "; std::copy(searchKeys.begin(),searchKeys.end(), std::ostream_iterator(err," ")); err << "\nwith required values and version number "; #ifdef SSTREAM_DEFECT err << std::ends; #endif throw NoSuchHDU(err.str()); } } int FITS::open (RWmode mode) { int status=0; // unused: bool silentMode = true; status = fits_open_file(&m_FITSImpl->fptr(), m_FITSImpl->name().c_str(), mode, &status); if (status != 0) { if (status == FILE_NOT_OPENED) throw CantOpen(m_FITSImpl->name()); else throw FitsError(status); } int currentHDU=0; fits_get_hdu_num(m_FITSImpl->fptr(), ¤tHDU); // convert to 0-based currentHDU -= 1; return currentHDU; } bool FITS::create () { int status(0); // if the filename indicates overwrite (starts with a '!' - see // fits_create_file documentation) // or the filename does not correspond to an existing file, create file. // otherwise throw an overwrite exception. // if the file is writeable and the name doesn't begin with '!' // we want read/write access so should use fits_open_file, // otherwise create it. We let cfitsio worry about what // happens if open-with-write-mode or create fails. // but we must know whether the file exists. string fName = m_FITSImpl->name(); if (m_FITSImpl->name()[0] == '!') { m_FITSImpl->name() = fName.substr(1); } // Create a new file, the '!' is processed by ffinit. // If '[]' extended syntax is used this returns an error of // one kind or another (which includes FILE_NOT_CREATED if // the file already exists). fits_create_file(&m_FITSImpl->fptr(),fName.c_str(),&status); if ( status ) { // The open function must succeed, else we're left with // a NULL m_FITSImpl->fptr() with which we can't continue. try { if (status == FILE_NOT_CREATED ) { string warn(" File already exists: "); warn += fName; warn += " attempting to open existing file"; if (verboseMode()) std::cerr << warn << '\n'; open(Write); } else { throw CantCreate(fName); } } catch (FitsException&) { throw; } return false; } return true; } int FITS::close () throw () { int status=0; if (m_FITSImpl == 0) return 0; status = fits_close_file(m_FITSImpl->fptr(), &status); if (!status) m_FITSImpl->fptr() = 0; return status; } const ExtHDU& FITS::extension (int i) const { const ExtMap& ext = m_FITSImpl->extension(); ExtMapConstIt hduByNum = ext.begin(); ExtMapConstIt endOfList = ext.end(); while (hduByNum != endOfList) { if ((*hduByNum).second->index() == i) break; ++hduByNum; } if (hduByNum == endOfList) { #ifdef SSTREAM_DEFECT std::strstream msg; #else std::ostringstream msg; #endif msg << "No HDU with index " << i << '\n'; throw NoSuchHDU(msg.str()); } (*hduByNum).second->makeThisCurrent(); return *((*hduByNum).second); } std::ostream & FITS::put (std::ostream &s) const { s << "FITS:: Primary HDU: \n" ; s << *m_FITSImpl->pHDU() << endl; s << "FITS:: Extensions: \n"; const ExtMap& ext = m_FITSImpl->extension(); ExtMapConstIt endOfList = ext.end(); for (ExtMapConstIt it = ext.begin(); it != endOfList; ++it) s << *((*it).second) << endl; return s; } fitsfile* FITS::fitsPointer () const { return m_FITSImpl->fptr(); } ExtHDU& FITS::extension (int i) { ExtMap& ext = m_FITSImpl->extension(); ExtMapIt hduByNum = ext.begin(); ExtMapIt endOfList = ext.end(); while (hduByNum != endOfList) { if ((*hduByNum).second->index() == i) break; ++hduByNum; } if (hduByNum == endOfList) { #ifdef SSTREAM_DEFECT std:: strstream msg; #else std::ostringstream msg; #endif msg << "No HDU with index " << i; throw NoSuchHDU(msg.str()); } (*hduByNum).second->makeThisCurrent(); return *((*hduByNum).second); } const ExtHDU& FITS::extension (const String& hduName, int version) const { return extbyVersion(hduName,version); } const PHDU& FITS::pHDU () const { return *m_FITSImpl->pHDU(); } PHDU& FITS::pHDU () { return *m_FITSImpl->pHDU(); } ExtHDU& FITS::extbyVersion (const String& hduName, int version) const { // hey! remember it's a multimap and we need to work a little harder! // first, for convenience... // how many extensions with name hduName? ExtMap& ext = m_FITSImpl->extension(); ExtMap::size_type n = ext.count(hduName); if (n == 0) { #ifdef SSTREAM_DEFECT std::strstream msg; #else std::ostringstream msg; #endif msg << "No HDU with name " << hduName; if (version) msg << " and version " << version; throw NoSuchHDU(msg.str()); } // ignore version checking if there is only one version present. ExtMapIt c = ext.lower_bound(hduName); if ( n > 1) { ExtMapIt last = ext.upper_bound(hduName); while ( c != last ) { if ((*c).second->version() == version) break; c++; } if ( c == last ) { #ifdef SSTREAM_DEFECT std::ostrstream msg; #else std::ostringstream msg; #endif msg << "No HDU with name " << hduName; if (version != 1) msg << " and version " << version; #ifdef SSTREAM_DEFECT msg << std::ends; #endif throw NoSuchHDU(msg.str()); } } (*c).second->makeThisCurrent(); return *((*c).second); } void FITS::pHDU (PHDU* value) { m_FITSImpl->pHDU() = value; } void FITS::readExtensions (bool readDataFlag) { HDUCreator create(m_FITSImpl); int status = 0; int numHDUs = 0; if (fits_get_num_hdus(m_FITSImpl->fptr(),&numHDUs,&status) != 0) throw FitsError(status); // Not clearly exception safe : revisit!!! // Unused: ExtHDU* newExt = 0; // there's one less Extension than HDUs. Here, if there are 5 HDUs there are 4 extensions, // and this loop should execute 4 times. HDU index 1 is the first extension, not the primary. for (int i = 1; i < numHDUs ; i++) { addExtension(static_cast(create.getHdu(i,readDataFlag))); create.reset(); } } Table* FITS::addTable (const String& hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit, HduType type, int version) { ExtHDU* current(0); size_t N(extension().count(hduName)); std::pair matches(extensionMap().equal_range(hduName)); if ( N > 0 ) { ExtMapIt s(matches.first); while ( s != matches.second ) { current = s->second; if ( current->version() == version && dynamic_cast(current) ) { std::cerr << " Table Extension " << hduName << " with version " << version << " already exists " << " returning token for existing version \n"; } ++s; } } if ( !current ) { HDUCreator newTable(m_FITSImpl); Table* newHDU = static_cast(newTable.createTable(hduName, type, rows, columnName, columnFmt, columnUnit, version)); current = addExtension(newHDU); } return static_cast(current); } ExtHDU* FITS::addImage (const String& hduName, int bpix, std::vector& naxes, int version) { ExtHDU* current(0); size_t N(extension().count(hduName)); std::pair matches(extensionMap().equal_range(hduName)); if ( N > 0 ) { ExtMapIt s(matches.first); while (!current && s != matches.second ) { if ( s->second->version() == version ) { std::cerr << " Extension " << hduName << " with version " << version << " already exists " << " returning token for existing version \n"; current = s->second; } ++s; } } if (!current) { HDUCreator newImage(m_FITSImpl); ExtHDU* newHDU = newImage.createImage(hduName, bpix, naxes.size(), naxes, version); current = addExtension(newHDU); if (getCompressionType()) { if (naxes.size() > m_FITSImpl->currentCompressionTileDim()) { m_FITSImpl->currentCompressionTileDim(naxes.size()); } } } return current; } void FITS::destroy () throw () { // close the file associated with this FITS object if it is open. // close () can't throw because it only calls cfitsio's close function, // so error messages are handled here. // destroyPrimary and destroyExtensions call delete which is guaranteed nothrow, // destroyExtensions also calls multimap::erase close(); // nullify and delete memory allocated for primary HDU pointer // delete memory allocated for Extensions and clear the map. delete m_FITSImpl; // nullify the fitsfile pointer, so that it passes "deallocated" tests // such as: if ( x.fptr() == 0 ) m_FITSImpl = 0; } void FITS::flush () { int status (0); if (fits_flush_file(m_FITSImpl->fptr(),&status)) throw FitsError(status); } const String& FITS::currentExtensionName () const { return m_FITSImpl->currentExtensionName(); } ExtHDU* FITS::addExtension (ExtHDU* ext) { int status(0); const String& extName = ext->name(); ExtMap::value_type addHDUEntry(extName,ext); m_FITSImpl->currentExtensionName() = extName; ExtMapIt added = m_FITSImpl->extension().insert(addHDUEntry); if (fits_set_hdustruc(fitsPointer(),&status)) throw FitsError(status); (*added).second->index(fitsPointer()->HDUposition); return (*added).second; } void FITS::swap (FITS& right) { FITSUtil::swap(m_FITSImpl,right.m_FITSImpl); } const ExtMap& FITS::extension () const { return m_FITSImpl->extension(); } void FITS::resetPosition () { int status(0); if (fits_movabs_hdu(fitsPointer(),1,0,&status)) throw FitsError(status); m_FITSImpl->currentExtensionName() = string(""); } void FITS::currentExtensionName (const String& extName) { m_FITSImpl->currentExtensionName() = extName; } const String& FITS::name () const { return m_FITSImpl->name(); } void FITS::copy (const HDU& source) { int status(0); bool isOK = true; const ExtHDU* testSource = dynamic_cast(&source); if (!testSource) { // If not an ExtHDU, source must be a PHDU. At the moment there's // no way to convert it to an ExtHDU, which is necessary to insert // it into the extension map. std::cerr << "Cannot copy a primary HDU of one file into an extension of another.\n"; return; } HDU* hduCopy = source.clone(m_FITSImpl); std::auto_ptr extCopy(static_cast(hduCopy)); const String& hduName = extCopy->name(); size_t N = extension().count(hduName); std::pair matches(extensionMap().equal_range(hduName)); if ( N > 0 ) { ExtMapIt s(matches.first); while ( s != matches.second ) { ExtHDU* current = s->second; if (current->version() == extCopy->version()) { std::cerr << " Extension " << hduName << " with version " << extCopy->version() << " already exists.\n "; isOK = false; break; } ++s; } } if (isOK) { source.makeThisCurrent(); if (fits_copy_hdu(source.fitsPointer(),fitsPointer(),0,&status)) throw FitsError(status); // the fits file has been updated, although the data have not // been read. addExtension(extCopy.get()); Table* tableCopy = dynamic_cast(extCopy.get()); extCopy.release(); if (!tableCopy) { // Assume this is copying an image if (getCompressionType()) { if (extCopy->axes() > m_FITSImpl->currentCompressionTileDim()) { m_FITSImpl->currentCompressionTileDim(extCopy->axes()); } } } } } Table& FITS::filter (const String& expression, ExtHDU& inputTable, bool overwrite, bool readData) { // there are three cases to deal with: // a) inputHDU belongs to a different file than *this // In this case the selectRows call will simply write to this. // b) inputHDU belongs to *this and // i) outHDUVersion is different from any version key in inputHDU. // ii) outHDUVersion matches the version key in inputHDU or neither // inputHDU has a version key nor outHDUVersion is specified. // In case i) a new HDU with new version is written. // In case ii) the instruction is to overwrite inputHDU with the filtered version. // in this case the HDU is marked as "unread" by deleting it from the list of // HDUs in *this. static char EXTVER[] = "EXTVER"; try { Table& table = dynamic_cast(inputTable); fitsfile* inputFitsPointer = inputTable.fitsPointer() ; FITSUtil::auto_array_ptr pName1(new char[FLEN_FILENAME]); FITSUtil::auto_array_ptr pName2(new char[FLEN_FILENAME]); String tableName = table.name(); int tableVersion(table.version()); char* cExpression = const_cast(expression.c_str()); int status(0); // check if the two file names are the same. Checking the pointers // are the same doesn't allow for the possibility that there are // two views of the same file. if (fits_file_name(inputFitsPointer,pName1.get(),&status)) throw FitsError(status); if (fits_file_name(fitsPointer(),pName2.get(),&status)) throw FitsError(status); const String& infile = String(pName1.get()); const String& outfile = String(pName2.get()); // store list of what has been read so far so it can be read back. std::vector keyStore(table.keyWord().size() + table.column().size()); std::map::const_iterator keyIt(table.keyWord().begin()); std::map::const_iterator keyItEnd(table.keyWord().end()); std::map::const_iterator colIt(table.column().begin()); std::map::const_iterator colItEnd(table.column().end()); size_t count(0); if (!table.keyWord().empty()) { while ( keyIt != keyItEnd ) { keyStore[count] = (*keyIt).first; ++keyIt, ++count; } } if ( !table.column().empty()) { while ( colIt != colItEnd ) { keyStore[count] = (*colIt).first; ++colIt, ++count; } } int revisedVersion(tableVersion); if (infile == outfile) { if (overwrite) { // delete the current HDU from the set of "mapped" // since the contents are being changed. Its header // will be remapped afterward, and if readData is // set to true then the resulting filtered data is // also read back. unmapExtension(inputTable); } else { revisedVersion = nextVersionNumber(tableName); // create a new header from the source and set it to be the // current HDU cloneHeader(inputTable); if (fits_write_key_lng(fitsPointer(),EXTVER,revisedVersion,0,&status)) throw FitsError(status); } if (fits_select_rows(inputFitsPointer,fitsPointer(),cExpression,&status)) throw FitsError(status); if (fits_flush_file(fitsPointer(),&status)) throw FitsError(status); } else { // create a new header from the source and set it to be the // current HDU revisedVersion = nextVersionNumber(tableName); cloneHeader(inputTable); if (fits_select_rows(inputFitsPointer,fitsPointer(),cExpression,&status)) throw FitsError(status); if (fits_write_key_lng(fitsPointer(),EXTVER,revisedVersion,0,&status)) throw FitsError(status); if (fits_flush_file(fitsPointer(),&status)) throw FitsError(status); } HDUCreator create(m_FITSImpl); ExtHDU* readBack = static_cast(create.getHdu(tableName,readData,keyStore, false,revisedVersion)); return static_cast(*addExtension(readBack)); } catch (std::bad_cast) { throw OperationNotSupported(" filtering rows from an image "); } // output } ExtMap& FITS::extensionMap () { return m_FITSImpl->extension(); } ExtHDU& FITS::currentExtension () { // return the current extension. Must have been previously instantiated by // CCfits. int num(0); fits_get_hdu_num(fitsPointer(),&num); // extensions start counting at 1, HDU indices at 2. return extension(num - 1); } String FITS::nameOfUnmapped (int hduNum) const { // return the name of HDUs not yet mapped. static char EXTNAME[] = "EXTNAME"; static char HDUNAME[] = "HDUNAME"; String retVal(""); int current(0); int status(0); fits_get_hdu_num(fitsPointer(),¤t); if (fits_movabs_hdu(fitsPointer(),hduNum,0,&status)) throw FitsError(status); FITSUtil::auto_array_ptr pTestKey(new char[FLEN_VALUE]); char* testKey = pTestKey.get(); if (fits_read_key_str(fitsPointer(),EXTNAME,testKey,0,&status) == 0) { retVal = String(testKey); } else { if (status == KEY_NO_EXIST) { status = 0; fits_read_key_str(fitsPointer(),HDUNAME,testKey,0,&status) ; if (status == 0) { retVal = String(testKey); } else { if (status != KEY_NO_EXIST) throw FitsError(status); } } else { throw FitsError(status); } } if (fits_movabs_hdu(fitsPointer(),current,0,&status)) throw FitsError(status); return retVal; } void FITS::cloneHeader (const ExtHDU& source) { // raw copy header info from source to a new HDU in *this. // first, // check that source is current HDU in whichever file it is source.makeThisCurrent(); fitsfile* sourcePointer = source.fitsPointer(); int nKeys(0); int dum(0); int status(0); // get number of keys in source HDU. // don't care what key will be read next, so keynum argument is dummy. if (fits_get_hdrpos(sourcePointer,&nKeys,&dum,&status)) throw FitsError(status); FITSUtil::auto_array_ptr pCard(new char[FLEN_CARD]); char* card = pCard.get(); // Must copy the keys of the source before creating the new HDU // because one cannot movabs to a raw HDU created by create_hdu: // the required keywords are not there and it returns an error. if (sourcePointer == fitsPointer()) { std::vector cards(nKeys); { for (int j = 1; j <= nKeys; ++j) { if (fits_read_record(sourcePointer,j,card,&status)) throw FitsError(status); cards[j-1] = String(card); } } // fits_create_hdu makes a new HDU and makes it current. if (fits_create_hdu(fitsPointer(),&status)) throw FitsError(status); { for (int j = 1; j <= nKeys; ++j) { if (fits_write_record(fitsPointer(),const_cast(cards[j-1].c_str()),&status)) throw FitsError(status); } } } else { if (fits_create_hdu(fitsPointer(),&status)) throw FitsError(status); for (int j = 1; j <= nKeys; ++j) { if (fits_read_record(sourcePointer,j,card,&status)) throw FitsError(status); if (fits_write_record(fitsPointer(),card,&status)) throw FitsError(status); } } // set the number of rows NAXIS2 in the new HDU back to zero - // it's been raw copied from source. static char ROWS[] = "NAXIS2"; if (fits_update_key_lng(fitsPointer(),ROWS,0,0,&status)) throw FitsError(status); if (fits_flush_file(fitsPointer(),&status)) throw FitsError(status); } void FITS::deleteExtension (int doomed) { int status(0); ExtHDU& d = extension(doomed); // throws NoSuchHDU if it's not there. const int removeIdx = d.index(); std::vector trailingExts; ExtMapConstIt itExtMap = m_FITSImpl->extension().begin(); ExtMapConstIt itExtMapEnd = m_FITSImpl->extension().end(); while (itExtMap != itExtMapEnd) { if (itExtMap->second->index() > removeIdx) trailingExts.push_back(itExtMap->second); ++itExtMap; } if (fits_delete_hdu(fitsPointer(),0,&status)) throw FitsError(status); unmapExtension(d); // Reindex the extensions that follow the deleted. for (size_t i=0; iindex(trailingExts[i]->index()-1); } void FITS::setCompressionType (int compType) { int status = 0; if (fits_set_compression_type(fitsPointer(), compType, &status)) { throw FitsError(status); } } void FITS::setTileDimensions (const std::vector& tileSizes) { int status = 0; int nDim = static_cast(tileSizes.size()); FITSUtil::CVarray converter; FITSUtil::auto_array_ptr pTileSizes(converter(tileSizes)); if (fits_set_tile_dim(fitsPointer(), nDim, pTileSizes.get(), &status)) { throw FitsError(status); } m_FITSImpl->currentCompressionTileDim(nDim); } void FITS::setNoiseBits (int noiseBits) { int status = 0; if (fits_set_noise_bits(fitsPointer(), noiseBits, &status)) { throw FitsError(status); } } int FITS::getCompressionType () const { int compType = 0; int status = 0; if (fits_get_compression_type(fitsPointer(), &compType, &status)) { throw FitsError(status); } return compType; } void FITS::getTileDimensions (std::vector& tileSizes) const { int status = 0; int nDim = m_FITSImpl->currentCompressionTileDim(); tileSizes.resize(nDim); if (nDim) { FITSUtil::auto_array_ptr pTileSizes(new long[nDim]); long* tilesArray = pTileSizes.get(); if (fits_get_tile_dim(fitsPointer(), nDim, tilesArray, &status)) { throw FitsError(status); } std::copy(&tilesArray[0], &tilesArray[nDim], &tileSizes[0]); } } int FITS::getNoiseBits () const { int noiseBits = 0; int status = 0; if (fits_get_noise_bits(fitsPointer(), &noiseBits, &status)) { throw FitsError(status); } return noiseBits; } ExtHDU* FITS::checkAlreadyRead(const int hduIdx, const String& hduName, const int version) const throw() { // See header for description. ExtHDU* found=0; const ExtMap& extMap = m_FITSImpl->extension(); if (hduIdx) { ExtMapConstIt itMap = extMap.begin(); const ExtMapConstIt itMapEnd = extMap.end(); while (!found && itMap != itMapEnd) { if (itMap->second->index() == hduIdx) found = itMap->second; ++itMap; } } else { const std::pair rangePair = extMap.equal_range(hduName); // Note itRange is not a reference but a copy. We may want // to keep rangePair.first for later use. ExtMapConstIt itRange = rangePair.first; const ExtMapConstIt& itRangeEnd = rangePair.second; while (!found && itRange != itRangeEnd) { if (itRange->second->version() == version) found = itRange->second; ++itRange; } // This really shouldn't be needed in a well-structured FITS file, but // IF extension w/hduName exists, caller is requesting version 1, yet // no version 1 is found, THEN treat it as "return first found extension // w/name". This is mostly for backwards compatibility since I noticed // earlier read(hduName) function code was doing this. if (!found && version == 1 && rangePair.first != itRangeEnd) { found = rangePair.first->second; } } return found; } // Additional Declarations } // namespace CCfits CCfits/FITSBase.cxx0000644000225700000360000000245611470265345013621 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // PHDU #include "PHDU.h" // ExtHDU #include "ExtHDU.h" // FITSBase #include "FITSBase.h" // FITSUtil #include "FITSUtil.h" namespace CCfits { typedef std::multimap ExtMap; typedef std::multimap::iterator ExtMapIt; typedef std::multimap::const_iterator ExtMapConstIt; // Class CCfits::FITSBase FITSBase::FITSBase (const String& fileName, RWmode rwmode) : m_currentCompressionTileDim(0), m_mode(rwmode), m_currentExtensionName(""), m_name(fileName), m_pHDU(0), m_fptr(0), m_extension() { } FITSBase::~FITSBase() { destroyPrimary(); destroyExtensions(); int status=0; if (m_fptr) { fits_close_file(m_fptr, &status); } } void FITSBase::destroyPrimary () { delete m_pHDU; m_pHDU = 0; } void FITSBase::destroyExtensions () { ExtMapIt endList = m_extension.end(); for (ExtMapIt hdu = m_extension.begin(); hdu != endList; hdu++) { delete (*hdu).second; } m_extension.clear(); } // Additional Declarations } // namespace CCfits CCfits/FITSUtil.cxx0000644000225700000360000004250611470265345013664 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif // FITSUtil #include "FITSUtil.h" #include "FitsError.h" #include "FITS.h" #include #include #include using std::string; namespace CCfits { const unsigned long USBASE = 1 << 15; const unsigned long ULBASE = (unsigned long)1 << 31; namespace FITSUtil { InvalidConversion::InvalidConversion (const string& diag, bool silent) : FitsException(string("Fits Error: Attempt to perform invalid implicit conversion "),silent) { addToMessage(diag); if (FITS::verboseMode() || !silent) std::cerr << diag << '\n'; } char** CharArray (const std::vector& inArray) { size_t n = inArray.size(); if (n == 0) return 0; char** c = new char*[n]; for (size_t i = 0; i < n; ++i) { size_t m(inArray[i].length()); c[i] = new char[m+1]; strncpy(c[i],inArray[i].c_str(),m + 1); } return c; } #if TEMPLATE_AMBIG_DEFECT || TEMPLATE_AMBIG7_DEFECT void fillMSvsvs (std::vector& outArray, const std::vector& inArray, size_t first, size_t last) { // recall behavior of iterators: last has to be one-past-the-last entry. // if last == first, this will still do something. the "first-1" is a zero based indexing // correction. outArray.assign(inArray.begin()+first-1,inArray.begin()+last); } #endif void fill (std::vector& outArray, const std::vector& inArray, size_t first, size_t last) { // recall behavior of iterators: last has to be one-past-the-last entry. // if last == first, this will still do something. the "first-1" is a zero based indexing // correction. outArray.assign(inArray.begin()+first-1,inArray.begin()+last); } string lowerCase(const string& inputString) { const size_t n(inputString.length()); string outputString(n,' '); for (size_t l = 0 ; l < n; ++l) { outputString[l] = tolower(inputString[l]); } return outputString; } string upperCase(const string& inputString) { const size_t n(inputString.length()); string outputString(n,' '); for (size_t l = 0 ; l < n; ++l) { outputString[l] = toupper(inputString[l]); } return outputString; } string::size_type checkForCompressString(const string& fileName) { // Simply look for the first occurrence of the form "[compress....". const string leadIndicator("[compress"); string::size_type start = fileName.find(leadIndicator); return start; } string FITSType2String ( int typeInt ) { string keyString(""); switch (typeInt) { default: case Tnull: keyString = "Unknown"; break; case Tbit: keyString = "bit"; break; case Tbyte: keyString = "byte"; break; case Tlogical: keyString = "logical"; break; case Tstring: keyString = "string"; break; case Tushort: keyString = "unsigned short"; break; case Tshort: keyString = "short"; break; case Tuint: keyString = "unsigned integer"; break; case Tint: keyString = "integer"; break; case Tulong: keyString = "unsigned long"; break; case Tlong: keyString = "long"; break; case Tlonglong: keyString = "long long"; case Tfloat: keyString = "float"; break; case Tdouble: keyString = "double"; break; case Tcomplex: keyString = "float complex"; break; case Tdblcomplex: keyString = "double complex"; break; } return keyString; } bool MatchStem::operator()(const string& left, const string& right) const { static const string DIGITS("0123456789"); size_t n(left.find_last_not_of(DIGITS)); if ( n != string::npos ) return (left.substr(0,n) == right); else return (left == right); } // VF<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvfvf(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = inArray[j]; } } #else void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = inArray[j]; } } #endif #ifdef TEMPLATE_AMBIG_DEFECT // VF<-VD void fillMSvfvd(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = std::complex(inArray[j].real(), inArray[j].imag()); } } #else // VF<-VD void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = std::complex(inArray[j].real(), inArray[j].imag()); } } #endif // VD<-VD #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvdvd(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = inArray[j]; } } #else void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = inArray[j]; } } #endif // VD<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSvdvf(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = std::complex(inArray[j].real(), inArray[j].imag()); } } #else void fill(std::vector >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = std::complex(inArray[j].real(), inArray[j].imag()); } } #endif // AF<-VF // AF<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSafvf(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1 ] = inArray[j]; } } #else void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1 ] = inArray[j]; } } #endif // AF<-VD void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1 ] = std::complex(inArray[j].real(),inArray[j].imag()); } } // AD<-VD #ifdef TEMPLATE_AMBIG_DEFECT void fillMSadvd(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = inArray[j]; } } #else void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1] = inArray[j]; } } #endif // AD<-VF #ifdef TEMPLATE_AMBIG_DEFECT void fillMSadvf(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1 ] = std::complex(inArray[j].real(),inArray[j].imag()); } } #else void fill(std::valarray >& outArray, const std::vector >& inArray, size_t first, size_t last) { // vector to vector assign. stdlib takes care of deletion. size_t range = last - first + 1; if (outArray.size() != range) outArray.resize(range); for (size_t j = first - 1; j < last; ++j) { outArray[j - first + 1 ] = std::complex(inArray[j].real(),inArray[j].imag()); } } #endif // AF<-AF void fill(std::valarray >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); outArray = inArray; } // AD<-AD void fill(std::valarray >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); outArray = inArray; } // AF<-AD void fill(std::valarray >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); for (size_t j = 0; j < N; ++j ) { outArray[j] = std::complex(inArray[j].real(),inArray[j].imag()); } } // AD<-AF void fill(std::valarray >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); for (size_t j = 0; j < N; ++j ) { outArray[j] = std::complex(inArray[j].real(),inArray[j].imag()); } } // VF<-AF void fill(std::vector >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); for (size_t j = 0; j < N; ++j) outArray[j] = inArray[j]; } // VD<-AD void fill(std::vector >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); for (size_t j = 0; j < N; ++j) outArray[j] = inArray[j]; } // VF<-AD void fill(std::vector >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); for (size_t j = 0; j < N; ++j ) { outArray[j] = std::complex(inArray[j].real(),inArray[j].imag()); } } // VD<-AF void fill(std::vector >& outArray, const std::valarray >& inArray) { // vector to vector assign. stdlib takes care of deletion. size_t N (inArray.size()); if (outArray.size() != N) outArray.resize(N); for (size_t j = 0; j < N; ++j ) { outArray[j] = std::complex(inArray[j].real(),inArray[j].imag()); } } // Parameterized Class CCfits::FITSUtil::FitsNullValue // Class CCfits::FITSUtil::UnrecognizedType UnrecognizedType::UnrecognizedType (string diag, bool silent) : FitsException(" Invalid type for FITS I/O ",silent) { addToMessage(diag); std::cerr << diag << '\n'; } } // namespace FITSUtil } // namespace CCfits CCfits/FitsError.cxx0000644000225700000360000000316211470265345014173 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #include #endif // FITS #include "FITS.h" // FitsError #include "FitsError.h" namespace CCfits { // Class CCfits::FitsError FitsError::FitsError (int errornum, bool silent) : FitsException("FITS Error: ", silent) { printMsg(errornum); if (FITS::verboseMode() || !silent) std::cerr << message() << "\n"; } void FitsError::printMsg (int error) { char cMessage[FLEN_ERRMSG]; fits_get_errstatus(error, cMessage); addToMessage(string(cMessage)); } // Class CCfits::FitsException FitsException::FitsException (const string& msg, bool& silent) : m_message(msg) { if (FITS::verboseMode() || !silent) { std::cerr << '\n' << msg; // set this to false for the purpose of this exception. // does NOT change verbose mode setting so this value is thrown // away after the exception completes. silent = false; } } void FitsException::addToMessage (const string& msgQual) { m_message += msgQual; } // Class CCfits::FitsFatal FitsFatal::FitsFatal (const string& diag) { std::cerr << "*** CCfits Fatal Error: " << diag << " please report this to xanprob@olegacy.gsfc.nasa.gov\n"; #ifdef TERMINATE_DEFECT // terminate() is not there as documented assert ( false ); #else std::terminate(); #endif } } // namespace CCfits CCfits/HDU.cxx0000644000225700000360000004714711470265345012707 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include #else #include #endif #include #include // FITS #include "FITS.h" // FITSBase #include "FITSBase.h" // HDU #include "HDU.h" #include "FITSUtil.h" #include namespace CCfits { // TYP_* are defined in fitsio.h const size_t HDU::s_nCategories = 5; const int HDU::s_iKeywordCategories[5] = {TYP_USER_KEY,TYP_WCS_KEY,TYP_CMPRS_KEY,TYP_CKSUM_KEY,TYP_REFSYS_KEY}; // Class CCfits::HDU::InvalidImageDataType HDU::InvalidImageDataType::InvalidImageDataType (const string& diag, bool silent) : FitsException("Fits Error: Invalid Data Type for Image ",silent) { addToMessage(diag); if (!silent) std::cerr << diag << '\n'; } // Class CCfits::HDU::InvalidExtensionType HDU::InvalidExtensionType::InvalidExtensionType (const string& diag, bool silent) : FitsException ("Fits Error: Extension Type: ", silent) { addToMessage(diag); if (!silent) std::cerr << diag << '\n'; } // Class CCfits::HDU::NoSuchKeyword HDU::NoSuchKeyword::NoSuchKeyword (const string& diag, bool silent) : FitsException("Fits Error: Keyword not found: ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode()) std::cerr << diag << '\n'; } // Class CCfits::HDU::NoNullValue HDU::NoNullValue::NoNullValue (const string& diag, bool silent) : FitsException("Fits Error: No Null Pixel Value specified for Image ",silent) { addToMessage(diag); if (!silent || FITS::verboseMode() ) std::cerr << diag << '\n'; } // Class CCfits::HDU HDU::HDU(const HDU &right) : m_naxis(right.m_naxis), m_bitpix(right.m_bitpix), m_index(right.m_index), m_anynul(right.m_anynul), m_history(right.m_history), m_comment(right.m_comment), m_zero(right.m_zero), m_scale(right.m_scale), m_keyWord(), m_parent(right.m_parent), m_naxes(right.m_naxes) { // ensure deep copy. copyKeys(right); } HDU::HDU (FITSBase* p) : m_naxis(0), m_bitpix(8), m_index(0), m_anynul(false), m_history(""), m_comment(""), m_zero(0), m_scale(1.0), m_keyWord(), m_parent(p), m_naxes() { readHduInfo(); // read bitpix, naxis and naxes keywords int hduIndex = 0; fits_get_hdu_num(fitsPointer(), &hduIndex); m_index = hduIndex - 1; } HDU::HDU (FITSBase* p, int bitpix, int naxis, const std::vector& axes) : m_naxis(naxis), m_bitpix(bitpix), m_index(0), m_anynul(false), m_history(""), m_comment(""), m_zero(0), m_scale(1.0), m_keyWord(), m_parent(p), m_naxes(axes) { } HDU::~HDU() { // garbage collection for heap allocated objects. clearKeys(); } bool HDU::operator==(const HDU &right) const { return compare(right); } bool HDU::operator!=(const HDU &right) const { return !compare(right); } void HDU::clearKeys () { for (std::map::iterator key = m_keyWord.begin(); key != m_keyWord.end(); ++key) { delete (*key).second; } m_keyWord.erase(m_keyWord.begin(),m_keyWord.end()); } void HDU::readHduInfo () { // Read BITPIX and NAXIS keywords int status = 0; char* comment = 0; int htype = -1; if (fits_get_hdu_type(fitsPointer(),&htype,&status)) throw FitsError(status); HduType xtype = HduType(htype); if (xtype == ImageHdu) { // Do not try and read BITPIX or NAXIS directly. If this is a // compressed image, the relevant information will need to come // from ZBITPIX and ZNAXIS instead. int temp = 0; if (fits_get_img_type(fitsPointer(), &temp, &status)) throw FitsError(status); m_bitpix = temp; if (fits_get_img_dim(fitsPointer(), &temp, &status)) throw FitsError(status); m_naxis = temp; } else { // m_bitpix will retain its default value, 8. string keyname("NAXIS"); if (fits_read_key_lng(fitsPointer(),const_cast(keyname.c_str()), &m_naxis, comment, &status)) throw FitsError(status); } // okay, we have the number of axes and therefore the number of values // (z)NAXISn. FITSUtil::auto_array_ptr axes(new long[m_naxis]); long* pAxes = axes.get(); if (xtype == ImageHdu) { if (fits_get_img_size(fitsPointer(), m_naxis, pAxes, &status)) throw FitsError(status); } else { // create strings NAXIS1 - NAXISn, where n = NAXIS, and read keyword. for (int i=0; i (axisKey.str().c_str()), &pAxes[i],comment,&status) ) throw FitsError(status); #endif } } std::copy(&pAxes[0],&pAxes[m_naxis], std::back_inserter(m_naxes)); } Keyword& HDU::readKeyword (const String &keyname) { try { using std::pair; Keyword* newKey(KeywordCreator::getKeyword(keyname,this)); std::map::value_type refToEntry(keyname,newKey); std::map::iterator itOld = m_keyWord.find(keyname); if (itOld != m_keyWord.end()) { delete itOld->second; m_keyWord.erase(itOld); } m_keyWord.insert(refToEntry); return *(refToEntry.second); } catch (FitsError) { throw NoSuchKeyword(keyname); } } void HDU::readKeywords (std::list& keynames) { // the scoop is: this and the previous function - which reads // a single key - are designed to be called by HDU and its subclasses // in constructors etc., and by the public member functions // addKey, readKey and readKeys. These functions read keywords // and either return nothing or return Keyword references from which another // function call is necessary to retrieve the value. These are both things // that implementers need but are not necessary to provide for the user. std::list::iterator ikey = keynames.begin(); while ( ikey != keynames.end()) { try { readKeyword(*ikey); ++ikey; } catch (NoSuchKeyword) { ikey = keynames.erase(ikey); } } } Keyword* HDU::addKeyword (Keyword* newKey) { using std::pair; newKey->write(); const String& keyname = newKey->name(); std::map::value_type refToEntry(keyname,newKey); std::map::iterator itOld = m_keyWord.find(keyname); if (itOld != m_keyWord.end()) { delete itOld->second; m_keyWord.erase(itOld); } m_keyWord.insert(refToEntry); return refToEntry.second; } bool HDU::compare (const HDU &right) const { if (fitsPointer() != right.fitsPointer()) return false; if (m_index != right.m_index) return false; return true; } fitsfile* HDU::fitsPointer () const { return m_parent->fptr(); } FITSBase* HDU::parent () const { return m_parent; } void HDU::makeThisCurrent () const { int status = 0; int hduType = 0; // m_index contains the value of fptr->Fptr->curhdu. movabs_hdu moves to // 1 - this unless it's at the beginning, so it must be m_index+1 [Check!!!] if (fits_movabs_hdu(fitsPointer(),m_index+1, &hduType, &status) != 0) throw FitsError(status); m_parent->currentExtensionName() = ""; } void HDU::copyKeys (const HDU& right) { // copy all keys that have already been read. for (std::map::const_iterator key = right.m_keyWord.begin(); key != right.m_keyWord.end(); key++) { std::map::iterator itOld = m_keyWord.find(key->first); if (itOld != m_keyWord.end()) { delete itOld->second; m_keyWord.erase(itOld); } m_keyWord[(*key).first] = ((*key).second)->clone(); } } String HDU::getNamedLines (const String& name) { int fitsStatus = 0; int numKeys = 0; static char searchKey[FLEN_KEYWORD]; makeThisCurrent(); String content(""); char* card = new char[81]; FITSUtil::auto_array_ptr pcard(card); int where = 1; int keylen = 0; fits_get_hdrpos(fitsPointer(),&numKeys,&where,&fitsStatus); if (fitsStatus != 0 ) throw FitsError(fitsStatus,false); // search through the header to get the first "name" keyword. while ( where < numKeys ) { fits_read_record(fitsPointer(),++where,card,&fitsStatus); fits_get_keyname(card,searchKey,&keylen,&fitsStatus); // on FitsError, always print a message (!silent). if (fitsStatus != 0 ) throw FitsError(fitsStatus,false); // require exact match if (strcmp(name.c_str(),searchKey) == 0) { // this should work for standard compliant // string implementation, where the length added // to content is determined by traits::length() content += card + 8; content += "\n"; } } // print a message if there are no "name" type records. if (content.size() == 0) throw NoSuchKeyword(name); return content; } const String& HDU::getComments () { try { m_comment = getNamedLines("COMMENT"); } catch (HDU::NoSuchKeyword) {} catch (FitsError) {} catch (...) { throw; } return m_comment; } void HDU::writeComment (const String& comment) { int status(0); makeThisCurrent(); if (fits_write_comment(fitsPointer(),const_cast(comment.c_str()),&status)) throw FitsError(status); m_comment = comment; } const String& HDU::getHistory () { try { m_history = getNamedLines("HISTORY"); } catch (HDU::NoSuchKeyword) {} catch (FitsError) {} catch (...) { throw; } return m_history; } void HDU::writeHistory (const String& history) { int status(0); makeThisCurrent(); if (fits_write_history(fitsPointer(),const_cast(history.c_str()),&status)) throw FitsError(status); m_history = history; } void HDU::writeDate () { static const String DATE("DATE"); int status(0); makeThisCurrent(); if (fits_write_date(fitsPointer(),&status)) throw FitsError(status); FITSUtil::auto_array_ptr pDate(new char[FLEN_KEYWORD]); FITSUtil::auto_array_ptr pDateComment(new char[FLEN_COMMENT]); char* date = pDate.get(); if (fits_read_key_str(fitsPointer(), const_cast(DATE.c_str()),date,pDateComment.get(),&status)) throw FitsError(status); NewKeyword creator(this,String(date)); Keyword* newKey = creator.MakeKeyword(DATE,String(pDateComment.get())); std::map::iterator itOld = m_keyWord.find(DATE); if (itOld != m_keyWord.end()) { delete itOld->second; m_keyWord.erase(itOld); } m_keyWord[DATE] = newKey; } void HDU::suppressScaling (bool toggle) { makeThisCurrent(); int status=0; if (toggle) { // Ignore scale keyword values and replace with defaults. fits_set_bscale(m_parent->fptr(), 1.0, 0.0, &status); } else { // Restore the use of the scale keyword values by re-reading // the header keywords. fits_set_hdustruc(m_parent->fptr(), &status); } } void HDU::writeChecksum () { fitsfile *fPtr = m_parent->fptr(); makeThisCurrent(); int status=0; if (fits_write_chksum(fPtr, &status)) throw FitsError(status); } void HDU::updateChecksum () { fitsfile *fPtr = m_parent->fptr(); makeThisCurrent(); int status=0; if (fits_update_chksum(fPtr, &status)) throw FitsError(status); } std::pair HDU::verifyChecksum () const { std::pair sumsOK(0,0); // Note that within this const function m_parent is a const // pointer but not a pointer-to-const, which is how we can // get away with this. fitsfile *fPtr = m_parent->fptr(); makeThisCurrent(); int status=0; if (fits_verify_chksum(fPtr, &sumsOK.first, &sumsOK.second, &status)) throw FitsError(status); return sumsOK; } std::pair HDU::getChecksum () const { std::pair sums(0,0); fitsfile *fPtr = m_parent->fptr(); makeThisCurrent(); int status=0; if (fits_get_chksum(fPtr, &sums.first, &sums.second, &status)) throw FitsError(status); return sums; } void HDU::deleteKey (const String& doomed) { Keyword& k = keyWord(doomed); //throws no such keyword if there isn't. int status(0); if (fits_delete_key(fitsPointer(),const_cast(k.name().c_str()),&status)) throw FitsError(status); std::map::iterator ki(m_keyWord.find(doomed)); delete (*ki).second; m_keyWord.erase(ki); } void HDU::readAllKeys () { makeThisCurrent(); int status(0); int n (0); int dum(0); if (fits_get_hdrpos(fitsPointer(),&n,&dum,&status)) throw FitsError(status); for (int j = 1; j <= n; ++j) { // If the reading of a particular keyword fails, most likely due // to an undefined value, simply skip and continue to next // keyword. try { // get keywords by header position and store all the keys that // are neither metadata for columns nor history/comment cards. std::auto_ptr key(KeywordCreator::getKeyword(j,this)); // comment/history cards have no value field and return 0 here. if (key.get() != 0) { int keyClass = fits_get_keyclass(const_cast(key->name().c_str())); for (size_t i=0; i::const_iterator itInKeys = inHdu->keyWord().begin(); std::map::const_iterator itInKeysEnd = inHdu->keyWord().end(); while (itInKeys != itInKeysEnd) { // User may have read structure-related keys that normally shouldn't // go into keyWord map. Therefore check each key before copying it. int keyClass = fits_get_keyclass(const_cast(itInKeys->first.c_str())); for (size_t i=0; isecond); break; } } ++itInKeys; } } } std::vector HDU::keywordCategories () { // This is not the most efficient way to grant public access to // the category int[], but it seems better than storing // a static vector in addition to the int[]. std::vector tmpCategories(&s_iKeywordCategories[0], &s_iKeywordCategories[s_nCategories]); // DO NOT return by reference. return tmpCategories; } void HDU::zeroInit (double value) { // This is a private counterpart to the public bzero set functions. // It does not check whether this setting would cause a change // in the data type of the image, since presumably it is only // called immediately after this object is first created in // HDUCreator. It also does not write a keyword since it is // called either for case of pre-existing HDU (which already // has its keyword) or new unsigned-type HDU, in which case // CFITSIO fits_create_img automatically sets the keyword. m_zero = value; } void HDU::scaleInit (double value) { // See notes in zeroInit function. m_scale = value; } bool HDU::checkImgDataTypeChange (double zero, double scale) const { // This ASSUMES this is an image hdu and is also the current hdu. // Return false if the new zero/scale will cause a change from // a non-float/double to a float/double type. bool isOK = true; if (m_bitpix != FLOAT_IMG && m_bitpix != DOUBLE_IMG) { // Save original state of zero/scale keywords bool isZeroKey = true; bool isScaleKey = true; double savZero = 0.0; double savScale = 1.0; int status = 0; fitsfile* fp = m_parent->fptr(); if (fits_read_key_dbl(fp, BZERO, &savZero, 0, &status)) { isZeroKey = false; savZero = 0.0; status = 0; } if (fits_read_key_dbl(fp, BSCALE, &savScale, 0, &status)) { isScaleKey = false; savScale = 1.0; status = 0; } if (fits_update_key(fp, Tdouble, BZERO, &zero, 0, &status)) { throw FitsError(status, false); } if (fits_update_key(fp, Tdouble, BSCALE, &scale, 0, &status)) { int iErr = status; status = 0; if (isZeroKey) fits_update_key(fp, Tdouble, BZERO, &savZero, 0, &status); else fits_delete_key(fp, BZERO, &status); throw FitsError(iErr, false); } int newBitpix=0; fits_get_img_equivtype(fp, &newBitpix, &status); if (status || newBitpix == FLOAT_IMG || newBitpix == DOUBLE_IMG) { isOK = false; } int iErr = status; status = 0; // Now reset things back the way they were, whether or not there // was a status error above. if (isZeroKey) fits_update_key(fp, Tdouble, BZERO, &savZero, 0, &status); else fits_delete_key(fp, BZERO, &status); if (isScaleKey) fits_update_key(fp, Tdouble, BSCALE, &savScale, 0, &status); else fits_delete_key(fp, BSCALE, &status); if (iErr) throw FitsError(iErr, false); } return isOK; } // Additional Declarations Keyword& HDU::addKey(const string& name, const char* charString, const String& comment) { return addKey(name,String(charString),comment); } Keyword* HDU::addKey(const Keyword* inKeyword) { Keyword* newKeyword = inKeyword->clone(); newKeyword->setParent(this); makeThisCurrent(); const String& keyname = newKeyword->name(); std::map::value_type refToEntry(keyname,newKeyword); std::map::iterator itOld = m_keyWord.find(keyname); if (itOld != m_keyWord.end()) { delete itOld->second; m_keyWord.erase(itOld); } m_keyWord.insert(refToEntry); newKeyword->write(); return newKeyword; } } // namespace CCfits CCfits/HDUCreator.cxx0000644000225700000360000003370111666220050014205 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" //for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include #else #include #endif #include // HDU #include "HDU.h" // PHDU #include "PHDU.h" // ExtHDU #include "ExtHDU.h" // FitsError #include "FitsError.h" // FITSBase #include "FITSBase.h" // ImageExt #include "ImageExt.h" // HDUCreator #include "HDUCreator.h" // PrimaryHDU #include "PrimaryHDU.h" // AsciiTable #include "AsciiTable.h" // BinTable #include "BinTable.h" // FITS #include "FITS.h" namespace CCfits { char BSCALE[7] = {"BSCALE"}; char BZERO[6] = {"BZERO"}; // Class CCfits::HDUCreator HDUCreator::HDUCreator (FITSBase* p) : m_hdu(0), m_parent(p) { } HDUCreator::~HDUCreator() { } PHDU * HDUCreator::createImage (int bitpix, long naxis, const std::vector& naxes) { return MakeImage(bitpix,naxis,naxes); } PHDU * HDUCreator::MakeImage (int bpix, int naxis, const std::vector& naxes) { m_hdu = m_parent->pHDU(); if (!m_hdu) { switch (bpix) { case BYTE_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); break; case SHORT_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); break; case LONG_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); break; case FLOAT_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); break; case DOUBLE_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); break; case USHORT_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); m_hdu->bitpix(SHORT_IMG); m_hdu->zeroInit(USBASE); break; case ULONG_IMG: m_hdu = new PrimaryHDU(m_parent,bpix,naxis,naxes); m_hdu->bitpix(LONG_IMG); m_hdu->zeroInit(ULBASE); break; default: throw HDU::InvalidImageDataType("FitsError: invalid data type for FITS I/O"); } } return static_cast(m_hdu); } HDU * HDUCreator::Make (const String& hduName, bool readDataFlag, const std::vector &keys, bool primary, int version) { int status = 0; bool isExtFound = true; int extNum = -1; // Are we dealing with a fake hduName ? bool isFake = hduName.find(ExtHDU::missHDU()) == 0 && hduName.length() > ExtHDU::missHDU().length(); if (isFake) { #ifdef SSTREAM_DEFECT std::istrstream extNumStr (hduName.substr(ExtHDU::missHDU().length().c_str())); #else std::istringstream extNumStr (hduName.substr(ExtHDU::missHDU().length())); #endif extNumStr >> extNum; if (fits_movabs_hdu(m_parent->fptr(), extNum+1, 0, &status)) { isExtFound = false; } } else if ( !primary && fits_movnam_hdu(m_parent->fptr(),ANY_HDU, const_cast(hduName.c_str()),version,&status) ) { isExtFound = false; } if (!isExtFound) { #ifdef SSTREAM_DEFECT std::ostrstream msg; #else std::ostringstream msg; #endif msg << "Cannot access HDU name "; if (isFake) { msg << "(No name) " << "Index no. " << extNum; } else { msg << hduName ; } if (version) msg << " version " << version; #ifdef SSTREAM_DEFECT msg << std::ends; #endif throw FITS::NoSuchHDU(msg.str()); } return commonMake(hduName, readDataFlag, keys, primary, version); } // end Make HDU* HDUCreator::commonMake(const String& hduName, bool readDataFlag, const std::vector &keys, bool primary, int version) { int status = 0; long imgType = 0; int htype = -1; if ( fits_get_hdu_type(m_parent->fptr(),&htype,&status) ) throw FitsError(status); HduType xtype = HduType(htype); m_hdu = m_parent->pHDU(); switch(xtype) { case ImageHdu: { int tmpBpix=0; if (fits_get_img_type(m_parent->fptr(), &tmpBpix, &status)) throw FitsError(status); imgType = static_cast(tmpBpix); double unsignedZero(0); double scale(1); // getScaling may change imgType from signed int to unsigned, // which does not have its own bitpix value, or to a float // type, which does have a unique bitpix value. To put this // another way, we must take care to not set m_hdu->bitpix() // to an unsigned value. getScaling(imgType,unsignedZero,scale); // ImageHDU types are templated switch (imgType) { case Ibyte: if (primary) { if (!m_hdu) m_hdu = new PrimaryHDU(m_parent,readDataFlag,keys); } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } break; case Ishort: if (primary) { if (!m_hdu) { m_hdu = new PrimaryHDU (m_parent,readDataFlag,keys); } } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } break; case Iushort: if (primary) { if (!m_hdu) { m_hdu = new PrimaryHDU (m_parent,readDataFlag,keys); } } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } imgType = Ishort; break; case Ilong: if (primary) { if (!m_hdu) { m_hdu = new PrimaryHDU (m_parent,readDataFlag,keys); } } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } break; case Iulong: if (primary) { if (!m_hdu) { m_hdu = new PrimaryHDU (m_parent,readDataFlag,keys); } } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } imgType = Ilong; break; case Ifloat: if (primary) { if (!m_hdu) m_hdu = new PrimaryHDU(m_parent,readDataFlag,keys); } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } break; case Idouble: if (primary) { if (!m_hdu) m_hdu = new PrimaryHDU(m_parent,readDataFlag,keys); } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } break; // dummy code to avoid SEGV in Solaris. This is supposed to trick the // compiler into instantiating PrimaryHDU, ImageExt // so that it doesn't throw a SEGV if the user tries to read integer data into an // integer array. But Tint is not actually an acceptable value for bitpix. case Tint: if (primary) { if (!m_hdu) { if (unsignedZero == ULBASE && scale == 1) { m_hdu = new PrimaryHDU (m_parent,readDataFlag,keys); } else { m_hdu = new PrimaryHDU (m_parent,readDataFlag,keys); } } } else { if (unsignedZero == ULBASE && scale == 1) { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } else { m_hdu = new ImageExt (m_parent,hduName,readDataFlag,keys,version); } } default: throw HDU::InvalidImageDataType(" invalid data type for FITS Image I/O"); } m_hdu->bitpix(imgType); if (unsignedZero != 0.0) { m_hdu->zeroInit(unsignedZero); } if (scale != 1.0) { m_hdu->scaleInit(scale); } } break; case AsciiTbl: m_hdu = new AsciiTable(m_parent, hduName, readDataFlag, keys, version); m_hdu->bitpix(8); break; case BinaryTbl: m_hdu = new BinTable(m_parent, hduName, readDataFlag, keys, version); m_hdu->bitpix(8); break; default: throw HDU::InvalidImageDataType("FitsError: invalid data type for FITS I/O"); } return m_hdu; } // end commonMake HDU* HDUCreator::MakeTable (const String &name, HduType xtype, int rows, const std::vector& colName, const std::vector& colFmt, const std::vector& colUnit, int version) { switch (xtype) { case AsciiTbl: m_hdu = new AsciiTable(m_parent,name,rows,colName,colFmt,colUnit,version); break; case BinaryTbl: m_hdu = new BinTable(m_parent,name,rows,colName,colFmt,colUnit,version); break; default: throw HDU::InvalidExtensionType("unexpected"); } return m_hdu; } HDU * HDUCreator::Make (int index, bool readDataFlag, const std::vector &keys) { bool primary = (index == 0); String hduName; int version = 0; if (!primary) ExtHDU::readHduName(m_parent->fptr(),index,hduName,version ); return commonMake(hduName,readDataFlag,keys,primary,version); } ExtHDU * HDUCreator::createImage (const String &name, int bitpix, long naxis, const std::vector& naxes, int version) { return MakeImage(name,bitpix,naxis,naxes,version); } ExtHDU * HDUCreator::MakeImage (const String &name, int bpix, long naxis, const std::vector& naxes, int version) { ExtHDU* newImage = 0; switch (bpix) { case BYTE_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); break; case SHORT_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); break; case LONG_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); break; case FLOAT_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); break; case DOUBLE_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); break; case USHORT_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); newImage->bitpix(SHORT_IMG); newImage->zeroInit(USBASE); break; case ULONG_IMG: newImage = new ImageExt(m_parent,name,bpix,naxis,naxes,version); newImage->bitpix(LONG_IMG); newImage->zeroInit(ULBASE); break; default: throw HDU::InvalidImageDataType("FitsError: invalid data type for FITS I/O"); } return newImage; } void HDUCreator::getScaling (long& type, double& zero, double& scale) const { float tmpScale(1.); float zval (.0); int status (0); fits_read_key_flt(m_parent->fptr(),BZERO,&zval,0,&status); if (status) zval = .0; status = 0; fits_read_key_flt(m_parent->fptr(),BSCALE,&tmpScale,0,&status); if (status) tmpScale = 1.0; zero = zval; scale = tmpScale; // if there is no effective scaling ... if (zero == 0.0 && scale == 1.0) { return; } else { int newType = 0; fits_get_img_equivtype(m_parent->fptr(),&newType,&status); if (!status) type = newType; } } // Additional Declarations } // namespace CCfits CCfits/KeyData.cxx0000644000225700000360000001144611470265345013602 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // KeyData #include "KeyData.h" #include #include namespace CCfits { #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT template<> void KeyData::write() { Keyword::write(); int status = 0; int value(0); if (m_keyval) value = 1; if (fits_update_key(fitsPointer(), Tlogical, const_cast(name().c_str()), &value, const_cast(comment().c_str()), &status)) throw FitsError(status); } template<> void KeyData::write() { Keyword::write(); int status = 0; if (fits_update_key(fitsPointer(), Tstring, const_cast(name().c_str()), const_cast(m_keyval.c_str()), const_cast(comment().c_str()), &status)) throw FitsError(status); } template<> void KeyData >::write() { Keyword::write(); int status = 0; FITSUtil::auto_array_ptr keyVal( new float[2]); keyVal[0] = m_keyval.real(); keyVal[1] = m_keyval.imag(); if (fits_update_key(fitsPointer(), Tcomplex, const_cast(name().c_str()), keyVal.get(), const_cast(comment().c_str()), &status)) throw FitsError(status); } template<> void KeyData >::write() { Keyword::write(); int status = 0; FITSUtil::auto_array_ptr keyVal(new double[2]); keyVal[0] = m_keyval.real(); keyVal[1] = m_keyval.imag(); if (fits_update_key(fitsPointer(), Tdblcomplex, const_cast(name().c_str()), keyVal.get(), const_cast(comment().c_str()), &status)) throw FitsError(status); } template <> std::ostream & KeyData::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << setw(10) << name() << " Value: " << setw(14) << keyval() << " Type: " << setw(20) << " string " << " Comment: " << comment(); return s; } #endif #endif template <> void KeyData::keyval(const String& newVal) { m_keyval = newVal; } #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> std::ostream & KeyData >::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << name() << " Value: " << m_keyval.real() << " + i " << m_keyval.imag() << " Type: " << setw(20) << " complex " << " Comment: " << comment() << std::endl; return s; } template <> std::ostream & KeyData >::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << name() << " Value: " << m_keyval.real() << " + i " << m_keyval.imag() << " Type: " << setw(20) << " complex " << " Comment: " << comment() << std::endl; return s; } template <> std::ostream & KeyData::put (std::ostream &s) const { using std::setw; s << "Keyword Name: " << setw(10) << name() << " Value: " << std::boolalpha << setw(8) << keyval() << " Type: " << setw(20) << " logical " << " Comment: " << comment(); return s; } #endif #endif #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> const String& KeyData::keyval() const { return m_keyval; } #endif #ifndef SPEC_TEMPLATE_DECL_DEFECT template <> void KeyData >::keyval(const std::complex& newVal) { m_keyval = newVal; } template <> void KeyData >::keyval(const std::complex& newVal) { m_keyval = newVal; } template <> const std::complex& KeyData >::keyval() const { return m_keyval; } template <> const std::complex& KeyData >::keyval() const { return m_keyval; } #endif } // namespace CCfits CCfits/Keyword.cxx0000644000225700000360000001641111470265345013701 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #include // FitsError #include "FitsError.h" // HDU #include "HDU.h" // Keyword #include "Keyword.h" // FITS #include "FITS.h" #include "KeyData.h" namespace CCfits { // Class CCfits::Keyword::WrongKeywordValueType Keyword::WrongKeywordValueType::WrongKeywordValueType (const String& diag, bool silent) : FitsException("Error: attempt to read keyword into variable of incorrect type",silent) { addToMessage(string("\nKeyname: ") + diag); if ( FITS::verboseMode() || !silent) std::cerr << "\nKeyname: " << diag << "\n"; } // Class CCfits::Keyword Keyword::Keyword(const Keyword &right) : m_keytype(right.m_keytype), m_parent(0), // Can only assign parent when added to an HDU. m_comment(right.m_comment), m_name(right.m_name) { } Keyword::Keyword (const String &keyname, ValueType keytype, HDU* p, const String &comment) : m_keytype(keytype), m_parent(p), m_comment(comment), m_name(keyname) { } Keyword::~Keyword() { } Keyword & Keyword::operator=(const Keyword &right) { if (this != &right) copy(right); return *this; } bool Keyword::operator==(const Keyword &right) const { return compare(right); } bool Keyword::operator!=(const Keyword &right) const { return !compare(right); } void Keyword::copy (const Keyword& right) { m_name = right.m_name; m_comment = right.m_comment; m_keytype = right.m_keytype; // Can only assign parent when added to an HDU. Do not change // m_parent during an assign. } bool Keyword::compare (const Keyword &right) const { if (m_name != right.m_name) return false; if (m_keytype != right.m_keytype) return false; if (m_comment != right.m_comment) return false; // parent not relevant to compare. //if (m_parent != right.m_parent) return false; return true; } void Keyword::write () { // Just perform parent pointer checking in here. KeyData // subclass will actually handle the writing. if (!m_parent) { bool silent=true; throw FitsException("***CCfits Warning: Keyword must be added to an HDU before it can be written.",silent); } m_parent->makeThisCurrent(); } fitsfile* Keyword::fitsPointer () const { fitsfile* fPtr = 0; if (m_parent) fPtr = m_parent->fitsPointer(); return fPtr; } // Additional Declarations } // namespace CCfits namespace CCfits { #ifndef SPEC_TEMPLATE_IMP_DEFECT #ifndef SPEC_TEMPLATE_DECL_DEFECT template<> float& Keyword::value(float& val) const { double dval=.0; val = static_cast(value(dval)); return val; } template<> double& Keyword::value(double& val) const { switch (m_keytype) { case Tint: { const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } break; case Tfloat: { const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } break; case Tdouble: { // Note: if val is of type float some precision will be lost here, // but allow anyway. Presumably the user doesn't mind or they // wouldn't be using single precision. const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } break; case Tstring: { // Allow only if string can be converted to an integer. const KeyData& thisKey = static_cast&>(*this); std::istringstream testStream(thisKey.keyval()); int stringInt = 0; if (!(testStream >> stringInt) || !testStream.eof()) { throw Keyword::WrongKeywordValueType(name()); } val = stringInt; } break; default: throw Keyword::WrongKeywordValueType(name()); break; } return val; } template <> int& Keyword::value(int& val) const { if (m_keytype == Tstring) { // Allow only if string can be converted to an integer. const KeyData& thisKey = static_cast&>(*this); std::istringstream testStream(thisKey.keyval()); int stringInt = 0; if (!(testStream >> stringInt) || !testStream.eof()) { throw Keyword::WrongKeywordValueType(name()); } val = stringInt; } else if (m_keytype == Tint) { const KeyData& thisKey = static_cast&>(*this); val = thisKey.keyval(); } else { throw Keyword::WrongKeywordValueType(name()); } return val; } template <> void Keyword::setValue(const float& newValue) { if (m_keytype == Tfloat) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } else if (m_keytype == Tdouble) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else { throw Keyword::WrongKeywordValueType(name()); } } template <> void Keyword::setValue(const double& newValue) { if (m_keytype == Tdouble) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } else if (m_keytype == Tfloat) { // This will lose precision but allow it anyway. KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else { throw Keyword::WrongKeywordValueType(name()); } } template <> void Keyword::setValue(const int& newValue) { if (m_keytype == Tint) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(newValue); thisKey.write(); } else if (m_keytype == Tfloat) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else if (m_keytype == Tdouble) { KeyData& thisKey = static_cast&>(*this); thisKey.keyval(static_cast(newValue)); thisKey.write(); } else if (m_keytype == Tstring) { KeyData& thisKey = static_cast&>(*this); std::ostringstream oss; oss << newValue; thisKey.keyval(oss.str()); thisKey.write(); } else { throw Keyword::WrongKeywordValueType(name()); } } #endif #endif } CCfits/KeywordCreator.cxx0000644000225700000360000002117211470265345015221 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SSTREAM_DEFECT #include #else #include #endif // HDU #include "HDU.h" // KeywordCreator #include "KeywordCreator.h" //#include "HDU.h" using std::cout; using std::endl; namespace CCfits { // Class CCfits::KeywordCreator KeywordCreator::KeywordCreator (HDU* p) : m_keyword(0), m_forHDU(p) { } KeywordCreator::~KeywordCreator() { } Keyword* KeywordCreator::getKeyword (const String& keyName, HDU* p) { int status=0; FITSUtil::auto_array_ptr pCard(new char[FLEN_CARD]); FITSUtil::auto_array_ptr pV(new char[FLEN_VALUE]); FITSUtil::auto_array_ptr pCom(new char[FLEN_COMMENT]); char* card = pCard.get(); char* v = pV.get(); char* com = pCom.get(); if (fits_read_card(p->fitsPointer(), const_cast(keyName.c_str()), card,&status) ) throw FitsError(status); if (fits_parse_value(card, v, com, &status)) throw FitsError(status); String valString(v); if (KeywordCreator::isContinued(valString)) { bool restoreQuote = valString[0] == '\''; KeywordCreator::getLongValueString(p, keyName, valString); if (restoreQuote) { valString = '\'' + valString + '\''; } } return parseRecord(keyName,valString,String(com),p); } Keyword* KeywordCreator::createKeyword (const String& keyName, const String& comment) { if (m_keyword == 0) m_keyword = MakeKeyword(keyName,comment); return m_keyword; } Keyword* KeywordCreator::getKeyword (const String& keyName, ValueType keyType, HDU* p) { int status = 0; String val = ""; bool bvalue = 0; float fvalue = 0; double dvalue = 0; std::complex xvalue; std::complex zvalue; int ivalue = 0; unsigned int uvalue = 0; short isvalue = 0; unsigned short usvalue = 0; long ilvalue = 0; unsigned long ulvalue = 0; unsigned char byteVal = 0; FITSUtil::auto_array_ptr pCard(new char[FLEN_CARD]); FITSUtil::auto_array_ptr pV(new char[FLEN_VALUE]); FITSUtil::auto_array_ptr pCom(new char[FLEN_COMMENT]); char* card = pCard.get(); char* v = pV.get(); char* com = pCom.get(); Keyword* readKey = 0; if (fits_read_card(p->fitsPointer(), const_cast(keyName.c_str()), card,&status) ) throw FitsError(status); if (fits_parse_value(card, v, com, &status)) throw FitsError(status); String value(v); String comment(com); if (KeywordCreator::isContinued(value)) { bool restoreQuote = value[0] == '\''; KeywordCreator::getLongValueString(p, keyName, value); if (restoreQuote) { value = '\'' + value + '\''; } } #ifdef SSTREAM_DEFECT std::istrstream vstream( value.c_str() ); #else std::istringstream vstream(value); #endif switch (keyType) { case Tstring: readKey = new KeyData(keyName, Tstring, value, p, comment); break; case Tlogical: vstream >> bvalue; readKey = new KeyData(keyName, Tlogical, bvalue, p, comment); break; case Tbyte: vstream >> byteVal; readKey = new KeyData(keyName, Tbyte, byteVal, p, comment); break; case Tfloat: vstream >> fvalue; readKey = new KeyData(keyName, Tfloat, fvalue, p, comment); break; case Tdouble: vstream >> dvalue; readKey = new KeyData(keyName, Tdouble, dvalue, p, comment); break; case Tcomplex: vstream >> xvalue; readKey = new KeyData >(keyName, Tcomplex, xvalue, p, comment); break; case Tdblcomplex: vstream >> zvalue; readKey = new KeyData >(keyName, Tdblcomplex, zvalue, p, comment); break; case Tint: vstream >> ivalue; readKey = new KeyData(keyName, Tint, ivalue, p, comment); break; case Tuint: vstream >> uvalue; readKey = new KeyData(keyName, Tuint, uvalue, p, comment); break; case Tshort: vstream >> isvalue; readKey = new KeyData(keyName, Tshort, isvalue, p, comment); break; case Tushort: vstream >> usvalue; readKey = new KeyData(keyName, Tushort, usvalue, p, comment); break; case Tlong: vstream >> ilvalue; readKey = new KeyData(keyName, Tlong, ilvalue, p, comment); break; case Tulong: vstream >> ulvalue; readKey = new KeyData(keyName, Tulong, ulvalue, p, comment); break; default: std::cerr << "Unknown keyword type\n"; } return readKey; } Keyword* KeywordCreator::getKeyword (int keyNumber, HDU* p) { FITSUtil::auto_array_ptr pValue(new char[FLEN_VALUE]); FITSUtil::auto_array_ptr pKey(new char[FLEN_KEYWORD]); FITSUtil::auto_array_ptr pComment(new char[FLEN_COMMENT]); char* key = pKey.get(); char* comment = pComment.get(); char* value = pValue.get(); int status(0); if (fits_read_keyn(p->fitsPointer(),keyNumber,key,value,comment,&status)) { throw FitsError(status); } String valString(value); if (KeywordCreator::isContinued(valString)) { bool restoreQuote = valString[0] == '\''; KeywordCreator::getLongValueString(p, String(key), valString); if (restoreQuote) { valString = '\'' + valString + '\''; } } int keyClass (fits_get_keyclass(key)); if ( keyClass == TYP_COMM_KEY || keyClass == TYP_CONT_KEY) { return 0; } else { return parseRecord(String(key),valString,String(comment),p); } } Keyword* KeywordCreator::parseRecord (const String& name, const String& valueString, const String& comment, HDU* hdu) { char keyType('\0'); String value (""); bool bvalue (0); double dvalue (0); int ivalue (0); std::complex xvalue(0,0); int status (0); if ( valueString[0] == '\'') { value = valueString.substr(1,valueString.length()-2); } else { value = valueString; } #ifdef SSTREAM_DEFECT std::istrstream vstream( value.c_str() ); #else std::istringstream vstream(value); #endif if (fits_get_keytype(const_cast(valueString.c_str()), &keyType, &status)) { throw FitsError(status); } switch(keyType) { case 'L': value == "T" ? bvalue = true : bvalue = false; return new KeyData(name, Tlogical, bvalue, hdu, comment); break; case 'F': vstream >> dvalue; return new KeyData(name, Tdouble, dvalue, hdu, comment); break; case 'I': case 'T': vstream >> ivalue; return new KeyData(name, Tint, ivalue, hdu, comment); break; case 'X': vstream >> xvalue; return new KeyData >(name, Tcomplex, xvalue, hdu, comment); case 'C': default: return new KeyData(name, Tstring, value.substr(0,value.find_last_not_of(" ")+1),hdu, comment); } } bool KeywordCreator::isContinued (const String& value) { // Check whether the last non-whitespace char in the value string // is an ampersand, which indicates the value string is to be // continued on the next line. bool status = false; String::size_type ampTest = value.find_last_not_of(String(" \n\t'")); if (ampTest != String::npos) { if (value[ampTest] == '&') { status = true; } } return status; } void KeywordCreator::getLongValueString (HDU* p, const String& keyName, String& value) { char* lv = 0; int status = 0; // The following function actually allocates the memory for the // lv string - very unusual for cfitsio. if (fits_read_key_longstr(p->fitsPointer(), const_cast(keyName.c_str()), &lv, 0, &status)) { delete lv; throw FitsError(status); } value = String(lv); delete lv; } // Additional Declarations } // namespace CCfits CCfits/PHDU.cxx0000644000225700000360000001036411470265345013016 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // FITS #include "FITS.h" // FITSBase #include "FITSBase.h" // PHDU #include "PHDU.h" namespace CCfits { // Class CCfits::PHDU PHDU::PHDU(const PHDU &right) : HDU(right), m_simple(true), m_extend(true) { } PHDU::PHDU (FITSBase* p, int bpix, int naxis, const std::vector& axes) : HDU(p,bpix,naxis, axes), m_simple(true), m_extend(true) { int status (0); // If file name explicitly asks for compression, don't create an // image here. Primaries can't hold compressed images. The FITS // image ctor will have to create an image extension instead. string::size_type compressSpecifier = FITSUtil::checkForCompressString(p->name()); if (compressSpecifier == string::npos) { long *naxesArray = 0; FITSUtil::CVarray convert; naxesArray = convert(axes); if (fits_create_img(fitsPointer(), bpix, naxis, naxesArray, &status) != 0) { delete [] naxesArray; throw FitsError(status); } if (fits_flush_file(fitsPointer(),&status)) { delete [] naxesArray; throw FitsError(status); } delete [] naxesArray; } index(0); } PHDU::PHDU (FITSBase* p) //! Reading Primary HDU constructor. /*! Constructor used when reading the primary HDU from an existing file. * Does nothing except initialize, with the real work done by the subclass * PrimaryHDU. */ : HDU(p), m_simple(true), m_extend(true) { } PHDU::~PHDU() { //! Destructor } void PHDU::initRead () { //! Read image header and update fits pointer accordingly. /*! Private: called by ctor. */ long pcount=0, gcount=0; int status=0; int simp = 0; int xtend = 0; int numAxes = 0; if (fits_get_img_dim(fitsPointer(), &numAxes, &status) != 0) { throw FitsError(status); } naxis() = numAxes; FITSUtil::auto_array_ptr pAxes(0); if (numAxes > 0) pAxes.reset(new long[numAxes]); long* axes = pAxes.get(); int bpix = 0; if (fits_read_imghdr(fitsPointer(), MAXDIM, &simp, &bpix, &numAxes, axes, &pcount, &gcount, &xtend, &status) != 0) throw FitsError(status); bitpix(bpix); simple(simp != 0); extend(xtend != 0); if (numAxes > 0) { naxes().resize(naxis()); std::copy(&axes[0],&axes[numAxes],naxes().begin()); } } void PHDU::zero (double value) { makeThisCurrent(); if (checkImgDataTypeChange(value, scale())) { if ( naxis()) { int status(0); if (fits_update_key(fitsPointer(), Tdouble, BZERO, &value, 0, &status)) throw FitsError(status); fits_flush_file(fitsPointer(), &status); HDU::zero(value); } } else { bool silent=false; string msg("CCfits Error: Cannot set BZERO to a value which will change image data\n"); msg += " from integer type to floating point type."; throw FitsException(msg,silent); } } void PHDU::scale (double value) { makeThisCurrent(); if (checkImgDataTypeChange(zero(), value)) { if (naxis()) { int status(0); if (fits_update_key(fitsPointer(), Tdouble, BSCALE, &value, 0, &status)) throw FitsError(status); fits_flush_file(fitsPointer(), &status); HDU::scale(value); } } else { bool silent=false; string msg("CCfits Error: Cannot set BSCALE to a value which will change image data\n"); msg += " from integer type to floating point type."; throw FitsException(msg,silent); } } double PHDU::zero () const { return HDU::zero(); } double PHDU::scale () const { return HDU::scale(); } // Additional Declarations } // namespace CCfits CCfits/Table.cxx0000644000225700000360000002612411470265345013306 0ustar cagordonlhea// Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // Column #include "Column.h" // ColumnCreator #include "ColumnCreator.h" // Table #include "Table.h" // FITS #include "FITS.h" #include #include namespace CCfits { // Class CCfits::Table::NoSuchColumn Table::NoSuchColumn::NoSuchColumn (const String& name, bool silent) : FitsException("Fits Error: cannot find column named: ",silent) { addToMessage(name); if (!silent || FITS::verboseMode() ) std::cerr << name << '\n'; } Table::NoSuchColumn::NoSuchColumn (int index, bool silent) : FitsException("Fits Error: no column numbered: ",silent) { std::ostringstream oss; oss << index; addToMessage(oss.str()); if (!silent || FITS::verboseMode() ) std::cerr << index << '\n'; } // Class CCfits::Table::InvalidColumnSpecification Table::InvalidColumnSpecification::InvalidColumnSpecification (const String& msg, bool silent) : FitsException("Fits Error: illegal column specification ",silent) { addToMessage(msg); if (!silent || FITS::verboseMode() ) std::cerr << msg << '\n'; } // Class CCfits::Table Table::Table(const Table &right) : ExtHDU(right), m_numCols(right.m_numCols), m_column() { // deep-copy the right hand side data. copyData(right); } Table::Table (FITSBase* p, HduType xtype, const String &hduName, int rows, const std::vector& columnName, const std::vector& columnFmt, const std::vector& columnUnit, int version) : ExtHDU(p, xtype, hduName, 8, 2, std::vector(2), version), m_numCols(columnName.size()), m_column() { int status=0; // remember this is the writing constructor so user must specify // what kind of extension this is. int tblType = xtype; naxes(1) = rows; const size_t n(columnName.size()); //FITSUtil::auto_array_ptr pCname(new char*[n]); //FITSUtil::auto_array_ptr pCformat(new char*[n]); //FITSUtil::auto_array_ptr pCunit(new char*[n]); char** cname = new char*[n]; char** cformat = new char*[n]; char** cunit = new char*[n]; char nullString[] = {'\0'}; for (size_t i = 0; i < n; ++i) { cname[i] = const_cast(columnName[i].c_str()); cformat[i] = const_cast(columnFmt[i].c_str()); if (i < columnUnit.size()) cunit[i] = const_cast(columnUnit[i].c_str()); else cunit[i] = nullString; } if (fits_create_tbl(fitsPointer(), tblType, rows , m_numCols, cname, cformat, cunit, const_cast(hduName.c_str()), &status)) { delete [] cname; delete [] cformat; delete [] cunit; throw FitsError(status); } delete[] cname; delete[] cformat; delete[] cunit; } Table::Table (FITSBase* p, HduType xtype, const String &hduName, int version) : ExtHDU(p,xtype,hduName,version), m_numCols(0), m_column() { getVersion(); } Table::Table (FITSBase* p, HduType xtype, int number) : ExtHDU(p,xtype,number), m_numCols(0), m_column() { getVersion(); } Table::~Table() { // destroy existing data (garbage collection for heap objects). clearData(); } void Table::initRead () { int ncols=0; int i=0; int status=0; status = fits_get_num_cols(fitsPointer(), &ncols, &status); if (status != 0) throw FitsError(status); std::vector colName(ncols,""); std::vector colFmt(ncols,""); std::vector colUnit(ncols,""); ColumnCreator create(this); // virtual readTableHeader(ncols, colName, colFmt, colUnit); for(i=0; i::const_iterator ki = keyWord().begin(); ki != keyWord().end(); ki++) { s << *((*ki).second) << std::endl; } std::vector __tmp; std::map::const_iterator ciEnd(m_column.end()); std::map::const_iterator ci(m_column.begin()); while (ci != ciEnd) { __tmp.push_back((*ci).second); ++ci; } std::sort(__tmp.begin(),__tmp.end(),FITSUtil::ComparePtrIndex()); for (std::vector::iterator lci = __tmp.begin(); lci != __tmp.end(); ++lci) { s << **lci << std::flush; } return s; } void Table::column (int columnNum, Column *value) { std::map::const_iterator columnByNum; for (columnByNum=m_column.begin(); columnByNum!=m_column.end(); columnByNum++) if ( ((*columnByNum).second)->index() == columnNum) break; m_column[(*columnByNum).first] = value; } void Table::init (bool readFlag, const std::vector& keys) { // read and defined the columns from the header. initRead(); // read data or keys if any are requested. if (readFlag || keys.size() > 0) readData(readFlag,keys); } void Table::clearData () { // obliterate current contents, then remove pointers from the map. for (std::map::const_iterator col = m_column.begin(); col != m_column.end(); col++) { delete (*col).second; } m_column.clear(); } void Table::copyData (const Table& right) { // ensure deep copy. clone() calls the copy constructor for Column. // Column has 'deep copy' because all its data members that need // to be copied (i.e. not the pointer to the fits file) are allocated // on the stack by being Container types. std::map newColumnContainer; try { for (std::map::const_iterator col = right.m_column.begin(); col != right.m_column.end(); col++) { Column* colCopy = (*col).second->clone(); // This function must be a friend of Column in order to do this... colCopy->m_parent = this; newColumnContainer[(*col).first] = colCopy; } m_column = newColumnContainer; } catch (...) { throw; } } Column& Table::column (const String& colName, bool caseSensitive) const { bool isFound = false; std::map::const_iterator key = m_column.begin(); if (caseSensitive) { key = m_column.find(colName); isFound = (key != m_column.end()); } else { const string lcColName = FITSUtil::lowerCase(colName); while (!isFound && key != m_column.end()) { isFound = (lcColName == FITSUtil::lowerCase(key->first)); if (!isFound) ++key; } } if ( !isFound ) throw NoSuchColumn(colName); return *(key->second); } Column& Table::column (int colIndex) const { std::map::const_iterator key; for ( key = m_column.begin(); key != m_column.end(); key++) { if ( ((*key).second)->index() == colIndex) break; } if ( key == m_column.end() ) throw NoSuchColumn(colIndex); return *((*key).second); } void Table::updateRows () { long numrows(0); int status(0); if (fits_get_num_rows(fitsPointer(),&numrows,&status) ) throw FitsError(status); naxes(1,numrows); } void Table::setColumn (const String& colname, Column* value) { // don't do map's default behavior which is to add a new column // if the input name and data don't exist. m_column[colname] = value; } void Table::deleteColumn (const String& columnName) { Column& doomed = column(columnName); int status(0); if ( fits_delete_col(fitsPointer(),doomed.index(),&status) ) throw FitsError(status); delete &doomed; m_column.erase(columnName); reindex(); updateRows(); } void Table::insertRows (long first, long number) { int status(0); if (fits_insert_rows(fitsPointer(),first,number,&status)) throw FitsError(status); // cfitsio's semantics are that rows are insert after row first, // while vector's insert semantic is to insert before the initial. std::map::iterator ci = m_column.begin(); std::map::iterator ciEnd = m_column.end(); while (ci != ciEnd) { ((*ci).second)->insertRows(first,number); ++ci; } updateRows(); } void Table::deleteRows (long first, long number) { // this should only be able to throw the FitsError exception and // should not leak resources as per the standard library guarantee for vector. makeThisCurrent(); int status(0); // cfitsio will reject invalid values of first, number. (e.g. first <= 0). if (fits_delete_rows(fitsPointer(),first,number,&status)) throw FitsError(status); std::map::iterator ci = m_column.begin(); std::map::iterator ciEnd = m_column.end(); while (ci != ciEnd) { ((*ci).second)->deleteRows(first,number); ++ci; } updateRows(); } void Table::deleteRows (const std::vector& rowList) { int status(0); makeThisCurrent(); FITSUtil::CVarray convert; FITSUtil::auto_array_ptr pDoomedRows(convert(rowList)); long* doomedRows = pDoomedRows.get(); if (fits_delete_rowlist(fitsPointer(),doomedRows,rowList.size(),&status)) throw FitsError(status); std::map::iterator ci = m_column.begin(); std::map::iterator ciEnd = m_column.end(); const size_t N(rowList.size()); while (ci != ciEnd) { for (size_t j = 0; j < N; ++j) { ((*ci).second)->deleteRows(rowList[j],1); } ++ci; } updateRows(); } void Table::reindex () { makeThisCurrent(); std::map::iterator ci(m_column.begin()); std::map::iterator ciEnd(m_column.end()); int status(0); while (ci != ciEnd) { int colnum(0); char* cname = const_cast((*ci).first.c_str()); if (fits_get_colnum(fitsPointer(),CASESEN,cname,&colnum,&status)) throw FitsError(status); (*ci).second->index(colnum); ++ci; } } long Table::getRowsize () const { int status = 0; long rowSize = 0; if (fits_get_rowsize(fitsPointer(), &rowSize, &status)) throw FitsError(status); return rowSize; } // Additional Declarations } // namespace CCfits CCfits/cookbook.cxx0000644000225700000360000006071011470265345014064 0ustar cagordonlhea// cookbook CCfits demonstration program // Astrophysics Science Division, // NASA/ Goddard Space Flight Center // HEASARC // http://heasarc.gsfc.nasa.gov // e-mail: ccfits@legacy.gsfc.nasa.gov // // Original author: Ben Dorman // The CCfits headers are expected to be installed in a subdirectory of // the include path. // The header file contains all that is necessary to use both the CCfits // library and the cfitsio library (for example, it includes fitsio.h) thus making // all of cfitsio's symbolic names available. #ifdef _MSC_VER #include "MSconfig.h" // for truncation warning #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif // this includes 12 of the CCfits headers and will support all CCfits operations. // the installed location of the library headers is $(ROOT)/include/CCfits // to use the library either add -I$(ROOT)/include/CCfits or #include // in the compilation target. #include #include // The library is enclosed in a namespace. using namespace CCfits; using std::valarray; int main(); int writeImage(); int writeAscii(); int writeBinary(); int copyHDU(); int selectRows(); int readHeader(); int readImage(); int readTable(); int readExtendedSyntax(); int main() { FITS::setVerboseMode(true); try { if (!writeImage()) std::cerr << " writeImage() \n"; if (!writeAscii()) std::cerr << " writeAscii() \n"; if (!writeBinary()) std::cerr << " writeBinary() \n"; if (!copyHDU()) std::cerr << " copyHDU() \n"; if (!readHeader()) std::cerr << " readHeader() \n"; if (!readImage()) std::cerr << " readImage() \n"; if (!readTable()) std::cerr << " readTable() \n"; if (!readExtendedSyntax()) std::cerr << " readExtendedSyntax() \n"; if (!selectRows()) std::cerr << " selectRows() \n"; } catch (FitsException&) // will catch all exceptions thrown by CCfits, including errors // found by cfitsio (status != 0). { std::cerr << " Fits Exception Thrown by test function \n"; } return 0; } int writeImage() { // Create a FITS primary array containing a 2-D image // declare axis arrays. long naxis = 2; long naxes[2] = { 300, 200 }; // declare auto-pointer to FITS at function scope. Ensures no resources // leaked if something fails in dynamic allocation. std::auto_ptr pFits(0); try { // overwrite existing file if the file already exists. const std::string fileName("!atestfil.fit"); // Create a new FITS object, specifying the data type and axes for the primary // image. Simultaneously create the corresponding file. // this image is unsigned short data, demonstrating the cfitsio extension // to the FITS standard. pFits.reset( new FITS(fileName , USHORT_IMG , naxis , naxes ) ); } catch (FITS::CantCreate) { // ... or not, as the case may be. return -1; } // references for clarity. long& vectorLength = naxes[0]; long& numberOfRows = naxes[1]; long nelements(1); // Find the total size of the array. // this is a little fancier than necessary ( It's only // calculating naxes[0]*naxes[1]) but it demonstrates use of the // C++ standard library accumulate algorithm. nelements = std::accumulate(&naxes[0],&naxes[naxis],1,std::multiplies()); // create a new image extension with a 300x300 array containing float data. std::vector extAx(2,300); string newName ("NEW-EXTENSION"); ExtHDU* imageExt = pFits->addImage(newName,FLOAT_IMG,extAx); // create a dummy row with a ramp. Create an array and copy the row to // row-sized slices. [also demonstrates the use of valarray slices]. // also demonstrate implicit type conversion when writing to the image: // input array will be of type float. std::valarray row(vectorLength); for (long j = 0; j < vectorLength; ++j) row[j] = j; std::valarray array(nelements); for (int i = 0; i < numberOfRows; ++i) { array[std::slice(vectorLength*static_cast(i),vectorLength,1)] = row + i; } #ifdef VALARRAY_DEFECT const double PI ( std::atan(1.)*4. ); #else const double PI (std::atan(1.)*4.); #endif // create some data for the image extension. long extElements = std::accumulate(extAx.begin(),extAx.end(),1,std::multiplies()); std::valarray ranData(extElements); const float PIBY = static_cast < float > (PI/150.); for ( int jj = 0 ; jj < extElements ; ++jj) { float arg = static_cast < float > ( PIBY*jj ); #ifdef VALARRAY_DEFECT float val = std::cos( arg ); ranData[jj] = val; #else ranData[jj] = static_cast < float > ( std::cos(arg) ); #endif } long fpixel(1); // write the image extension data: also demonstrates switching between // HDUs. imageExt->write(fpixel,extElements,ranData); //add two keys to the primary header, one long, one complex. long exposure(1500); #ifdef VALARRAY_DEFECT double re = std::cos( 2*PI/3.0 ); double im = std::sin( 2*PI/3.0 ); std::complex omega( re, im ); #else float re = static_cast < float > ( std::cos(2*PI/3.) ); float im = static_cast < float > ( std::sin(2*PI/3.) ); std::complex omega( re, im ); #endif pFits->pHDU().addKey("EXPOSURE", exposure,"Total Exposure Time"); pFits->pHDU().addKey("OMEGA",omega," Complex cube root of 1 "); // The function PHDU& FITS::pHDU() returns a reference to the object representing // the primary HDU; PHDU::write( ) is then used to write the data. pFits->pHDU().write(fpixel,nelements,array); // PHDU's friend ostream operator. Doesn't print the entire array, just the // required & user keywords, and is provided largely for testing purposes [see // readImage() for an example of how to output the image array to a stream]. std::cout << pFits->pHDU() << std::endl; return 0; } int writeAscii () //****************************************************************** // Create an ASCII Table extension containing 3 columns and 6 rows * //****************************************************************** { // declare auto-pointer to FITS at function scope. Ensures no resources // leaked if something fails in dynamic allocation. std::auto_ptr pFits(0); try { const std::string fileName("atestfil.fit"); // append the new extension to file created in previous function call. // CCfits writing constructor. // if this had been a new file, then the following code would create // a dummy primary array with BITPIX=8 and NAXIS=0. pFits.reset( new FITS(fileName,Write) ); } catch (CCfits::FITS::CantOpen) { // ... or not, as the case may be. return -1; } unsigned long rows(6); string hduName("PLANETS_ASCII"); std::vector colName(3,""); std::vector colForm(3,""); std::vector colUnit(3,""); /* define the name, datatype, and physical units for the 3 columns */ colName[0] = "Planet"; colName[1] = "Diameter"; colName[2] = "Density"; colForm[0] = "a8"; colForm[1] = "i6"; colForm[2] = "f4.2"; colUnit[0] = ""; colUnit[1] = "km"; colUnit[2] = "g/cm^-3"; std::vector planets(rows); const char *planet[] = {"Mercury", "Venus", "Earth", "Mars","Jupiter","Saturn"}; const char *mnemoy[] = {"Many", "Volcanoes", "Erupt", "Mulberry","Jam","Sandwiches","Under", "Normal","Pressure"}; long diameter[] = { 4880, 12112, 12742, 6800, 143000, 121000}; float density[] = { 5.1f, 5.3f, 5.52f, 3.94f, 1.33f, 0.69f}; // append a new ASCII table to the fits file. Note that the user // cannot call the Ascii or Bin Table constructors directly as they // are protected. Table* newTable = pFits->addTable(hduName,rows,colName,colForm,colUnit,AsciiTbl); size_t j = 0; for ( ; j < rows; ++j) planets[j] = string(planet[j]); // Table::column(const std::string& name) returns a reference to a Column object try { newTable->column(colName[0]).write(planets,1); newTable->column(colName[1]).write(diameter,rows,1); newTable->column(colName[2]).write(density,rows,1); } catch (FitsException&) { // ExtHDU::column could in principle throw a NoSuchColumn exception, // or some other fits error may ensue. std::cerr << " Error in writing to columns - check e.g. that columns of specified name " << " exist in the extension \n"; } // FITSUtil::auto_array_ptr is provided to counter resource leaks that // may arise from C-arrays. It is a std::auto_ptr analog that calls // delete[] instead of delete. FITSUtil::auto_array_ptr pDiameter(new long[rows]); FITSUtil::auto_array_ptr pDensity(new float[rows]); long* Cdiameter = pDiameter.get(); float* Cdensity = pDensity.get(); Cdiameter[0] = 4880; Cdiameter[1] = 12112; Cdiameter[2] = 12742; Cdiameter[3] = 6800; Cdiameter[4] = 143000; Cdiameter[5] = 121000; Cdensity[0] = 5.1f; Cdensity[1] = 5.3f; Cdensity[2] = 5.52f; Cdensity[3] = 3.94f; Cdensity[4] = 1.33f; Cdensity[5] = 0.69; // this << operator outputs everything that has been read. std::cout << *newTable << std::endl; pFits->pHDU().addKey("NEWVALUE",42," Test of adding keyword to different extension"); pFits->pHDU().addKey("STRING",std::string(" Rope "),"trailing blank test 1 "); pFits->pHDU().addKey("STRING2",std::string("Cord"),"trailing blank test 2 "); // demonstrate increaing number of rows and null values. long ignoreVal(12112); long nullNumber(-999); try { // add a TNULLn value to column 2. newTable->column(colName[1]).addNullValue(nullNumber); // test that writing new data properly expands the number of rows // in both the file]).write(planets,rows-3); newTable->column(colName[2]).write(density,rows,rows-3); // test the undefined value functionality. Undefineds are replaced on // disk but not in the memory copy. newTable->column(colName[1]).write(diameter,rows,rows-3,&ignoreVal); } catch (FitsException&) { // this time we're going to ignore problems in these operations } // output header information to check that everything we did so far // hasn't corrupted the file. std::cout << pFits->pHDU() << std::endl; std::vector mnemon(9); for ( j = 0; j < 9; ++j) mnemon[j] = string(mnemoy[j]); // Add a new column of string type to the Table. // type, columnName, width, units. [optional - decimals, column number] // decimals is only relevant for floatingpoint data in ascii columns. newTable->addColumn(Tstring,"Mnemonic",10," words "); newTable->column("Mnemonic").write(mnemon,1); // write the data string. newTable->writeDate(); // and see if it all worked right. std::cout << *newTable << std::endl; return 0; } int writeBinary () //********************************************************************* // Create a BINARY table extension and write and manipulate vector rows //********************************************************************* { std::auto_ptr pFits(0); try { const std::string fileName("atestfil.fit"); pFits.reset( new FITS(fileName,Write) ); } catch (CCfits::FITS::CantOpen) { return -1; } unsigned long rows(3); string hduName("TABLE_BINARY"); std::vector colName(7,""); std::vector colForm(7,""); std::vector colUnit(7,""); colName[0] = "numbers"; colName[1] = "sequences"; colName[2] = "powers"; colName[3] = "big-integers"; colName[4] = "dcomplex-roots"; colName[5] = "fcomplex-roots"; colName[6] = "scalar-complex"; colForm[0] = "8A"; colForm[1] = "20J"; colForm[2] = "20D"; colForm[3] = "20V"; colForm[4] = "20M"; colForm[5] = "20C"; colForm[6] = "1M"; colUnit[0] = "magnets"; colUnit[1] = "bulbs"; colUnit[2] = "batteries"; colUnit[3] = "mulberries"; colUnit[4] = ""; colUnit[5] = ""; colUnit[6] = "pico boo"; std::vector numbers(rows); const string num("NUMBER-"); for ( size_t j = 0; j < rows; ++j) { #ifdef SSTREAM_DEFECT std::ostrstream pStr; #else std::ostringstream pStr; #endif pStr << num << j+1; #ifdef SSTREAM_DEFECT pStr << std::ends; #endif numbers[j] = string(pStr.str()); } const size_t OFFSET(20); // write operations take in data as valarray, vector , and // vector >, and T* C-arrays. Create arrays to exercise the C++ // containers. Check complex I/O for both float and double complex types. std::valarray sequence(60); std::vector sequenceVector(60); std::vector > sequenceVV(3); for ( size_t j = 0; j < rows; ++j) { sequence[OFFSET*j] = 1 + j; sequence[OFFSET*j+1] = 1 + j; sequenceVector[OFFSET*j] = sequence[OFFSET*j]; sequenceVector[OFFSET*j+1] = sequence[OFFSET*j+1]; // generate Fibonacci numbers. for (size_t i = 2; i < OFFSET; ++i) { size_t elt (OFFSET*j +i); sequence[elt] = sequence[elt-1] + sequence[elt - 2]; sequenceVector[elt] = sequence[elt] ; } sequenceVV[j].resize(OFFSET); sequenceVV[j] = sequence[std::slice(OFFSET*j,OFFSET,1)]; } std::valarray unsignedData(60); unsigned int base (1 << 31); std::valarray powers(60); std::vector powerVector(60); std::vector > powerVV(3); std::valarray > croots(60); std::valarray > fcroots(60); std::vector > fcroots_vector(60); std::vector > > fcrootv(3); const double PI (std::atan(1.)*4.); // create complex data as 60th roots of unity. double PIBY = PI/60.; for ( size_t j = 0; j < rows; ++j) { for (size_t i = 0; i < OFFSET; ++i) { size_t elt (OFFSET*j+i); unsignedData[elt] = sequence[elt]; #ifdef VALARRAY_DEFECT double re = std::cos(PIBY*elt); double im = std::sin(PIBY*elt); croots[elt] = std::complex( re, im ); #else croots[elt] = std::complex(std::cos(PIBY*elt),std::sin(PIBY*elt)); #endif fcroots[elt] = std::complex(croots[elt].real(),croots[elt].imag()); double x = i+1; powers[elt] = pow(x,(int)j+1); powerVector[elt] = powers[elt]; } powerVV[j].resize(OFFSET); powerVV[j] = powers[std::slice(OFFSET*j,OFFSET,1)]; } #ifdef TEMPLATE_AMBIG7_DEFECT std::slice s ( 0, 20, 1 ); std::valarray > fcroots_sliced ( fcroots[s] ); FITSUtil::fillMSva(fcroots_vector, fcroots_sliced ); #else FITSUtil::fill(fcroots_vector,fcroots[std::slice(0,20,1)]); #endif unsignedData += base; // syntax identical to Binary Table Table* newTable = pFits->addTable(hduName,rows,colName,colForm,colUnit); // numbers is a scalar column newTable->column(colName[0]).write(numbers,1); // write valarrays to vector column: note signature change newTable->column(colName[1]).write(sequence,rows,1); newTable->column(colName[2]).write(powers,rows,1); newTable->column(colName[3]).write(unsignedData,rows,1); newTable->column(colName[4]).write(croots,rows,1); newTable->column(colName[5]).write(fcroots,rows,3); newTable->column(colName[6]).write(fcroots_vector,1); // write vectors to column: note signature change newTable->column(colName[1]).write(sequenceVector,rows,4); newTable->column(colName[2]).write(powerVector,rows,4); std::cout << *newTable << std::endl; for (size_t j = 0; j < 3 ; ++j) { fcrootv[j].resize(20); fcrootv[j] = fcroots[std::slice(20*j,20,1)]; } // write vector object to column. newTable->column(colName[1]).writeArrays(sequenceVV,7); newTable->column(colName[2]).writeArrays(powerVV,7); // create a new vector column in the Table newTable->addColumn(Tfloat,"powerSeq",20,"none"); // add data entries to it. newTable->column("powerSeq").writeArrays(powerVV,1); newTable->column("powerSeq").write(powerVector,rows,4); newTable->column("dcomplex-roots").write(croots,rows,4); newTable->column("powerSeq").write(sequenceVector,rows,7); std::cout << *newTable << std::endl; // delete one of the original columns. newTable->deleteColumn(colName[2]); // add a new set of rows starting after row 3. So we'll have 14 with // rows 4,5,6,7,8 blank newTable->insertRows(3,5); // now, in the new column, write 3 rows (sequenceVV.size() = 3). This // will place data in rows 3,4,5 of this column,overwriting them. newTable->column("powerSeq").writeArrays(sequenceVV,3); newTable->column("fcomplex-roots").writeArrays(fcrootv,3); // delete 3 rows starting with row 2. A Table:: method, so the same // code is called for all Table objects. We should now have 11 rows. newTable->deleteRows(2,3); //add a history string. This function call is in HDU:: so is identical //for all HDUs string hist("This file was created for testing CCfits write functionality"); hist += " it serves no other useful purpose. This particular part of the file was "; hist += " constructed to test the writeHistory() and writeComment() functionality" ; newTable->writeHistory(hist); // add a comment string. Use std::string method to change the text in the message // and write the previous junk as a comment. hist.insert(0, " COMMENT TEST "); newTable->writeComment(hist); // ... print the result. std::cout << *newTable << std::endl; return 0; } int copyHDU() { //*******************************************************************/ // copy the 1st and 3rd HDUs from the input file to a new FITS file */ //*******************************************************************/ const string inFileName("atestfil.fit"); const string outFileName("btestfil.fit"); int status(0); status = 0; remove(outFileName.c_str()); /* Delete old file if it already exists */ // open the existing FITS file (Read is the default anyway) FITS inFile(inFileName,Read); // custom constructor FITS::FITS(const string&, const FITS&) for // this particular task. FITS outFile(outFileName,inFile); // copy extension by number... outFile.copy(inFile.extension(2)); // copy extension by name... outFile.copy(inFile.extension("TABLE_BINARY")); return 0; } int readHeader() { const string SPECTRUM("SPECTRUM"); // read a particular HDU within the file. This call reads just the header // information from SPECTRUM std::auto_ptr pInfile(new FITS("file1.pha",Read,SPECTRUM)); // define a reference for clarity. ExtHDU& table = pInfile->extension(SPECTRUM); // read all the keywords, excluding those associated with columns. table.readAllKeys(); // print the result. std::cout << table << std::endl; return 0; } int readImage() { std::auto_ptr pInfile(new FITS("atestfil.fit",Read,true)); PHDU& image = pInfile->pHDU(); std::valarray contents; // read all user-specifed, coordinate, and checksum keys in the image image.readAllKeys(); image.read(contents); // this doesn't print the data, just header info. std::cout << image << std::endl; long ax1(image.axis(0)); long ax2(image.axis(1)); for (long j = 0; j < ax2; j+=10) { std::ostream_iterator c(std::cout,"\t"); std::copy(&contents[0]+j*ax1,&contents[0]+(j+1)*ax1,c); std::cout << '\n'; } std::cout << std::endl; return 0; } int readTable() { // read a table and explicitly read selected columns. To read all the // data on construction, set the last argument of the FITS constructor // call to 'true'. This has been tested. std::vector hdus(2); hdus[0] = "PLANETS_ASCII"; hdus[1] = "TABLE_BINARY"; std::auto_ptr pInfile(new FITS("atestfil.fit",Read,hdus,false)); ExtHDU& table = pInfile->extension(hdus[1]); std::vector < valarray > pp; table.column("powerSeq").readArrays( pp, 1,3 ); std::vector < valarray > > cc; table.column("dcomplex-roots").readArrays( cc, 1,3 ); std::valarray < std::complex > ff; table.column("fcomplex-roots").read( ff, 7 ); std::vector > sf; table.column("scalar-complex").read(sf, 10, 15); std::cout << pInfile->extension(hdus[0]) << std::endl; std::cout << pInfile->extension(hdus[1]) << std::endl; return 0; } int readExtendedSyntax() { // Current extension will be set to PLANETS_ASCII after construction: std::auto_ptr pInfile(new FITS("btestfil.fit[PLANETS_ASCII][Density > 5.2]")); std::cout << "\nCurrent extension: " << pInfile->currentExtensionName() << std::endl; Column& col = pInfile->currentExtension().column("Density"); std::vector densities; // nRows should only include rows with density column vals > 5.2. const int nRows = col.rows(); col.read(densities, 1, nRows); for (int i=0; i pInfile(new FITS(inFile,Write,string("PLANETS_ASCII"))); FITS* infile = pInfile.get(); std::auto_ptr pNewfile(new FITS(newFile,Write)); ExtHDU& source = infile->extension("PLANETS_ASCII"); const string expression("DENSITY > 3.0"); Table& sink1 = pNewfile.get()->filter(expression,source,false,true); std::cout << sink1 << std::endl; // test 2: write a new HDU to the current file, overwrite false, read true. // AS OF 7/2/01 does not work because of a bug in cfitsio, but does not // crash, simply writes a new header to the file without also writing the // selected data. Table& sink2 = infile->filter(expression,source,false,true); std::cout << sink2 << std::endl; // reset the source file back to the extension in question. source = infile->extension("PLANETS_ASCII"); // test 3: overwrite the current HDU with filtered data. Table& sink3 = infile->filter(expression,source,true,true); std::cout << sink3 << std::endl; return 0; } CCfits/CHANGES0000644000225700000360000004573111666222327012533 0ustar cagordonlheaChanges for CCfits 2.4 - Fix to allow writing to compressed images of BITPIX=32 on 64-bit Linux platforms. This is done by storing the internal image array as type int rather than type long. Compatibility issue: this changes the return type of the ImageExt::image() function. (12/11) HDUCreator.cxx PHDUT.h ExtHDUT.h - Fixes made to the null-value versions of the write functions for primary and extension images. (12/11) PHDUT.h ExtHDUT.h - Added the ability of variable-width columns to perform the usual numerical data type casting when the write function input arrays do not contain exactly the same type of values as the Column object. This change also includes much internal code refactoring among the various vector column write functions. (11/11) ColumnT.h - To remove Intel compiler warnings, replaced switch/case with specialized templates in FitsNullValue functor. Also cleaned up integer type casting in deleteRows function, which fixes a bug in the Column object's internal storage of data. (11/11) FITSUtil.h ColumnVectorData.h - Fix for case of using basic FITS constructor on files containing multiple extensions with the same name AND version number. (11/11) ExtHDU.cxx HDUCreator.cxx, .h - BinTable's addColumn should call makeThisCurrent(). Otherwise user has to do it. (11/11) BinTable.cxx Changes for CCfits 2.3 - Bug fix for the setting of the column's lower data limit for the specific case of unsigned longs. It had been leaving this unitialized. (11/10) Column.cxx - When images are read from disk via CFITSIO, now copying directly to m_image valarray rather than a temporary C-style array. This cuts the required memory usage in half for this operation, important for very large images. (11/10) Image.h - New function: ExtHDU::isCompressed(), returns true if image is stored with compression. (11/10) ExtHDU.cxx, .h - For the basic version of the FITS constructor, when called in Write mode on a pre-existing file, it now automatically reads all of the headers rather than just the primary. It also now passes along the user's readDataFlag and optional primary keys settings. (11/10) FITS.cxx - In all FITS::read functions, now performs check to prevent multiple entries of the same HDU in the extensions multimap. (11/10) FITS.cxx, .h FITSBase.h - In the 2 deleteExtension functions, all extensions following the deleted one are now appropriately reindexed. (11/10) FITS.cxx - Fix to the PHDU::write functions which take a nullValue argument. Neither could be instantiated due to an invalid static_cast of pointers. (11/10) PHDUT.h - Changed Keyword's keytype() get function from protected to public. Did same for PHDU's simple() and extend() functions. (11/10) Keyword.h PHDU.h - Bug fix in Image's assignment operator. It was trying to swap with a const object. Since this isn't instantiated anywhere, compilers were letting it go. (11/10) Image.h - Bug fix in Table::copyData. New Columns' parent pointers must be reset to the new Table. Otherwise Columns created through the FITS::copy public function will not be modifiable. (02/10) Table.cxx Column.h - Bug fix for definition of ULBASE in FITSUtil. In the operation 1 << 31, the "1" must be explicitly cast to an unsigned long. Otherwise the compiler may treat it as a signed int, for which a left-shift of 31 bits is undefined. This was found to cause problems when reading images of type signed or unsigned long AND the receiving valarray type required casting, AND the platform was 64-bit Linux. (10/09) FITSUtil.cxx Changes for CCfits 2.2 - Bug fix for reading and writing complex data types to a scalar column. Also modified cookbook's readTable function to test this. ColumnData.cxx, .h (09/09) cookbook.cxx - Added public resetRead() function to Column. (09/09) Column.h - Renamed the private FITS::extension() function to extensionMap(). This is to prevent overload confusion with the public const extension() function. This mix-up was causing users to have to explicitly declare const FITS pointers to make sure the public function was the one called. (08/09) FITS.cxx, .h - Removed the storage of m_nullValue in ColumnData and ColumnVectorData classes. ColumnVectorData's private doWrite function now receives nullValue as an argument rather than relying on the data member. This fixes an obscure ColumnVectorData::writeData bug, where for valarrays of varying sizes being sent to fixed-width columns, a default null value was being sent to cfitsio even when user did not request it. More importantly, the removal of m_nullValue allows the Column::addNullValue to work when null value argument requires casting to match Column type. Also added new function Column::getNullValue. (08/09) Column.h ColumnT.h ColumnData.h ColumnVectorData.cxx, .h - Added public get functions column() and numCols() to ExtHDU, which were previously only available in the Table subclass. (08/09) ExtHDU.cxx, .h Table.h - Added optional flag to the ExtHDU and Table Column get-by-name functions, which allows for a case-insensitive search. This required renaming the protected column(string,Column*) function to setColumn. (08/09) AsciiTable.cxx BinTable.cxx ExtHDU.cxx, .h FITSUtil.cxx Table.cxx, .h - Converted all vector and valarray iterator syntax of form &v[v.size()] to either &v[0]+v.size() or v.end(). It was causing runtime exceptions on MS Visual C++ v9.0 when element bounds checking was enabled (the default). (08/09) ColumnVectorData.cxx, .h ExtHDUT.h Image.h PHDUT.h PrimaryHDU.h cookbook.cxx - Added pkg-config file for the stand-alone distribution. This also required slight changes to configure.in and Makefile.am. (08/09) CCfits.pc.in - Removed unused valarray "current" from ColumnVectorData::writeData (03/09) Changes for CCfits 2.1 - Modified several FITS constructors and FITS::open function to allow handling of extended filename syntax. (09/08) FITS.cxx, .h - FITS::resetPosition fix: it now erases the currentExtensionName string. (09/08) - Bug fix to FITS::read for case of missing EXTVER keyword when searching for HDU with extver > 1. (08/08) - Column.cxx now includes "fitsio.h" rather than "fitsio2.h" to get definitions of LONGLONG_MIN and MAX. This now makes CCfits dependent on cfitsio versions 3.08 or later. (07/08) Changes for CCfits 2.0 release 02/08 - The scale and zero set functions (public in HDU) will now write or update the keywords rather than call fits_set_bscale. They also now check for allowed image data type changes as a result of changing the bscale and bzero values. Added private zeroInit/scaleInit functions for use in HDUCreator. Also added new public function, HDU::suppressScaling. (01/08) ImageExt.h PHDU.cxx, .h HDU.cxx, .h HDUCreator.cxx - Changed access of HDU's bitpix set function from public to private. This requires that HDUCreator be a friend class of HDU. (01/08) HDU.h - Removed the redundant non-const version of FITS::filePointer and made the const version public instead of private. It also no longer returns by reference. (01/08) FITS.h, .cxx - Reorganized ImageExt constructor/assignment visibility and added virtual declaration to destructor. Also added docs. ImageExt.h - Added #include statements for and to allow compilation on g++ 4.3 (patch submitted by Aurelien Jarno) (01/08) ExtHDU.cxx FITS.cxx ColumnData.h FITSUtil.cxx HDU.cxx - Added the function getRowsize to the Table class, a wrapper for fits_get_rowsize. (Patrik Jonsson) Table.cxx, .h ExtHDU.cxx, .h - Made the const version of the Column parent accessor function public, and removed the non-const version. Column.h - Reorganized and improved keyword modification functions in HDU and Keyword classes. This includes new HDU addKey, copyAllKeys, and keywordCategories functions, and the removal of HDU::setKeyWord. Also fully implemented the Keyword value set function, with template specialization similar to the value get function, and added doc descriptions for both of these. (01/08) HDU.cxx, .h Keyword.cxx, .h KeywordT.h KeyData.cxx, .h - Bug fix to 2 of the 3 constructors which call the create() function. If create() returns false, they need to throw a CantCreate exception. They were appending the new primary hdu as an extension to the pre-existing file. (01/08) FITS.cxx, .h - To eliminate unnecessary dependences upon CFITSIO internals, removed the FITSUtil::copyFitsPtr function and everything using it: FITS copy ctor and clone functions, FITSBase copy ctor and clone functions. (Note that copyFitsPtr was never properly impelemented in its attempt to perform a deep copy of a fitsfile pointer.) (12/07) FITS.cxx, .h FITSBase.cxx, .h FITSUtil.cxx, .h - Added 4 new functions to HDU class to provide an interface to CFITSIO's checksum capabilities. (12/07) HDU.cxx, .h - Error messages are now stored in the FitsException base class, which allows them to be retrieved and copied with the public function message(). (12/07) FitsError.cxx, .h Column.cxx, ExtHDU.cxx, FITS.cxx FITSUtil.cxx HDU.cxx Keyword.cxx Table.cxx - For Column write functions (both scalar and vector), all cases where the nulval pointer = 0 were treated as (*nulval) = 0 in the lower-level calls to fits_write_colnull. This effectively meant there was no way for the user to turn off null value checking. (12/07) ColumnT.h ColumnData.h ColumnVectorData.h - Calling FITS constructor in Write mode on a read-only file was causing a segmentation fault. (12/07) FITS.cxx Changes for CCfits 1.8 release 10/07 - Redid the writeData functions (and their private helper functions) in ColumnVectorData. This allows the writing of variable length column arrays, which hadn't been working, and now allows writing a partial section of a fixed length column without overwriting the entire row. ColumnVectorData.cxx, .h - In HDU::readAllKeys, do not throw if unable to read a particular individual keyword. Instead, skip and move to the next keyword. This will allow this function to be used even if there undefined keywords. HDU.cxx Changes for CCfits 1.7 release 06/07 - FITS::copy function now creates a corresponding object for the newly created HDU. Previously it only modified the file without updating or adding to the FITS extension map. (6/07) FITS.cxx - Bug fix for reading in compressed images. It had been using the BITPIX and NAXIS keywords when it should have ben using ZBITPIX and ZNAXIS. These changes were based on a patch submitted by Patrik Jonsson. HDU.cxx HDUCreator.cxx - BSCALE was being ingored if the BZERO keyword didn't also exist. HDUCreator.cxx. - Same type of bug fix as below, but for addNullValue in ColumnT.h and ColumnVectorData::setDimen(). (3/07) ColumnT.h ColumnVectorData.h - Bug fix to Column::setLimits. It had been assigning char pointers from temporary string objects using c_str(). (Fix submitted by Jeremy Sanders) (2/07) Column.cxx Changes for CCfits 1.6 release 11/06 - Added capbility to write compressed images, including 6 new wrapper public functions in FITS class. FITS.cxx,.h FITSUtil.cxx,.h PHDU.cxx FITSBase.cxx,.h - In FITS::addImage, corrected the logic which checks for a pre-existing image extension with the same version number. FITS.cxx - CFITSIO 3.02 renamed fitsfile struct member rice_nbits to noise_nbits. Made corresponding change in copyFitsPtr function in FITSUtil.cxx. As it stands, this makes this version of CCfits incompatible with earlier versions of CFITSIO FITSUtil.cxx - In FITS.h definition, removed both friend declarations of HDUCreator Make functions. It seems neither function needs to be a friend, and one of them is actually private. The standard is vague about this, and anyway some compilers (Visual C++ 2002 or 2003) don't allow it. FITS.h - Bug fix in Make function of HDUCreator.cxx. When creating a new ImageExt (and not the primary), it was only passing the version number along for float and double types. This causes problems when there is more than 1 image extension with the same name, and it needs the version number to distinguish them. HDUCreator.cxx - A couple of bug fixes to the first/last/stride version of PHDU read image subset. It was not passing the proper parameters to fits_read_subset, and was not always correctly resizing the m_image array. Image.h Changes for CCfits 1.5 release 7/06 - More thorough fix to PHDUT.h write function: Now genuinely handles the stride vector parameter. (4/06) Image.h PHDUT.h PrimaryHDU.h -In BinTable::addColumn function for case of strings, it was outputing the column format incorrectly as "A". Should have been "A". - In BinTable and Table constructor, now checks for columnUnits vector size rather than assume it's filled in. This is necessary if units are to be an optional parameter for the FITS::addTable function, as claimed in the docs. Table.cxx BinTable.cxx - Modifications needed to fix compile errors on certain platforms with g++ 4.0.x. These are functions that haven't been instantiated, which is why other compilers didn't complain about them. In ExtHDUT.h read function, needed explicit cast to size_t to make both variables in std::min call the same type. Same fix made in PHDUT.h read function. Also in PHDUT.h write function, several calls to PrimaryHDU::writeImage had the wrong number of arguments. (01/06) Changes for CCfits 1.4 release 11/05 - Fixed reading in of BSCALE and BZERO. Previously these keyword values were not being saved in getScaling function. HDUCreator::getScaling (10/05) - Now reads in all floating-point keyword values as doubles rather than floats. In conjunction, needed to allow Keyword casting from doubles to floats to keep things backward compatible KeywordCreator.cxx, KeywordT.h, Keyword.cxx, .h. (8/05) - In ColumnT.h read function which takes row as a parameter, test and throw for case of row out-of-bounds of table. - Memory leak fix in HDU.cxx. Everywhere insertions into m_keyWord map were taking place, needed to check for previously existing entry with same key name and delete if it existed. FITS::read often does insertions twice with the same Keyword, which was causing a memory leak. Also fixed a couple minor leaks in HDU::writeDate. (C. Gordon 6/05) - Exception safety / mem leak fix in FITS.cxx and FITSBase.cxx. All FITS constructors (except copy c-tor) now use auto_ptr when creating FITSBase* m_FITSImpl. Also FITSBase destructor now checks if it needs to close file, indicated by non-zero m_fptr. To make this work, FITS::close now resets fptr to 0 after it closes file. - Add another case of allowed casting of keyword values, this time from strings to int/float/double if the string contains an integer value KeywordT.h (C.Gordon 5/05) Changes for CCfits 1.3 release 4/05 - modify KeywordCreator getKeyword functions to allow reading of keyword value string long format. (C. Gordon) - Fixed HDUCreator::Make and ExtHDU constructor so that extensions with no names are now properly handled on input. (C. Gordon) - Added ability to ready in column data of type LONGLONG from binary tables. - (Important) Added implicit casting of keyword values entered as ints to keywords of type float and double. Previously, the entered key value had to be of exactly the same type as the keyword, otherwise an exception was thrown. Changes for CCfits 1.2 release 4/03 a) add configuration support for building on Windows 2000 b) check for build problems on Mac OS X Darwin (6.4) c) fix problem with vector column row counts (ColumnVectorData::resizeDataObject) d) remove error in HDU keyword strings (HDU::readHDUInfo) e) remove "one off" error in image writing (Image::writeImage) f) fix write problem for Column TUNIT keyword (AsciiTable::addColumn, BinTable::addColumn) (P. Jonsson) g) fix image subset writing code in ExtHDU (P. Jonsson) (ExtHDU::write) Changes for CCfits 1.1.1 release 9/19/02; originator of problem report shown in parentheses where relevant. a) modify most general FITS ctor so that the version argument works properly as a defaulted parameter (J. Miller) b) add flush() method to FITS class to force cfitsio buffers to be flushed to disk on request (C. Berst) c) add instructions to flush buffers after image write operation (C. Berst) d) fix persistent warning about creating new files (C. Berst) e) remove trailing blanks from read string keywords (P. Jonsson) f) add new override function addKey for string literals g) check compilation and correct operation on gcc 3.2 / Linux 2.4 kernel Changes in preparation for CCfits 1.1 release 1a) fixed #include in cookbook.cxx (code originally designed to include installed library) b) added variable of type double to pass to pow in cookbook.cxx [R. Mathar, P. Jonsson] b) removed numerous break statements from switch / case statements where unreachable [code returns before end of case] - producing compiler warnings c) removed numerous instances of signed/unsigned comparisons to remove compiler warnings d) fixed FITS file copying constructor to produce valid primary [ R. Mathar ] e) fixed incorrect shift operator usage in Column::getType [R. Mathar] f) fixed incorrect type for TDOUBLE argument in Column::getType [R. Mathar] g) removed exception specifications throughout except for throw() ( style revision ) h) add null terminator for TFORM keywords for case where no header present [R. Mathar] i) fix error in iterator type in HDU::readKeys [R. Mathar] j) added support for unsigned integer-type images [J. Barnes] k) fixed problem with copying Table data likely to lead to memory access violations [C. Gordon] l) removed potentially conflicting colType argument from table creation call (FITS::addTable). The type of the column is now determined from the TFORM keyword. m) support for unsigned table column data [R. Mathar] n) reimplemented HDU::readAllKeys so that it does not use HDU::addKey [R. Mathar] o) added various missing makeThisCurrent() calls to ensure FITS pointer addresses the correct HDU [P. Jonsson] p) added code to cookbook program to read Primary HDU user keywords. q) added code to resolve data types into strings for keyword output. r) fixed problem whereby new image extensions were not written to disk FITS file [P. Jonsson] s) fixed various issues switching between HDUs during writes. t) added support for complex keywords u) reworked Column templates to avoid throwing exceptions where implicit datatype conversion is called for. v) added many overloaded functions to support complex data I/O. Implicit conversion between float & double complex data is allowed. Other attempted conversion throw exceptions. w) modify HDU::scale(double value), HDU::zero(double value) &c. for Columns to call fits_set_bscale etc, to change automatic scalings. 2a) configuration support for HP-UX /gcc-2.95.2. Compilation now includes -ansi flag. [R. Mathar] b) configuration support for AIX/kcc. explicit Makefile.kcc added to distribution [P. Jonsson] c) added verbose warning message flags for Solaris (+w -verbose=template) CCfits/README.INSTALL0000644000225700000360000001136111104412115013474 0ustar cagordonlheaTo build and install CCfits from source code on a UNIX-like (e.g. UNIX, Linux, or Cygwin) platform, take the following steps. For building on a Microsoft Windows platform with Visual Developer Studio, see below. =============================================================================== Instructions for Building CCfits on UNIX-like platforms: =============================================================================== 1. Configure By default, the GCC compiler and linker will be used. If you want to compile and link with a different compiler and linker, you can set some environment variable before running the configure script. For example, to use Sun's C++ compiler, do the following: > setenv CXX CC (csh syntax) or > export CXX=CC (bash syntax) You can set the absolute path to the compiler you want to use if necessary. CCfits requires that the CFITSIO package, version 3.08 or later, is available on your system. See http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html for more information. The configure script that you will run takes an option to specify the location of the CFITSIO package. If the CFITSIO package is installed in a directory consisting of a 'lib' subdirectory containing "libcfitsio.a" or "libcfitsio.so" and an 'include' subdirectory containing "fitsio.h", then you can run the configure script with a single option. For example, if the cfitsio package is installed in this fashion in /usr/local/cfitsio/ then the configure script option will be --with-cfitsio=/usr/local/cfitsio If the CFITSIO package is not installed in the above manner, then you need to run the configure script with two options, one to specify the include directory and the other to specify the library directory. For example, if the cfitsio package was built in /home/user/cfitsio/ then the two options will be --with-cfitsio-include=/home/user/cfitsio --with-cfitsio-libdir=/home/user/cfitsio For users of HEASOFT (instead of stand-alone CFITSIO): Note that modern distributions of HEASOFT only include a "libcfitsio_X.XX.so" library by default, but the configure script needs to find "libcfitsio.so", so you will need to create a symbolic link in $HEADAS/lib/ linking libcfitsio.so -> libcfitsio_X.XX.so in order for CCfits to configure properly. You can then configure CCfits using "--with-cfitsio=$HEADAS". You have the option of carrying out the build in a separate directory from the source directory or in the same directory as the source. In either case, you need to run the configure script in the directory where the build will occur. For example, if building in the source directory with the cfitsio directory in /usr/local/cfitsio/ then the configure command should be issued like this: > ./configure --with-cfitsio=/usr/local/cfitsio If you do the build in a separate directory from the source, you may need to issue the configure command something like this: > ../CCfits/configure --with-cfitsio=/usr/local/cfitsio The configure script will create the Makefile with the path to the compiler you choose (or GCC by default), and the path to the CFITSIO package. The configure script has other options, such as the install location. To see these options type > ./configure --help 2. Build Building the C++ shared library and Java classes will be done automatically by running make without arguments like this: > gmake 3. Install To install, type: > make install The default install location will be /usr/local/lib for the library and /usr/local/include for the header files. You can change this with the --prefix option when you configure, or with something like... > make DESTDIR=/usr/local/CCfits install =============================================================================== Instructions for Microsft Windows build: =============================================================================== Compiling CCfits with MS VC++ requires VC++ 7.0 or later. This is the compiler that comes with Visual Studio.NET. Earlier versions of the compiler has too many defects in the area of instanciating templates. Take the following steps. 1. Compile the C++ code. Open the vs.net/CCfits/CCfits.sln file with Visual Studio.NET. The includes paths have been set to find the cfitsio build directory at the same level as the CCfits directory. If this is not the case, use Visual Studio.NET to edit the include paths and extra library paths to where you have cfitsio installed. Next, just use the build icon or the build menu item. To build the test program, cookbook, use the vs.net/cookbook.cookbook.sln file Author: Paul_Kunz@slac.stanford.edu Revised 1 Nov 2006 by Bryan Irby CCfits/License.txt0000644000225700000360000000260310374677170013657 0ustar cagordonlheaCopyright (Unpublished--all rights reserved under the copyright laws of the United States), U.S. Government as represented by the Administrator of the National Aeronautics and Space Administration. No copyright is claimed in the United States under Title 17, U.S. Code. Permission to freely use, copy, modify, and distribute this software and its documentation without fee is hereby granted, provided that this copyright notice and disclaimer of warranty appears in all copies. DISCLAIMER: THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NASA BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT , OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER. CCfits/file1.pha0000644000225700000360000003435707503643533013235 0ustar cagordonlheaSIMPLE = T / file does conform to FITS standard BITPIX = -32 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format defined in Astronomy andCOMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365.COMMENT Contact the NASA Science Office of Standards and Technology for the COMMENT FITS Definition document #100 and other FITS information. DATE = '22/06/95' / FITS file creation date (dd/mm/yy) CONTENT = 'PHA SPECTRUM' / SPECTRUM xtens (at least) present ORIGIN = ' ' / organization which created this file END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 14 / width of table in bytes NAXIS2 = 64 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 5 / number of fields in each row TTYPE1 = 'CHANNEL ' / Pulse Height Analyser (PHA) Channel TFORM1 = 'I ' / data format of the field: 2-byte INTEGER TTYPE2 = 'RATE ' / Counts per second per channel TFORM2 = 'E ' / data format of the field: 4-byte REAL TUNIT2 = 'count/s ' / physical unit of field TTYPE3 = 'STAT_ERR' / Statistical error on RATE TFORM3 = 'E ' / data format of the field: 4-byte REAL TUNIT3 = 'count/s ' / physical unit of field TTYPE4 = 'QUALITY ' / Quality flag of this channel (0=good) TFORM4 = 'I ' / data format of the field: 2-byte INTEGER TTYPE5 = 'GROUPING' / Grouping flag for channel (0=undefined) TFORM5 = 'I ' / data format of the field: 2-byte INTEGER EXTNAME = 'SPECTRUM' / name of this binary table extension HDUCLASS= 'OGIP ' / format conforms to OGIP standard HDUCLAS1= 'SPECTRUM' / PHA dataset (OGIP memo OGIP-92-007) HDUVERS1= '1.1.0 ' / Version of format (OGIP memo OGIP-92-007a) HDUCLAS2= 'NET ' / Bkgd-subtracted PHA Spectrum HDUCLAS3= 'RATE ' / PHA data stored in count/s TLMIN1 = 1 / Lowest legal channel number TLMAX1 = 128 / Highest legal channel number TELESCOP= 'EXOSAT ' / mission/satellite name INSTRUME= 'ME ' / instrument/detector name DETNAM = ' AR ' / specific detector name in use FILTER = 'NONE ' / filter in use EXPOSURE= 2100.000000 / exposure (in seconds) AREASCAL= 824.679993 / area scaling factor BACKFILE= 'back1.pha' / associated background filename BACKSCAL= 1.000000 / background file scaling factor CORRFILE= 'NONE ' / associated correction filename CORRSCAL= 0.000000 / correction file scaling factor RESPFILE= 'resp1.rsp' / associated redistrib matrix filename ANCRFILE= ' ' / associated ancillary response filename PHAVERSN= '1992a ' / OGIP classification of FITS format DETCHANS= 128 / total number possible channels CHANTYPE= 'PHA ' / channel type (PHA, PI etc) POISSERR= F / Poissonian errors not applicable SYS_ERR = 0 / no systematic error specified HISTORY SF file opened by RD_SFOPN 1.0.0 HISTORY (SF) PHA file history records HISTORY - From file1.asc by MKPHA at 14:30:18 25-Jul-90 HISTORY - From file1.log by chanpha at 15:07:32 24-JUL-90 from XANADU:[SPECT HISTORY - From XANADU:[SPECTRAL.SESSION]FILE1.PHA;2 HISTORY - From MEG172.PHA HISTORY - HP file name:MEG172 HISTORY - Deadtime correction= 1.1081 HISTORY - Deadtime applied HISTORY HISTORY HISTORY HISTORY SF File Info package scanned by RD_SFINFO 1.0.0 HISTORY SF Source Info package scanned by RD_SFSINFO 1.0.1 HISTORY SF data base package scanned by RD_SFDBASE 0.9.0 HISTORY SF selectors package scanned by RD_SFSLCT 1.1.0 HISTORY SF PHA data package scanned by RD_SFPHA 0.8.0 HISTORY SF Grouping package scanned by RD_SFGRP 1.0.0 HISTORY EXOSAT ME conversion by CNV_EXOME1.0.0 HISTORY SF EXOSAT ME package scanned by RD_SFEXOME 1.0.1 HISTORY FITS SPECTRUM extension written by WTPHA1 3.1.2 COMMENT COMMENT ***** Package "ass. files " ***** COMMENT Background Filename :back1.pha COMMENT Response Filename :resp1.rsp COMMENT Correction Filename :none COMMENT ***** Package "file info " ***** COMMENT Detector Identity :EXOSAT ME AR H2 COMMENT No. of data bins : 64 COMMENT Unbinned data channels : 128 COMMENT Integration time(secs) : 2100.00 COMMENT On source area (cm**2) : 824.68 COMMENT Background scale factor: 1.000 COMMENT Correction scale factor: 0.000 COMMENT Indices : 0.0000000 0.0000000 0.0000000COMMENT ***** Package "source info " ***** COMMENT Observation Epoch : 0.00000000E+00 COMMENT SHF start time: 1.63823584E+08 (1985 70 2 33 4) COMMENT SHF end time: 1.63825680E+08 (1985 70 3 8 0) COMMENT 1950 RA and DEC and Roll COMMENT source vector: 0.00000000E+00 0.00000000E+00 0.00000000E+00COMMENT source name : GX301-2 COMMENT ***** Package "pha per sec " ***** (located) COMMENT ***** Package "grouping " ***** COMMENT ....+ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ COMMENT +++++ +++++ +++++ +++.. ..... ..... ..... ..... ..... ..... COMMENT ... Grouping card OK by RD_SFGRP COMMENT Detector type (AX=both argon & xenon) - AR COMMENT revision level of info used in production of file 1 COMMENT shf key of creation date 309176755 (1989 291 10 25 55) COMMENT offset angle of first half(average for multiple offsets-114.43965 COMMENT offset angle of second half 1.75040 CREATOR = 'SF2PHA2.1.1' / s/w task which wrote this dataset HISTORY Observation Info written by WT_OBSINFO 1.1.1 OBJECT = ' GX301-2' / Object name PROC_VER= ' 1' / Revision level of Processing System PROC_DAT= '18/10/89' / Date on which Processing System run PROC_TIM= '10:25:55' / Time at which Proc System run (on PROC_DAT) HISTORY Observation Date/Time Info written by WTTOBS 1.0.1 DATE-OBS= '11/03/85' / Nominal UT date of obs start (dd/mm/yy) TIME-OBS= '02:33:04' / Nominal UT time of obs start (hh:mm:ss) DATE-END= '11/03/85' / Nominal UT date of obs end (dd/mm/yy) TIME-END= '03:08:00' / Nominal UT time of obs end (hh:mm:ss) MJD-OBS = 4.613511851852E+04 / Mean MJD of observation HISTORY Timing Info written by WTFTIM 1.0.2 ONTIME = 2096.000000 / Total time on source (seconds) DEADAPP = T / Deadtime correction applied ? DEADC = 0.902446 / Deadtime correction factor LIVETIME= 1891.525879 / Total time on source corrected for deadtime (seVIGNAPP = T / Vignetting correction applied ? MJDREF = 4.423900000000E+04 / Mission reference time (in MJD) TIMESYS = '1980 1 1 00:00:00' / Time frame system in use TIMEUNIT= 's ' / Units for TSTART, TSTOP & TIMEZERO keywords TSTART = 1.638235840000E+08 / Start time in TIMESYS frame in TIMEUNIT units TSTOP = 1.638256800000E+08 / Stop time in TIMESYS frame in TIMEUNIT units TELAPSE = 1.074461E+24 / Total elapsed time between TSTART & TSTOP in seTIMEZERO= 1.638235840000E+08 / Time zero off-set in TIMESYS frame & TIMEUNIT uCLOCKAPP= F / Clock correction applied ? TIMEREF = 'LOCAL ' / Reference frame used for times TASSIGN = 'SATELLITE' / Location where time assignment performed HISTORY RADECSYS & EQUINOX keywords written by WT_OBJRADEC 1.0.1 RADECSYS= 'FK4 ' / Stellar Reference frame used for EQUINOX EQUINOX = 1950.000000 / Equinox of all RA,dec specifications (AD year) HISTORY Pointing Info written by WT_OBJRADEC 1.0.1 RA_OBJ = 0.000000 / RA of object (degrees) DEC_OBJ = 0.000000 / dec of object (degrees) COMMENT ** WT_OBJRADEC 1.0.1 WARNING: RA_OBJ,DEC_OBJ zero END >¸Ôþ= 1300 #define SPEC_TEMPLATE_DECL_DEFECT 1 #endif /** Define if compiler can not resolve ambiguity in overloaded template functions. This was first seen with Visual Studio 6.0 and presists in 7.0 to a less degree. Use this one for VC++ 7.0 TEMPLATE_AMBIG_DEFECT for VC++ 6.0. */ #define TEMPLATE_AMBIG7_DEFECT 1 /** Define if compiler library has instead of . */ #undef SSTREAM_DEFECT # pragma warning(disable:4244) // conversion from double to float # pragma warning(disable:4305) // truncation from const double to const float # pragma warning(disable:4800) // forcing value to bool (performance warning) #if _MSC_VER < 1300 /* Turn off annoying warning. */ # pragma warning(disable:4250) // inherits via dominance # pragma warning(disable:4786) // '255' characters in the debug information /** Define the value of pi which appears to be missing from Dev Studio. */ #ifndef M_PI #define M_PI 3.14159265358979323846 #endif /** Define if specialized template implemeenation must appear within the corresponding header file and be inline. This problem first appeared with VC++ 6.0. */ #define SPEC_TEMPLATE_IMP_DEFECT 1 /** Define if compiler can not resolve ambiguity in overloaded template functions. This was first seen with Visual Studio 6.0 and presists in 7.0 to a less degree. */ #define TEMPLATE_AMBIG_DEFECT 1 /** Define if function `terminate()' does not exist in . This was first found in VC++ 6.0. */ #define TERMINATE_DEFECT /** Define if bind2nd doesn't work calling member function that returns void. This works around the errror error C2562: '()' : 'void' function returning a value which results when compiling bind2nd template function. */ #define BIND2ND_DEFECT 1 /** Define if a function in derived class overrides a function in a base class only by the return type, and the return type in the derived class only differs because it is a derived type of the one defined in the base class. This works around the error error C2555: with MS VC++ 6.0 sp5 and earlier. */ #define CLONE_DEFECT 1 /** Define if vector ::iterator doesn't work unless using namespace std; statement is made. */ #define ITERATOR_MEMBER_DEFECT 1 /** Define if STL functions doesn't work with IteratorBase. This is probably a defect in IteratorBase class than a defect in the compiler.*/ #define ITERATORBASE_DEFECT 1 /** Define if mem_fun doesn't always work when used to call member with one argument and the obsolete mem_fun1 must be used.. */ #define MEMFUN1_DEFECT 1 /** Define if STL transform function doesn't work with unary functions in cmath */ #define TRANSFORM_DEFECT 1 /** Define if compiler prefers someting like std::cos ( const valarray & ) instead of std::cos ( double ). */ #define VALARRAY_DEFECT 1 namespace std { /** definition of standard C++ library max() function for compilers that don't supply it. Note should do only less than comparison. */ template < class T > inline const T& max ( const T & a, const T & b ) { // Break this into two lines to avoid an incorrect warning with // Cfront-based compilers. const T & retval = a < b ? b : a; return retval; } /** definition of standard C++ library min() function for compilers that don't supply it. Note should do only less than comparison. */ template < class T > inline const T& min ( const T & a, const T & b) { // Break this into two lines to avoid an incorrect warning with // Cfront-based compilers. const T & retval = b < a ? b : a; return retval; } /** definition of standard C++ library abs() function for compilers that don't supply it. */ template < class T > inline const T & abs ( const T & a ) { const T & retval = a < 0 ? -a : a; return retval; } } //end namespace std:: #endif CCfits/vs.net/0000755000225700000360000000000011667507535012753 5ustar cagordonlheaCCfits/vs.net/Makefile.am0000644000225700000360000000060707640441372015002 0ustar cagordonlhea# # * Copyright (C) 2003 The Board of Trustees of # * The Leland Stanford Junior University. All Rights Reserved. # # $Id: Makefile.am,v 1.1 2003/03/27 00:16:58 pfkeb Exp $ # # Author: Paul_Kunz@slac.stanford.edu # # The following is set, otherwise it would have to follow GNU conventions. AUTOMAKE_OPTIONS = foreign DIST_DIRS = CCfits cookbook EXTRA_DIST = MANIFEST $(DIST_DIRS) CCfits/vs.net/Makefile.in0000644000225700000360000002217111667502504015012 0ustar cagordonlhea# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # # * Copyright (C) 2003 The Board of Trustees of # * The Leland Stanford Junior University. All Rights Reserved. # # $Id: Makefile.am,v 1.1 2003/03/27 00:16:58 pfkeb Exp $ # # Author: Paul_Kunz@slac.stanford.edu # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ 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@ target_triplet = @target@ subdir = vs.net DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/m4/ac_check_package.m4 \ $(top_srcdir)/config/m4/ac_compile_ansi.m4 \ $(top_srcdir)/config/m4/ac_compile_warnings.m4 \ $(top_srcdir)/config/m4/ac_cxx_have_valarray.m4 \ $(top_srcdir)/config/m4/ac_cxx_namespaces.m4 \ $(top_srcdir)/config/m4/pfk_cxx_lib_path.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXX_LIB_PATH = @CXX_LIB_PATH@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GMAKE = @GMAKE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBSTDCPP = @LIBSTDCPP@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RDFLAGS = @RDFLAGS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STLPORT = @STLPORT@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pfk_cxx_lib_path = @pfk_cxx_lib_path@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ # The following is set, otherwise it would have to follow GNU conventions. AUTOMAKE_OPTIONS = foreign DIST_DIRS = CCfits cookbook EXTRA_DIST = MANIFEST $(DIST_DIRS) 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign vs.net/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign vs.net/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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: 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-info-am .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-exec install-exec-am \ install-info install-info-am install-man 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-info-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: CCfits/vs.net/MANIFEST0000644000225700000360000000020307640441371014066 0ustar cagordonlheaThis directory contains files specific to building CCfits and its test program with Microsoft Visual Studio .NET (Visual C++ 7.0). CCfits/vs.net/CCfits/0000755000225700000360000000000011667501510014111 5ustar cagordonlheaCCfits/vs.net/CCfits/.cvsignore0000644000225700000360000000003207640425025016106 0ustar cagordonlheaDebug Release *.ncb *.suo CCfits/vs.net/CCfits/CCfits.sln0000644000225700000360000000157307640425025016012 0ustar cagordonlheaMicrosoft Visual Studio Solution File, Format Version 7.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CCfits", "CCfits.vcproj", "{D21AEDFD-0753-4905-B5DD-21083E8BDE7B}" EndProject Global GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug ConfigName.1 = Release EndGlobalSection GlobalSection(ProjectDependencies) = postSolution EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Debug.ActiveCfg = Debug|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Debug.Build.0 = Debug|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Release.ActiveCfg = Release|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal CCfits/vs.net/CCfits/CCfits.vcproj0000644000225700000360000001301507657002037016515 0ustar cagordonlhea CCfits/vs.net/cookbook/0000755000225700000360000000000011667501511014545 5ustar cagordonlheaCCfits/vs.net/cookbook/.cvsignore0000644000225700000360000000004007640430372016541 0ustar cagordonlheaDebug Release *.fit *.ncb *.suo CCfits/vs.net/cookbook/cookbook.sln0000644000225700000360000000260007640425026017071 0ustar cagordonlheaMicrosoft Visual Studio Solution File, Format Version 7.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cookbook", "cookbook.vcproj", "{9ED49C71-F4D4-4CA2-979F-CD53B285E0CB}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CCfits", "..\CCfits\CCfits.vcproj", "{D21AEDFD-0753-4905-B5DD-21083E8BDE7B}" EndProject Global GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug ConfigName.1 = Release EndGlobalSection GlobalSection(ProjectDependencies) = postSolution {9ED49C71-F4D4-4CA2-979F-CD53B285E0CB}.0 = {D21AEDFD-0753-4905-B5DD-21083E8BDE7B} EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {9ED49C71-F4D4-4CA2-979F-CD53B285E0CB}.Debug.ActiveCfg = Debug|Win32 {9ED49C71-F4D4-4CA2-979F-CD53B285E0CB}.Debug.Build.0 = Debug|Win32 {9ED49C71-F4D4-4CA2-979F-CD53B285E0CB}.Release.ActiveCfg = Release|Win32 {9ED49C71-F4D4-4CA2-979F-CD53B285E0CB}.Release.Build.0 = Release|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Debug.ActiveCfg = Debug|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Debug.Build.0 = Debug|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Release.ActiveCfg = Release|Win32 {D21AEDFD-0753-4905-B5DD-21083E8BDE7B}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal CCfits/vs.net/cookbook/cookbook.vcproj0000644000225700000360000000610510200711602017564 0ustar cagordonlhea CCfits/html/0000755000225700000360000000000011667506644012502 5ustar cagordonlheaCCfits/html/ccfitschange_sff.pl0000755000225700000360000001022507645616321016314 0ustar cagordonlhea#!/usr1/local/bin/perl5 # Bob Crosier 3/8/95 # Bob Crosier 3/22/95 (modified from webclean.pl) # Bob Crosier 6/02/95 required the RunningDisplay subroutine # This Perl script MAKES CHANGES TO FILES; BE CAREFUL # Pass this Perl script a bunch of filenames on STDIN # (e.g. by piping it the output of 'find' or 'ls') # This script will make changes within the files, but when done, the files # will have the same owner/permissions. # #This Perl script removes external links and replaces them with the URL. #------------------------------------------------------------------------------ # This require has a number of useful support subroutines. require "support_subs.pl"; $program = "shuttlechange"; if ($ARGV[0] ne '') { $diff_dump = "diff_dump"; $diff_tmp = "DIFFTMP"; if (-e $diff_dump) { unlink $diff_dump; } } if ($ARGV[0] ne 'x') { $write_flag = 1; } $greeting = <<"Greeting"; THIS PERL SCRIPT CAN CHANGE FILES ! This script reads in filenames on STDIN (so pass it output from 'find' or 'ls') Any comments from this run will go into file $program.comments. Any warnings or error messages will go into file $program.warn. I will always ignore the file "heasarc_results.html", which is the MOMspider result file, a huge ~ 16MB file, and not relevant to these changes. Also, heasarc_results_small.html will be ignored. I will use STDOUT for a running display of files processed... Greeting print $greeting; open(COMMENTS, ">$program.comments") || warn "Cannot open file $program.comments: $!"; open(STDERR, ">$program.warn") || warn "Cannot open file $program.warn: $!"; $num_files = 0; while ($full_filename = ) { chop($full_filename); &RunningDisplay( $full_filename ); # I catch if the current filename is that of a zero length or unwriteable (to me) # file, and if not, read the entire file into memory (Perl: no limits) before # I make any changes to the text, then write it all back out to the same # filename, preserving owner and permissions. $current_file = ""; if (-z $full_filename) { warn "File $full_filename has 0 size ! \n"; } elsif (! -w $full_filename ) { warn "File $full_filename is not writeable to me ! \n"; } elsif ( $basename eq "heasarc_results.html" ) { warn "File $full_filename is being deliberately skipped. \n"; } elsif ( $basename eq "heasarc_results_small.html" ) { warn "File $full_filename is being deliberately skipped. \n"; } else { open(HTMLIN, $full_filename) || warn "Cannot open file $full_filename for input: $!"; # Read the entire file into variable $current_file $string_found_flag = 0; while ($line = ) { $current_file .= $line; } # Following are example search and replace statements. This is where you have # to put in your own. It must end with $string_found_flag = 1. The search # must use "isg" if you want it to be a global search (g) that ignores case (i) # and looks at more than one line at a time (s). # to remove shuttle_left and shuttle_right from files if ($current_file =~ /Inheritance diagram for(.*?)usemap/isg) { $current_file =~ s/Inheritance diagram for(.*?)usemap/Inheritance diagram for$1alt="Inheritance diagram" usemap/isg; $string_found_flag = 1; } # Write any changed text back into the exact same filename if ($string_found_flag) { if ($write_flag) { open(HTMLOUT, ">$full_filename") || warn "Cannot open file $full_filename for output: $!"; print HTMLOUT $current_file; close(HTMLOUT); if ($diff_dump ne '') { system("cp $full_filename $diff_tmp"); } } else { open(DD,">$diff_tmp")||warn "Could not write $diff_tmp!"; print DD $current_file; close(DD); } if ($diff_dump ne '') { system("echo Comparing $diff_tmp to $full_filename >> $diff_dump"); system("diff $diff_tmp $full_filename >> $diff_dump"); unlink $diff_tmp; } } } close(HTMLIN); } print "\nDone \n"; close(COMMENTS); # end of shuttlechange.pl CCfits/html/support_subs.pl0000755000225700000360000000213407645616321015605 0ustar cagordonlhea# This is support_subs.pl. It will be # 'require'd in the web scripts, so it # must return 1 at the very end. sub RunningDisplay{ # $full_filename is passed in. local($full_filename) = @_; # Get the basename for the running display of files processed if ( $full_filename =~ m#/# ) { $full_filename =~ m#/([^/]+)$#; $basename = $1; } else { $basename = $full_filename; } $num_files++; # I want a running display of form: # num_field mesg_field name_field e.g. # 12378 files processed so far... some_random_file.html $num_files_string = sprintf ("%u", $num_files); $num_field = length $num_files_string; $mesg = " files processed so far... "; $mesg_field = length $mesg; $name_field = 79 - ($num_field + $mesg_field); $name = ""; $name = sprintf ("%-${name_field}.${name_field}s", $basename); # if $| is set to nonzero, forces a flush after every print on the currently # selected output filehandle. $| = 1; printf "\r%u%s%s", $num_files, $mesg, $name; } # To require this file, it must return a value of 1 after loading: 1; CCfits/html/tabs.css0000644000225700000360000000210711667502523014135 0ustar cagordonlhea.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } CCfits/html/jquery.js0000644000225700000360000024562211667502523014362 0ustar cagordonlhea/* * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * * Copyright (c) 2009 John Resig * Dual licensed under the MIT and GPL licenses. * http://docs.jquery.com/License * * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) * Revision: 6246 */ (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); /* * Sizzle CSS Selector Engine - v0.9.3 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) {I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() {G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); /* * jQuery UI 1.7.2 * * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * http://docs.jquery.com/UI */ jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2 * * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * http://docs.jquery.com/UI/Resizables * * Depends: * ui.core.js */ (function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f
');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)) {s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);; /** * jQuery.ScrollTo - Easy element scrolling using jQuery. * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php). * Date: 2/8/2008 * @author Ariel Flesler * @version 1.3.2 */ ;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); CCfits/html/tab_a.png0000644000225700000360000000021411667502523014243 0ustar cagordonlhea‰PNG  IHDR$ÇÇ[SIDATxí» €@wçÉ¡œˆ˜*æ‚M˜ØIïÎF†ýL :®‡±nÌëN™ ¶±Á’„ØN&â¼_ ɭɾ}Õ¶8~î¾îOwv-ÿêA4Y)Ñ}IEND®B`‚CCfits/html/tab_b.png0000644000225700000360000000026211667502523014247 0ustar cagordonlhea‰PNG  IHDR$ÇÇ[yIDATxíÝÛ Â €Ñ?|SVÓˆ´bB#P®½8³‰O¾:É™D>ßm{SûIí'¹äz(!•TBÞ‰y#¤WìJDp¾ã|Ã…†ó »ìR˜]áá æ™Ð6q·‰›]ç•qŠŒÓÊÕD.&0èÀ =ƒJD”ˆü=@*é*ç×IEND®B`‚CCfits/html/tab_h.png0000644000225700000360000000030011667502523014246 0ustar cagordonlhea‰PNG  IHDR$ÇÇ[‡IDATxíÝÛ ‚`€áÿ¥ºˆFŠ¢‚hšYÒ ÿÌ26@c´HwÍñì!ïÏ—K1ê^‰©HtO’÷ÄyG˜µD׎ k9¦ç?iðâ7zá„vPaŸž˜þãÏðJŒ}ÉÆ)غwV»‚õ®`ai–Ö¥¥™›Z‰ˆšŒP³éøC"àèP=€IEND®B`‚CCfits/html/tab_s.png0000644000225700000360000000027511667502523014274 0ustar cagordonlhea‰PNG  IHDR$ÇÇ[„IDATxíÝë ‚P@áKg"%(IE|¡%¦I¡7iÚlmÐ" ÓäÛC¼ÞòÛ“\.dåOZ̤ÅBr‰/¿‰(ŸˆÎ#a6⟂ôŽ› 8q÷ØÇëÐaF-û°Et¿Aó4¯fçÖlŠ]±¶äJjJC¢%Š!¿<Å#üÀÄ«IEND®B`‚CCfits/html/nav_h.png0000644000225700000360000000014111667502523014267 0ustar cagordonlhea‰PNG  IHDR ,é@(IDATxíݱ 0 A½2°ÁU¶— !kÜJrª¯ƒžZýÿÆo‡üèIEND®B`‚CCfits/html/nav_f.png0000644000225700000360000000023711667502523014273 0ustar cagordonlhea‰PNG  IHDR8³»fIDATxíÝIB1 Q;uÛ¿@ÑÏh;áÚ ±aË !ŽÐ‹V½CÈíþ âŠÅÆ|c±˜¾™¶¶3èsÑFÐFP»S{PšSšsVãlN®F.F.“ã2’ˆüµ¤ï_U¿Œ¾˜Ïþ«‰ÈH Ým”°•IEND®B`‚CCfits/html/bc_s.png0000644000225700000360000000124511667502523014110 0ustar cagordonlhea‰PNG  IHDR /ð9ÐlIDATxíÝKHTmðÿóžwfÎgæÌ¯å8ŽÓ˜—Š6ñ-BÚ´‘]d–VZMa…D}ßg¸háB¤¶*Ñýbå¥U9Š—3ƒŽFy<£‹ šaæè²í³yøÿÎóžÅóî©ýÁÇåþtðªÚ %”8Vj•LÜlø·ÅCF@mÃÿˆÞ[”ïü À7ªj¿RÀ•ûC0TâU‹Y¸øYÕú’ÿsv~Æî,Ûi)€.w €™ˆæwø\cT i Ðúÿ`¼owgÛö»âH0¤5%À¥ÿ>Äû\.°ÉÒ×*O0¬-c}BàÞûä+msË…VÑÔ5Ö:€Îß}— *l’©Çç–cÁV¸€OÅ^ÅaâìÔXxñ)µÜ0‚ãé²xrKfÚÜxx±Ššo½5Ièk±WaŒÑjºùÆà¶;ÛVá´[¨ñÆ«Í@¥ÃfnöäØ¿°ÍRÕ.‡¨¬®B¥×_C™ˆæK|.¬ý²Ÿ®½0‚3ŠTŸ¥H¡‰½†Ž¶=7‚ ßã´™8k˜œÑ_Ó‘«Ï’Ã2«Èz·:V&fôBv—Ní9iVÎY— Õµ>‰‡.Qx{¾E“³ú»Ê‡˜'‰|dj6ÚØ‡ÚÀãx?åÏsJ‚@uÓ‘hbI„Ò½‡Ö2ì“,¼F¶[bÓ‘h e'«Ïõ@;Û^d•x·‰þ›¶ôg2Fa¿G^ÿ @,é) êlß… §Të’-ãêÜRý†—UÙÜ*È•EΩ64·4lÜÄÙ #èjDßþú Ųo{”N IEND®B`‚CCfits/html/doxygen.png0000644000225700000360000000754611667502523014671 0ustar cagordonlhea‰PNG  IHDRh ;ˆØ-IDATxí]{XŒyÿ¾sZ%Ê”NF:¨´FåЪքbÝè@;~ÓŽÃ"DH‘ÚZ•ð–m_Œéè4ÄÙÚ!ë-‡2«U«Ce[Š"§š_ñÌ3óLSìõ¾ï¾öº|®««y>§ïý¹ïïá_ ™L†öþZ·¼ß¦ajëñ®¹L•oñúþ}«.Íë2Þãû$Zöå);*.d¥~Ûìß³wˆ—·'ˆâ0³Ëâþ@áû!ZZeÊÿÁÞͺwÓøÏÔÚ‰ù?ØO =\Lâ[òg²dxr0Ð —€¤Rrj·Jž€‘*í.WJN5¨äÉqÈMªÔ[mºÞ•’Sb58™Ä¼RB5½¥•’SRus[2<ÙÄ %·˜˜•²V'˜ê+%§$fv˜ØÄºR»«Kó$ ¡¥C 4ã+xº˜£½sQÙ}f¶ðÀ[²vôZ €ç6c}”½!,Lt×ï<ÂÅ«µ°dx†H)/ÎÙfí襧¥C«1¶v£ôº[~– ÏÑåÅ9%DÏDKgžrN}M9úY««3*/Îi謷%ÓU^œ#¶vôr'p²=]ÌÑ_§7®ßy„ìS¸ª½ëkÊaÉð´-/Î!E²vôâà902œíÁÉ–FæŸ*¸Å,ý­– O!1k>QÓÓ³¦°dx¦X:ûð¼=GÃÂD×ï<ÂþÃ'¸fvRªKó‚UZjbóièþ¤`èõýˆtº9cùœ‘xÕÚªV W­­°sžabóièw1ó1x%îæhŒ¹Þ¶¸9׉>oÕ®hkG¯~¥—Nl°sž"^™ÀdŽ2%sw…ø¨•¼W­­‹ìœ§D¸z¯àí W †Æç˜8c>‚í1”ô‡m·Bvêî«ÖÖ8܉ÞAˆZò þT…u—r­½ª´th9kÂÖRêåŸSfÛþ/d§–°‰¾äœ1kçb„A.ܸ@ø“+;:j ÛÚÑË«ôÒ‰|#­Ýp4i®â¨]¼â߯óV~éØÇŒ…xfv$Õ¥y| S[ö;BOK‡V“ÅßÖàÎÌa 4x0¶Ï:ÂßDN54>Çgœõxp÷ªo;Z:´¬œÃÉ”º€ÕÇðë™ïbÛ‡ªöü|Ñ^TŠ7=$4)L!Ü/åuü’#)9/rqÃ%îØÅï¬~a”çŽÅ-à¸poE ‚”®,|gŽ¥m /9/ŠsÃâ˜Ø|šœ±c Ó/åu¨ü Êë€P\…aÁÂ’ó¢‡1,¦¥Ó¢Ã;ueòyªKó\ä…°üÃ"7-K!3>õ2ÊËËamm åÚÈr7M.(~[2ÓÝÉ„Œ]©¨C<¿í»b9Ç[)v[~Ñ,_º@\|î8ËqÜ´{· Ð}QÞ”ugr7àÛÈJ]|Úe¤ïÚ`ƒ–­æçÿ¤à™4s5Ü+µÕÒ¡•©Æ\§áéãû¶Ù•ýxàJ,ûÌudùùs&@yŽõI…eD…Ÿ;ç8nZÁž={ʘfóQU|X ÞØÚ)ض˜"ÞtîVÜ-ÏwÐo¨ãç¢ý‰œöJy>¶6è°¹ ÌFrÊf¥ÑÍú’ KbÏà¼(!@~»ó³) F¹{€í€Ave'3£Hÿ£¦˜î»Íu @³¯Aò±¬$èj÷"s&û…½&ób~¶t”»w¢ÿ¼¼¥þŠ·öQÓ J~Iå âJÚö½˜Ÿ]=ÊÝ;=|S{ºû™Éç‘“nçÊÜ9ôË¿ÈõË„.{ù®‰Ü´`Œb³ßÅÊå ÅâÚž)†j\Þ€ÔΕ›ÞY_ÂE_¸â.gÚ0uõ‹‘Ÿ‰2ݪiDàWËÐÜX'ÖìkÀÌÿº©ü–ñqýòV¶gDO³¯Ý„¦âÁÔôçE 6È ä1cZŒ¦ÄÄ—n£¹±NXxú(¿] ±ãgL_ºM!ÓÐb4Ü+e´´Ê¤âŽdüƒç62[é£]Am­ž,b÷@Jáé£Õ„ÿð‘Ü_Ù,Wºˆr€‘®Îèr_g8ÕÕ&(ÁQAäÛ4·­Ÿò.«ö—¯­ajëAïghS–öÝFJËÛhheg©‹³;Lýcs é/¼RƒÈõËÄ¢ì,‘—¾84†íõ‰9™óõ:n–œ`‰²³Ä,o_ï~†6YIqaÐÑî¥vÊèã¸v>=V”E¹æXÞ¾5™é=uu›^À/ °A”eD䆸ÍX¹j®S¬‘#§Ï^Ëžç3œŒÇì-ÂÙ£[Ã@µövmæÏ ’X ÊÎÊW¤×vú9šÚúѽµõQ_{ͽ3žäW\ø¦æØ:p¤ajëeIÉ)tšâîŽåáܱ8Iû£>xødÆöEóöëd:ÛŒ4µõk¾OŽƒNI¼‰¨½q>m•á1!)[©›Vàb47ýa @æšṉ̃ p…%5Pþ~üä¾Z‚æ¦?| 3³•0DN  á}® Unû¬@ú® » 3¹ÌÁÃ'‹Tç(,©ÁÏ—ïÂÁÊ^.ŠM¤ÄA8a?šUÙ¾äJ<§à2S÷ þ~…@=hjë3-GÍÄ|ŸÈ8Y.¯—¨®]XRƒèËIT9X²A€›¿ž$ÚéÇÛÈõ™hIPvã!ÀvHÿ°}Úo)Ͷ‡8rŠßš ¶=…Ч*^÷˜éiEïŸÂ«8‘"<˜Ìö Ht™¶œ·"Б²æ–͘á¿Êx.üZ‹˜M!b~ƒé Ã!c ’bwÀ·zëqT\È L*a.ˆŒÙÁP7:Û*(FÁñøpáÁô8¶O@â¿5<å9•17>yö“1z¸a‡zs{/Q†9æ‘ ´j}S¹vYD*n]Í!rÐhyakÔj ™Ê„«úgúÍ‘ d¦©­_¾*llé]^&}ˆ˜¨ÍhnúÃÛpȨèí[¨ä.Y»µ7..ÐÔÖOŽÚ²ÆµÉX|Úeœ%¤ÈL%äL¿9e ‰Étå¼ÇO^ (ˆÛp 3U±%ßär ‡ŒJŽ ›§vÎ2éCÊ Äzá2SãfúÍ1êÃ]Ïõ™@ÝÈ™¼€ÄÜn’èÛp%®Ö"nËJR µß2GÛ+Z™Š[¥?’@„½[PèâÙcÐWKþÂÕZìÛó=’â×Q÷ŸšiøÏäôîÓ?yê¬E`3‡ª+Wá‡ý;ñìÉÃŽöîÓ¿fóæHŠÛÒ%¸x2!%#Mì?;p)î°™*à²u;p_zÉ%#M !pˆ‚WÇR†Š«phϦÝi‚Eª8ügFôîÓ?ÔÁíKÈïü²ëp)_+Ç©XÀPÅž‘&ˆ#jðÌí&q=˜n˜0ÚLí¬×n>Dá•\Ê¢á÷J[ts»I¢è5³)¼&~J ¤:Úè´µAB„î@‹PKÆ´×doCú)ñÑaSteLgÓ.㦶襩›Àÿ?MàÙ¿|Ö¸bÙšs+s’¤Ÿ¸†ÑtïÙ›À@€<öòyÓ¶_=ï ‡žok®Ô‡Û¶½ÚžŸ¿x¾Œª¢Ã=ä_C?ÝlÐßB™«WŠp·òœ‰ÙcK3=hh(b%ùÐ7u@}mEû»ÃtØxØØØâRÁ)ÔUÿ¢%“2™ ݺ)©Ø™¢;¸œŸnÝ{†®ÃÆÎ†‰¡î_2Ÿ´úªŠ ý‘ýLKϲַÆöEe÷¡A(ô¤ù%ž?iÀÓÆßÓ¸›`N·zýàëÑ,ñðÞo´w¯ÊNõ{elЧ‡òÉ«}ð·êq¥ì&ªKsñüÉÃän=>º`á°±³Ýÿ*q:½âht§¿Õw_Z”ÞòòÙ^š:cå¾nÝ{âùÓ†‹Ýº÷Ì`N£;‘×›Üj*ÿµ½¥å¥K¯Þ}^4?&ý=zi¡—¦zkõCcýPBht'×ÿÑ|UE‡ä1 ý;ž&5v›øßõëÛµ]@kS}ðÿpŽªª¢ÃâÕ¥y &þ>Ø{fÝ>Pð~ÛÿÞžk˜^œIEND®B`‚CCfits/html/closed.png0000644000225700000360000000017611667502523014455 0ustar cagordonlhea‰PNG  IHDR à‘EIDATxíÝA @! PŠ­iš/`Є.È?,!ƒu zlÞ–Jh1ߘ+výRLé§x@‘Ù (*79HÑ þl)¡ó²‰IEND®B`‚CCfits/html/open.png0000644000225700000360000000016611667502523014144 0ustar cagordonlhea‰PNG  IHDR à‘=IDATxí1 “ت¦@@   ]01ÀQXY~Jr?D>„¥¶þ’n¼ áFÍ  }ÈúÂéãÏ\ ÄáÿòIEND®B`‚CCfits/html/doxygen.css0000644000225700000360000003500311667502523014662 0ustar cagordonlhea/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { font-size: 150%; } .title { font-size: 150%; font-weight: bold; margin: 10px 2px; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { color: #4665A2; } a.codeRef { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 8px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; } .memname { white-space: nowrap; font-weight: bold; margin-left: 6px; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 8px; border-top-left-radius: 8px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 8px; -moz-border-radius-topleft: 8px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 8px; -webkit-border-top-left-radius: 8px; background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 2px 5px; background-color: #FBFCFD; border-top-width: 0; /* opera specific markup */ border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { border-spacing: 6px 2px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0px; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; margin: 5px; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ div.dynheader { margin-top: 8px; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; text-align:left; } table.fieldtable { width: 100%; margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; width: 100%; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { margin-left: 5px; font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 7px; } dl { padding: 0 0 0 10px; } dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug { border-left:4px solid; padding: 0 0 0 6px; } dl.note { border-color: #D0C000; } dl.warning, dl.attention { border-color: #FF0000; } dl.pre, dl.post, dl.invariant { border-color: #00D000; } dl.deprecated { border-color: #505050; } dl.todo { border-color: #00C0E0; } dl.test { border-color: #3030E0; } dl.bug { border-color: #C08050; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } pre.fragment { overflow: visible; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ } } CCfits/html/index.html0000644000225700000360000003414311667506644014504 0ustar cagordonlhea CCfits: CCfits Documentation
CCfits Documentation
CCfits requires CFITSIO
Return To CCfits Home Page

Introduction

CCfits is an object oriented interface to the cfitsio library. cfitsio is a widely used library for manipulating FITS (Flexible Image Transport System) formatted files. This following documentation assumes prior knowledge of the FITS format and some knowledge of the use of the cfitsio library, which is in wide use, well developed, and available on many platforms.

For information about FITS and cfitsio, refer to:

The CCfits library provides an interface that allows the user to manipulate FITS format data through the high-level building blocks of FITS files and Header-Data Units (HDUs). The implementation is designed to hide the details of performing FITS I/O from the user, who will write calls that manipulate FITS objects by passing filenames and lists of strings that represent HDUs, keywords, image data and data columns. Unlike cfitsio, which typically requires several calls to access data (e.g. open file, move to correct header, determine column containing table data, read data) CCfits is designed to make reading data atomic. For example, it exploits internally existing optimization techniques for FITS I/O, choosing the optimal reading strategy as available [see the cfitsio manual, Chapter 13] when data are read on initialization. Data written by CCfits will also be compliant with the FITS standard by specification of class constructors representing FITS dataset elements.

CCfits necessarily works in a fundamentally different way than cfitsio. The general pattern of usage for CCfits is: create a FITS object, which either opens a disk file or creates a new disk file, create references to existing or new HDU objects within it, and manipulated the data through the references. For files with Write access the library is designed to keep the FITS object on disk in sync with the memory copy. The additional memory copy increases the resources required by a calling program in return for some flexibility in accessing the data.

About this Manual

This document lays out the specification for the CCfits library.

The hyperlinks below document the installation procedure, and the demonstration program cookbook which gives examples of usage with comments.

Release Notes for Version 2.4 Dec 2011

Fixes:

  • Compressed images may now be written with BITPIX=32. This fix was made by internally storing the image array as int types rather than longs (see backwards compatibility issues).
  • For variable-width columns, the write functions now allow all of the same type conversions as had been working with fixed-width columns.
  • The null-value versions of the primary and extension image write functions are now working.
  • The basic FITS constructor can now handle files containing multiple extensions which have the same name AND version number. (Note that this is still not a recommended file structure.)
  • BinTable's addColumn function now automatically first makes itself the current extension so that the user doesn't have to call ExtHDU::makeThisCurrent().
  • Bug fix to Table's deleteRows function. This error had been preventing the output stream operator from working on vector columns after rows had been deleted.

Backwards Compatibility Issue:

  • For images of BITPIX=32, CCfits now stores the values in a valarray of ints rather than longs. This affects the public interface in one place: the return type of the ImageExt<T>::image() function.

Release Notes For Version 2.3 Nov 2010

Enhancements to CCfits:

  • 3 previously protected functions are now made public: Keyword::keytype(), PHDU::simple(), and PHDU::extend().
  • New function: ExtHDU::isCompressed().
  • Uses less memory during the image loading operations for primary and extension HDUs.
  • When the basic version of the FITS constructor is called in Write mode on a pre-existing file, it will now automatically read ALL of the headers rather than just the primary. This makes it conform more closely to the Read mode behavior, and it makes things easier when trying to append new HDUs to files containing an unknown number of existing HDUs. (See Backwards Compatibility)

Bug Fixes:

  • In the 2 FITS class deleteExtension functions, the index numbers of all HDU objects which follow the deleted are now decremented by one. (See Backwards Compatibility)
  • Fix to the PHDU write functions which take a nullValue argument. Neither could be instantiated due to an invalid static_cast of pointers.
  • Fix needed for the FITS::copy function to allow the Columns in the newly created HDU to be modifiable.
  • The basic version of the FITS constructor, when in Write mode, was ignoring the user's readDataFlag and optional primary keys input.
  • An error in the (seldom instantiated) Image class assignment operator was preventing compilation with the nvcc compiler.
  • On 64-bit Linux only, a bad cast error is triggered when trying to read an image of type signed or unsigned long, into a valarray with the opposite signed/unsigned qualifier.
  • All of the FITS::read functions now perform a check to prevent multiple entries of the same HDU from appearing in the FITS::extension() multimap.
  • For case of Columns of type unsigned longs, the object's lower data limit value was left unitialized.

Backwards Compatibility Issues:

  • If you're calling either FITS::deleteExtension function AND you have saved references to any of the ExtHDU objects which follow the deleted object, note that those ExtHDUs will now have an index number 1 less than before. Their indices will now correctly match what's actually in the FITS file.
  • When using the basic version of the FITS constructor in Write mode on a pre-existing file, you no longer need to first call FITS::read to access any of the ExtHDUs. These are now read automatically, same as when this constructor is called in Read mode. However this change shouldn't require the removal of the FITS::read calls from your code. They will merely be redundant if left in.

Release Notes For Version 2.2 Sep 2009

Enhancements to CCfits:

  • Added an auto-generated pkg-config file to the stand-alone distribution.
  • Added an option for case-insensitive searching in the ExtHDU and Table Column get-by-name functions.
  • The public functions column() and numCols() have been added to the ExtHDU interface. They were previously available only in the derived Table class.
  • New resetRead and getNullValue functions for Column class.
  • Improved the documentation for the nullValue versions of the Column read/write member functions.

Bug Fixes:

  • Converted non-standard calls to vector and valarray end iterators. These were causing runtime exceptions when built with Microsoft Visual C++ v9.0.
  • The Column addNullValue function now works for cases where the null value argument is of a type that requires casting to match the type of data stored in the Column.
  • Fix to the Column writeArrays function for the case where valarrays of varying length were sent to fixed-width columns. It was previously sending along a default null value even when the user did not request one.
  • Fix for reading and writing complex data types to scalar columns. The first "firstRow" complex values were not being written or read.
  • Renamed private FITS::extension() function to extensionMap(). This is to prevent user from having to explicitly declare a const FITS pointer in order to use the public const FITS::extension*() function.

Backwards Compatibility Issue:

  • To prevent overloading ambiguity resulting from the new flag added to ExtHDU/Table get-by-name Column functions for case-insensitive searches, the protected column(string,Column*) function has been renamed to setColumn. As this is a protected function, the change should not affect standard usage of CCfits.

For a more complete listing, see the CHANGES file distributed with the software. For earlier versions, see Previous Release Notes.

Authors and Acknowledgements

CCfits was written as part of a re-engineering effort for the X-Ray data analysis program, XSPEC. It was designed using Rational Rose and originally implemented on a Solaris platform by Ben Dorman to whom blame should be attached. Sandhia Bansal worked on part of the implementation and, and Paul Kunz (pfkeb@slac.stanford.edu) wrote the configuration scheme and dispensed helpful advice: both are also thanked profusely for the port to Windows2000/VC++.net. Thanks to R. Mathar (MPIA) and Patrik Jonsson (Lick Obs.) for contributing many helpful suggestions and bug reports, and ports to HP-UX and AIX respectively.

CCfits is currently maintained by Craig Gordon and Bryan Irby (ccfits@heasarc.gsfc.nasa.gov). Suggestions and bug reports are welcome, as are offers to fill out parts of the implementation that are missing. We are also interested in knowing which parts of cfitsio that are not currently supported should be the highest priority for future extensions.

CCfits/html/pages.html0000644000225700000360000000563211667502523014465 0ustar cagordonlhea CCfits: Related Pages
Related Pages
CCfits/html/AsciiTable_8h_source.html0000644000225700000360000002422611667502523017345 0ustar cagordonlhea CCfits: AsciiTable.h Source File
CCfits  2.4
AsciiTable.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef ASCIITABLE_H
00010 #define ASCIITABLE_H 1
00011 
00012 // HDUCreator
00013 #include "HDUCreator.h"
00014 // Table
00015 #include "Table.h"
00016 // needed for CLONE_DEFECT
00017 #ifdef _MSC_VER
00018 #include "MSconfig.h"
00019 #endif
00020 
00021 
00022 namespace CCfits {
00023 
00136   class AsciiTable : public Table  //## Inherits: <unnamed>%3804A75CE420
00137   {
00138 
00139     public:
00140         virtual AsciiTable * clone (FITSBase* p) const;
00141         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00142         virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0);
00143 
00144       // Additional Public Declarations
00145 
00146     protected:
00147         AsciiTable (FITSBase* p, const String &hduName = String(""), bool readFlag = false, const std::vector<String>& keys = std::vector<String>(), int version = 1);
00148         AsciiTable (FITSBase* p, const String &hduName, int rows, const std::vector<String>& columnName = std::vector<String>(), const std::vector<String>& columnFmt = std::vector<String>(), const std::vector<String>& columnUnit = std::vector<String>(), int version = 1);
00149         //      ExtHDU constructor for getting ExtHDUs by number.
00150         //      Necessary since EXTNAME is a reserved not required
00151         //      keyword.
00152         AsciiTable (FITSBase* p, int number);
00153         ~AsciiTable();
00154 
00155       // Additional Protected Declarations
00156 
00157     private:
00158         AsciiTable(const AsciiTable &right);
00159 
00160         virtual void readTableHeader (int ncols, std::vector<String>& colName, std::vector<String>& colFmt, std::vector<String>& colUnit);
00161 
00162       // Additional Private Declarations
00163 
00164     private: //## implementation
00165       // Additional Implementation Declarations
00166       friend class HDUCreator;
00167   };
00168 
00169   // Class CCfits::AsciiTable 
00170 
00171 } // namespace CCfits
00172 
00173 
00174 #endif
CCfits/html/BinTable_8h_source.html0000644000225700000360000002422611667502523017025 0ustar cagordonlhea CCfits: BinTable.h Source File
CCfits  2.4
BinTable.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef BINTABLE_H
00010 #define BINTABLE_H 1
00011 
00012 // HDUCreator
00013 #include "HDUCreator.h"
00014 // Table
00015 #include "Table.h"
00016 
00017 // needed for CLONE_DEFECT
00018 #ifdef _MSC_VER
00019 #include "MSconfig.h"
00020 #endif
00021 
00022 
00023 namespace CCfits {
00024 
00130   class BinTable : public Table  //## Inherits: <unnamed>%3804A7E75F10
00131   {
00132 
00133     public:
00134         virtual BinTable * clone (FITSBase* p) const;
00135         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00136         virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0);
00137 
00138       // Additional Public Declarations
00139 
00140     protected:
00141         BinTable (FITSBase* p, const String &hduName = String(""), bool readFlag = false, const std::vector<String>& keys = std::vector<String>(), int version = 1);
00142         BinTable (FITSBase* p, const String &hduName, int rows, const std::vector<String>& columnName = std::vector<String>(), const std::vector<String>& columnFmt = std::vector<String>(), const std::vector<String>& columnUnit = std::vector<String>(), int version = 1);
00143         //      ExtHDU constructor for getting ExtHDUs by number.
00144         //      Necessary since EXTNAME is a reserved not required
00145         //      keyword.
00146         BinTable (FITSBase* p, int number);
00147         ~BinTable();
00148 
00149       // Additional Protected Declarations
00150 
00151     private:
00152         BinTable(const BinTable &right);
00153 
00154         virtual void readTableHeader (int ncols, std::vector<String>& colName, std::vector<String>& colFmt, std::vector<String>& colUnit);
00155         void readVariableColumns (const std::vector<String> &varColumns);
00156 
00157       // Additional Private Declarations
00158 
00159     private: //## implementation
00160       // Additional Implementation Declarations
00161       friend class HDUCreator;
00162   };
00163 
00164   // Class CCfits::BinTable 
00165 
00166 } // namespace CCfits
00167 
00168 
00169 #endif
CCfits/html/CCfits_8h_source.html0000644000225700000360000001716711667502523016526 0ustar cagordonlhea CCfits: CCfits.h Source File
CCfits  2.4
CCfits.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef CCFITS_H
00010 #define CCFITS_H 1
00011 
00012 // fitsio
00013 #include "fitsio.h"
00014 // string
00015 #include <string>
00016 
00017 namespace CCfits {
00018   class ExtHDU;
00019 
00020 } // namespace CCfits
00021 #include <map>
00022 #include <sys/types.h>
00023 #include "longnam.h"
00024 #include "float.h"
00025 
00026 
00027 namespace CCfits {
00031   static const int BITPIX = -32;
00032   static const int  NAXIS =   2;
00033   static const int  MAXDIM = 99;
00034   extern const unsigned long USBASE;
00035   extern const unsigned long  ULBASE;
00036 
00037   extern  char BSCALE[7];
00038   extern  char BZERO[6];
00039 
00040 
00041 
00042   typedef enum {Read=READONLY,Write=READWRITE} RWmode;
00043 
00044 
00079   typedef enum {Tnull, Tbit = TBIT, Tbyte = TBYTE, Tlogical = TLOGICAL, Tstring = TSTRING, Tushort = TUSHORT, Tshort = TSHORT,Tuint = TUINT,Tint = TINT, Tulong = TULONG,Tlong = TLONG, Tlonglong = TLONGLONG, Tfloat = TFLOAT, Tdouble = TDOUBLE, Tcomplex = TCOMPLEX, Tdblcomplex=TDBLCOMPLEX, VTbit= -TBIT, VTbyte=-TBYTE,VTlogical=-Tlogical, VTushort=-TUSHORT,VTshort=-TSHORT,VTuint=-TUINT, VTint=-TINT,VTulong=-TULONG,VTlong=-TLONG,VTlonglong=-TLONGLONG,VTfloat=-TFLOAT,VTdouble=-TDOUBLE,VTcomplex=-TCOMPLEX,VTdblcomplex=-TDBLCOMPLEX} ValueType;
00080 
00081 
00082 
00083   typedef enum {AnyHdu=-1, ImageHdu, AsciiTbl, BinaryTbl} HduType;
00084 
00085 
00086 
00087   typedef enum {Inotype = 0, Ibyte=BYTE_IMG, 
00088   Ishort = SHORT_IMG,
00089   Ilong = LONG_IMG, 
00090   Ifloat = FLOAT_IMG, 
00091   Idouble = DOUBLE_IMG, 
00092   Iushort = USHORT_IMG, 
00093   Iulong = ULONG_IMG} ImageType;
00094 
00095 
00096 
00097   typedef std::string String;
00098 
00099 
00100 
00101   typedef std::multimap<String,CCfits::ExtHDU*> ExtMap;
00102 
00103 
00104 
00105   typedef ExtMap::const_iterator ExtMapConstIt;
00106 
00107 
00108 
00109   typedef ExtMap::iterator ExtMapIt;
00110 
00111 } // namespace CCfits
00112 
00113 
00114 #endif
CCfits/html/Column_8h_source.html0000644000225700000360000027203611667502523016606 0ustar cagordonlhea CCfits: Column.h Source File
CCfits  2.4
Column.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef COLUMN_H
00010 #define COLUMN_H 1
00011 #include <iostream>
00012 
00013 // CCfitsHeader
00014 #include "CCfits.h"
00015 // Table
00016 #include "Table.h"
00017 // FitsError
00018 #include "FitsError.h"
00019 // FITSUtil
00020 #include "FITSUtil.h"
00021 
00022 #include <complex>
00023 
00024 
00025 namespace CCfits {
00026 
00027 
00028 
00827   class Column 
00828   {
00829 
00830     public:
00831 
00832 
00833 
00834       class RangeError : public FitsException  //## Inherits: <unnamed>%3946526D031A
00835       {
00836         public:
00837             RangeError (const String& msg, bool silent = true);
00838 
00839         protected:
00840         private:
00841         private: //## implementation
00842       };
00843 
00844 
00845 
00846       class InvalidDataType : public FitsException  //## Inherits: <unnamed>%3947CF30033E
00847       {
00848         public:
00849             InvalidDataType (const String& str = string(), bool silent = true);
00850 
00851         protected:
00852         private:
00853         private: //## implementation
00854       };
00855 
00856 
00857 
00858       class InvalidRowParameter : public FitsException  //## Inherits: <unnamed>%39B5310F01A0
00859       {
00860         public:
00861             InvalidRowParameter (const String& diag, bool silent = true);
00862 
00863         protected:
00864         private:
00865         private: //## implementation
00866       };
00867 
00868 
00869 
00870       class WrongColumnType : public FitsException  //## Inherits: <unnamed>%39B545780082
00871       {
00872         public:
00873             WrongColumnType (const String& diag, bool silent = true);
00874 
00875         protected:
00876         private:
00877         private: //## implementation
00878       };
00879 
00880 
00881 
00882       class UnspecifiedLengths : public FitsException  //## Inherits: <unnamed>%3A018C9D007D
00883       {
00884         public:
00885             UnspecifiedLengths (const String& diag, bool silent = true);
00886 
00887         protected:
00888         private:
00889         private: //## implementation
00890       };
00891 
00892 
00893 
00894       class InvalidRowNumber : public FitsException  //## Inherits: <unnamed>%3B0A850F0307
00895       {
00896         public:
00897             InvalidRowNumber (const String& diag, bool silent = true);
00898 
00899         protected:
00900         private:
00901         private: //## implementation
00902       };
00903 
00904 
00905 
00906       class InsufficientElements : public FitsException  //## Inherits: <unnamed>%3B0BE611010A
00907       {
00908         public:
00909             InsufficientElements (const String& msg, bool silent = true);
00910 
00911         protected:
00912         private:
00913         private: //## implementation
00914       };
00915 
00916 
00917 
00918       class NoNullValue : public FitsException  //## Inherits: <unnamed>%3B0D589A0092
00919       {
00920         public:
00921             NoNullValue (const String& diag, bool silent = true);
00922 
00923         protected:
00924         private:
00925         private: //## implementation
00926       };
00927 
00928 
00929 
00930       class InvalidNumberOfRows : public FitsException  //## Inherits: <unnamed>%3B20EB8B0205
00931       {
00932         public:
00933             InvalidNumberOfRows (size_t number, bool silent = true);
00934 
00935         protected:
00936         private:
00937         private: //## implementation
00938       };
00939         Column(const Column &right);
00940         virtual ~Column();
00941         bool operator==(const Column &right) const;
00942 
00943         bool operator!=(const Column &right) const;
00944 
00945         virtual void readData (long firstRow, long nelements, long firstElem = 1) = 0;
00946         //      Virtual copy constructor.
00947         virtual Column * clone () const = 0;
00948         int rows () const;
00949         void setDisplay ();
00950         virtual void setDimen ();
00951         friend std::ostream& operator << (std::ostream& s, const Column& right);
00952         Table* parent () const;
00953         //      Inequality operators for imposing sort order on columns.
00954         friend bool operator < (const Column& left, const Column& right);
00955         //      Inequality operators for imposing sort order on columns.
00956         friend bool operator > (const Column& left, const Column& right);
00957         void setLimits (ValueType type);
00958         void unit (const String& value);
00959         void resetRead ();
00960         int index () const;
00961         void index (int value);
00962         bool isRead () const;
00963         void isRead (bool value);
00964         long width () const;
00965         void width (long value);
00966         size_t repeat () const;
00967         bool varLength () const;
00968         double scale () const;
00969         void scale (double value);
00970         double zero () const;
00971         void zero (double value);
00972         const String& display () const;
00973         const String& dimen () const;
00974         void dimen (const String& value);
00975         ValueType type () const;
00976         void type (ValueType value);
00977         static const String& TFORM ();
00978         static const String& TDISP ();
00979         static const String& TSCAL ();
00980         static const String& TZERO ();
00981         static const String& TDIM ();
00982         const String& format () const;
00983         const String& unit () const;
00984         const String& name () const;
00985 
00986     public:
00987       // Additional Public Declarations
00988 
00989         // scalar column interface. Column's Data Member is a std::vector<T>,
00990         // input data is std::vector<S>, std::valarray<S> or S* where S is not
00991         // in general the same as T.
00992 
00993         template <typename S>                   
00994         void write (const std::vector<S>& indata, long firstRow);
00995 
00996         void write (const std::vector<std::complex<float> >& indata, long firstRow);
00997 
00998         void write (const std::vector<std::complex<double> >& indata, long firstRow);
00999 
01000         template <typename S>                   
01001         void write (const std::valarray<S>& indata, long firstRow);
01002 
01003         void write (const std::valarray<std::complex<float> >& indata, long firstRow);
01004 
01005         void write (const std::valarray<std::complex<double> >& indata, long firstRow);
01006 
01007         template <typename S>                   
01008         void write (S* indata, long nRows, long firstRow);
01009 
01010 
01011         template <typename S>                   
01012         void write (const std::vector<S>& indata, long firstRow, S* nullValue);
01013 
01014         template <typename S>                   
01015         void write (const std::valarray<S>& indata, long firstRow, S* nullValue);
01016 
01017         template <typename S>                   
01018         void write (S* indata, long nRows, long firstRow, S* nullValue);        
01019         // vector column interface. We provide an interface that allows input of a vector, valarray and C-array.
01020         // there are versions that write variable numbers of elements per row as specified
01021         // in the vectorLengths argument. The user also can directly write a vector<valarray<T> >
01022         // object which is how the data are stored in the ColumnVectorData object. 
01023         // this last one is also used internally to implement the variable lengths versions.
01024 
01025         // fixed length write to binary table from valarray.
01026 
01027 
01028         template <typename S>
01029         void write (const std::valarray<S>& indata, long nRows, long firstRow);
01030 
01031         void write (const std::valarray<std::complex<float> >& indata, long nRows, long firstRow);
01032 
01033         void write (const std::valarray<std::complex<double> >& indata, long nRows, long firstRow);
01034 
01035 
01036         template <typename S>
01037         void write (const std::vector<S>& indata, long nRows, long firstRow);
01038 
01039         void write (const std::vector<std::complex<float> >& indata, long nRows, long firstRow);
01040 
01041         void write (const std::vector<std::complex<double> >& indata, long nRows, long firstRow);
01042 
01043 
01044 
01045         template <typename S>
01046         void write (S* indata, long nElements, long nRows, long firstRow);
01047 
01048 
01049         template <typename S>
01050         void write (const std::valarray<S>& indata, long nRows, long firstRow, S* nullValue);
01051 
01052 
01053         template <typename S>
01054         void write (const std::vector<S>& indata, long nRows, long firstRow, S* nullValue);
01055 
01056         template <typename S>
01057         void write (S* indata, long nElements, long nRows, long firstRow, S* nullValue);
01058 
01059         // variable-length write to vector column from valarray or vector.
01060 
01061         template <typename S>
01062         void write (const std::valarray<S>& indata,  
01063                         const std::vector<long>& vectorLengths, 
01064                         long firstRow);        
01065 
01066         void write (const std::valarray<std::complex<float> >& indata,  
01067                         const std::vector<long>& vectorLengths, 
01068                         long firstRow);        
01069 
01070         void write (const std::valarray<std::complex<double> >& indata,  
01071                         const std::vector<long>& vectorLengths, 
01072                         long firstRow);      
01073 
01074         template <typename S>
01075         void write (const std::vector<S>& indata, 
01076                         const std::vector<long>& vectorLengths, 
01077                         long firstRow);
01078 
01079 
01080 
01081         void write (const std::vector<std::complex<float> >& indata, 
01082                         const std::vector<long>& vectorLengths, 
01083                         long firstRow);
01084 
01085         void write (const std::vector<std::complex<double> >& indata, 
01086                         const std::vector<long>& vectorLengths, 
01087                         long firstRow);
01088 
01089         template <typename S>
01090         void write (S* indata, long nElements,  
01091                         const std::vector<long>& vectorLengths, 
01092                         long firstRow);
01093 
01094         template <typename S>
01095         void writeArrays (const std::vector<std::valarray<S> >& indata, long firstRow); 
01096 
01097         void writeArrays (const std::vector<std::valarray<std::complex<float> > >& indata, long firstRow); 
01098 
01099         void writeArrays (const std::vector<std::valarray<std::complex<double> > >& indata, long firstRow); 
01100 
01101         template <typename S>
01102         void writeArrays (const std::vector<std::valarray<S> >& indata, long firstRow, S* nullValue);  
01103 
01104         // get specified elements of a scalar column, returned as a std::vector
01105         // S is NOT the type of the column data itself, it is the type of the returned
01106         // data.
01107 
01108         template <typename S>
01109         void read(std::vector<S>& vals, long first, long last) ;
01110 
01111         // VC++, at least, won't compile these as template covering std::complex instances.
01112         void read(std::vector< std::complex<float> >& , long first, long last);
01113 
01114         void read(std::vector< std::complex<double> >& , long first, long last);
01115 
01116         void read(std::vector<String>& vals, long first, long last);
01117 
01118         // return a set of rows from a scalar column as a valarray.
01119         template <typename S>
01120         void read(std::valarray<S>& vals, long first, long last) ;
01121 
01122         void read(std::valarray<std::complex<float> >& vals, long first, long last) ;
01123 
01124         void read(std::valarray<std::complex<double> >& vals, long first, long last) ;
01125 
01126         // return a single  row of a vector column.
01127         template <typename S>
01128         void read(std::valarray<S>& vals, long rows) ;
01129 
01130         void read(std::valarray<std::complex<float> >& vals, long rows) ;
01131 
01132         void read(std::valarray<std::complex<double> >& vals, long rows) ;
01133 
01134         // get a set of rows from a vector column.
01135         template <typename S>
01136         void readArrays(std::vector<std::valarray<S> >& vals, long first, long last) ;
01137 
01138         void readArrays(std::vector<std::valarray<std::complex<float> > >& vals, long first, long last) ;
01139 
01140         void readArrays(std::vector<std::valarray<std::complex<double> > >& vals, long first, long last) ;
01141 
01142         // nullValue has no meaning when the target column has floating point/std::complex
01143         // type. Also, implict conversion of std::complex to pure real is not supported
01144         // by cfitsio.
01145 
01146         template <typename S>
01147         void read(std::vector<S>& vals, long first, long last, S* nullValue) ;
01148 
01149         // return a set of rows from a scalar column as a valarray.
01150         template <typename S>
01151         void read(std::valarray<S>& vals, long first, long last, S* nullValue);
01152 
01153         // return a single  row of a vector column.
01154         template <typename S>
01155         void read(std::valarray<S>& vals, long rows, S* nullValue) ;
01156 
01157         // get a set of rows from a vector column.
01158         template <typename S>
01159         void readArrays(std::vector<std::valarray<S> >& vals, long first, long last, S* nullValue);
01160 
01161         // add a null value to the column 
01162         template <typename T>
01163         void addNullValue(T nullVal);
01164 
01165         // get the TNULL setting
01166         template <typename T>
01167         bool getNullValue(T* nullVal) const;
01168 
01169         void write (const std::vector<String>& indata, long firstRow);
01170 
01171         friend void Table::insertRows(long first, long number);
01172 
01173         friend void Table::deleteRows(long first, long number);
01174 
01175         friend void Table::deleteRows(const std::vector<long>& rowList);
01176 
01177         friend void Table::initRead();
01178 
01179         friend void Table::reindex();
01180 
01181         friend void Table::copyData(const Table& right);
01182     protected:
01183         Column (int columnIndex,        // The column index, i.e. the integer n in the keyword TCOLn
01184         const String &columnName,       // The column name, curiously TTYPEn
01185         ValueType type, const String &format,   // The TFORMn keyword.
01186         const String &unit,     // The TUNITn keyword
01187         Table* p,       // ! The Table containing the Column object
01188         int rpt = 1, long w = 1, const String &comment = "");
01189         Column (Table* p = 0);
01190 
01191         virtual bool compare (const Column &right) const;
01192         fitsfile* fitsPointer ();
01193         //      Protected method to set the current HDU to be the one containing this Column object. For use in
01194         //      public read/write methods to ensure that data regarding numbers of rows and width relate to the
01195         //      right HDU
01196         void makeHDUCurrent ();
01197         virtual std::ostream& put (std::ostream& s) const;
01198         void varLength (bool value);
01199         static const String& TBCOL ();
01200         static const String& TTYPE ();
01201         static const String& TUNIT ();
01202         static const String& TNULL ();
01203         static const String& TLMIN ();
01204         static const String& TLMAX ();
01205         static const String& TDMAX ();
01206         static const String& TDMIN ();
01207         static const std::vector<String>& columnKeys ();
01208         const String& comment () const;
01209 
01210       // Additional Protected Declarations
01211 
01212     private:
01213         Column & operator=(const Column &right);
01214 
01215         //      Insert one or more blank rows into a FITS column.
01216         virtual void insertRows (long first, long number = 1) = 0;
01217         virtual void deleteRows (long first, long number = 1) = 0;
01218         static void loadColumnKeys ();
01219         void name (const String& value);
01220         void format (const String& value);
01221         long numberOfElements (long& first, long& last);
01222 
01223       // Data Members for Class Attributes
01224         static const String s_TBCOL;
01225         static const String s_TTYPE;
01226         static const String s_TFORM;
01227         static const String s_TDISP;
01228         static const String s_TUNIT;
01229         static const String s_TSCAL;
01230         static const String s_TZERO;
01231         static const String s_TDIM;
01232         static const String s_TNULL;
01233         static const String s_TLMIN;
01234         static const String s_TLMAX;
01235         static const String s_TDMAX;
01236         static const String s_TDMIN;
01237 
01238       // Additional Private Declarations
01239 
01240     private: //## implementation
01241       // Data Members for Class Attributes
01242         int m_index;
01243         bool m_isRead;
01244         long m_width;
01245         size_t m_repeat;
01246         bool m_varLength;
01247         double m_scale;
01248         double m_zero;
01249         String m_display;
01250         String m_dimen;
01251         ValueType m_type;
01252         static const short LLIMITSHORT;
01253         static const long LLIMITLONG;
01254         static const unsigned short LLIMITUSHORT;
01255         static const unsigned long LLIMITULONG;
01256         static const unsigned char LLIMITUCHAR;
01257         static const float LLIMITFLOAT;
01258         static const double LLIMITDOUBLE;
01259         static const short ULIMITSHORT;
01260         static const long ULIMITLONG;
01261         static const unsigned short ULIMITUSHORT;
01262         static const unsigned long ULIMITULONG;
01263         static const unsigned char ULIMITUCHAR;
01264         static const float ULIMITFLOAT;
01265         static const double ULIMITDOUBLE;
01266         static const int LLIMITINT;
01267         static const int ULIMITINT;
01268         static const unsigned int LLIMITUINT;
01269         static const unsigned int ULIMITUINT;
01270         static const LONGLONG LLIMITLONGLONG;
01271         static const LONGLONG ULIMITLONGLONG;
01272 
01273       // Data Members for Associations
01274         Table* m_parent;
01275         static std::vector<String> s_columnKeys;
01276         String m_comment;
01277         String m_format;
01278         String m_unit;
01279         String m_name;
01280 
01281       // Additional Implementation Declarations
01282 
01283   };
01284 
01285   // Class CCfits::Column::RangeError 
01286 
01287   // Class CCfits::Column::InvalidDataType 
01288 
01289   // Class CCfits::Column::InvalidRowParameter 
01290 
01291   // Class CCfits::Column::WrongColumnType 
01292 
01293   // Class CCfits::Column::UnspecifiedLengths 
01294 
01295   // Class CCfits::Column::InvalidRowNumber 
01296 
01297   // Class CCfits::Column::InsufficientElements 
01298 
01299   // Class CCfits::Column::NoNullValue 
01300 
01301   // Class CCfits::Column::InvalidNumberOfRows 
01302 
01303   // Class CCfits::Column 
01304 
01305   inline void Column::setDimen ()
01306   {
01307   // default implementation: do nothing. Overridden by ColumnVectorData.
01308   }
01309 
01310   inline std::ostream& operator << (std::ostream& s, const Column& right)
01311   {
01312 
01313     return right.put(s);
01314   }
01315 
01316   inline bool operator < (const Column& left, const Column& right)
01317   {
01318 
01319     return left.m_index < right.m_index;
01320   }
01321 
01322   inline bool operator > (const Column& left, const Column& right)
01323   {
01324 
01325     return left.m_index > right.m_index;
01326   }
01327 
01328   inline void Column::resetRead ()
01329   {
01330      m_isRead = false;
01331   }
01332 
01333   inline int Column::index () const
01334   {
01335     return m_index;
01336   }
01337 
01338   inline void Column::index (int value)
01339   {
01340     m_index = value;
01341   }
01342 
01343   inline bool Column::isRead () const
01344   {
01345     return m_isRead;
01346   }
01347 
01348   inline void Column::isRead (bool value)
01349   {
01350     m_isRead = value;
01351   }
01352 
01353   inline long Column::width () const
01354   {
01355     return m_width;
01356   }
01357 
01358   inline void Column::width (long value)
01359   {
01360     m_width = value;
01361   }
01362 
01363   inline size_t Column::repeat () const
01364   {
01365     return m_repeat;
01366   }
01367 
01368   inline bool Column::varLength () const
01369   {
01370     return m_varLength;
01371   }
01372 
01373   inline double Column::scale () const
01374   {
01375     return m_scale;
01376   }
01377 
01378   inline void Column::scale (double value)
01379   {
01380     m_scale = value;
01381     int status(0);
01382     if (fits_set_tscale(fitsPointer(),m_index,value,m_zero,&status)) throw FitsError(status);
01383   }
01384 
01385   inline double Column::zero () const
01386   {
01387     return m_zero;
01388   }
01389 
01390   inline void Column::zero (double value)
01391   {
01392     m_zero = value;
01393   }
01394 
01395   inline const String& Column::display () const
01396   {
01397     return m_display;
01398   }
01399 
01400   inline const String& Column::dimen () const
01401   {
01402     return m_dimen;
01403   }
01404 
01405   inline void Column::dimen (const String& value)
01406   {
01407     m_dimen = value;
01408   }
01409 
01410   inline ValueType Column::type () const
01411   {
01412     return m_type;
01413   }
01414 
01415   inline void Column::type (ValueType value)
01416   {
01417     m_type = value;
01418   }
01419 
01420   inline const String& Column::TBCOL ()
01421   {
01422     return s_TBCOL;
01423   }
01424 
01425   inline const String& Column::TTYPE ()
01426   {
01427     return s_TTYPE;
01428   }
01429 
01430   inline const String& Column::TFORM ()
01431   {
01432     return s_TFORM;
01433   }
01434 
01435   inline const String& Column::TDISP ()
01436   {
01437     return s_TDISP;
01438   }
01439 
01440   inline const String& Column::TUNIT ()
01441   {
01442     return s_TUNIT;
01443   }
01444 
01445   inline const String& Column::TSCAL ()
01446   {
01447     return s_TSCAL;
01448   }
01449 
01450   inline const String& Column::TZERO ()
01451   {
01452     return s_TZERO;
01453   }
01454 
01455   inline const String& Column::TDIM ()
01456   {
01457     return s_TDIM;
01458   }
01459 
01460   inline const String& Column::TNULL ()
01461   {
01462     return s_TNULL;
01463   }
01464 
01465   inline const String& Column::TLMIN ()
01466   {
01467     return s_TLMIN;
01468   }
01469 
01470   inline const String& Column::TLMAX ()
01471   {
01472     return s_TLMAX;
01473   }
01474 
01475   inline const String& Column::TDMAX ()
01476   {
01477     return s_TDMAX;
01478   }
01479 
01480   inline const String& Column::TDMIN ()
01481   {
01482     return s_TDMIN;
01483   }
01484 
01485   inline const std::vector<String>& Column::columnKeys ()
01486   {
01487     return s_columnKeys;
01488   }
01489 
01490   inline const String& Column::comment () const
01491   {
01492     return m_comment;
01493   }
01494 
01495   inline const String& Column::format () const
01496   {
01497     return m_format;
01498   }
01499 
01500   inline const String& Column::unit () const
01501   {
01502     return m_unit;
01503   }
01504 
01505   inline const String& Column::name () const
01506   {
01507     return m_name;
01508   }
01509 
01510 } // namespace CCfits
01511 
01512 
01513 #endif
CCfits/html/ColumnCreator_8h_source.html0000644000225700000360000002336511667502523020125 0ustar cagordonlhea CCfits: ColumnCreator.h Source File
CCfits  2.4
ColumnCreator.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef COLUMNCREATOR_H
00010 #define COLUMNCREATOR_H 1
00011 #include <iostream>
00012 
00013 // ColumnVectorData
00014 #include "ColumnVectorData.h"
00015 // ColumnData
00016 #include "ColumnData.h"
00017 
00018 namespace CCfits {
00019   class Table;
00020   class Column;
00021 
00022 } // namespace CCfits
00023 #include <string>
00024 #include <vector>
00025 
00026 
00027 namespace CCfits {
00028 
00029 
00030 
00031   class ColumnCreator 
00032   {
00033 
00034     public:
00035         ColumnCreator (Table* p);
00036         virtual ~ColumnCreator();
00037 
00038         void reset ();
00039         //      getColumn is a calling function for MakeColumn, i.e.
00040         //      it specifies a column in an existing file to be  "got"
00041         Column * getColumn (int number, const String& name, const String& format, const String& unit = "");
00042         //      createColumn is for specifying input data for creating
00043         //      new columns in tables.
00044         Column * createColumn (int number, ValueType type, const String &name, const String &format, const String &unit, long repeat = 1, long width = 1, double scaleFactor = 1., double offset = 0, const String &comment = "");
00045 
00046       // Additional Public Declarations
00047 
00048     protected:
00049         //      MakeColumn is a virtual function that makes a Column
00050         //      object with appropriate data member from an existing
00051         //      column in a file.
00052         virtual Column * MakeColumn (const int index, const String &name, const String &format, const String &unit, const long repeat, const long width, const String &comment = "", const int decimals = 0);
00053 
00054       // Additional Protected Declarations
00055 
00056     private:
00057         void getScaling (int index, int& type, long& repeat, long& width, double& tscale, double& tzero);
00058         const Table* parent () const;
00059         void parent (Table* value);
00060 
00061       // Additional Private Declarations
00062 
00063     private: //## implementation
00064       // Data Members for Class Attributes
00065         Column *m_column;
00066         Table* m_parent;
00067 
00068       // Additional Implementation Declarations
00069 
00070   };
00071 
00072   // Class CCfits::ColumnCreator 
00073 
00074   inline void ColumnCreator::reset ()
00075   {
00076     m_column = 0;
00077   }
00078 
00079   inline const Table* ColumnCreator::parent () const
00080   {
00081     return m_parent;
00082   }
00083 
00084   inline void ColumnCreator::parent (Table* value)
00085   {
00086     m_parent = value;
00087   }
00088 
00089 } // namespace CCfits
00090 
00091 
00092 #endif
CCfits/html/ColumnData_8h_source.html0000644000225700000360000016553511667502523017405 0ustar cagordonlhea CCfits: ColumnData.h Source File
CCfits  2.4
ColumnData.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef COLUMNDATA_H
00010 #define COLUMNDATA_H 1
00011 #include "CCfits.h"
00012 
00013 // vector
00014 #include <vector>
00015 // Column
00016 #include "Column.h"
00017 #ifdef _MSC_VER
00018 #include "MSconfig.h"
00019 #endif
00020 
00021 #include <complex>
00022 #include <memory>
00023 #include <iterator>
00024 #include "FITSUtil.h"
00025 using std::complex;
00026 #include "FITS.h"
00027 
00028 
00029 namespace CCfits {
00030 
00031 
00032 
00033   template <typename T>
00034   class ColumnData : public Column  //## Inherits: <unnamed>%385E51565EE8
00035   {
00036 
00037     public:
00038         ColumnData(const ColumnData< T > &right);
00039         ColumnData (Table* p = 0);
00040         ColumnData (int columnIndex, const string &columnName, ValueType type, const String &format, const String &unit, Table* p, int rpt = 1, long w = 1, const String &comment = "");
00041         ~ColumnData();
00042 
00043         virtual ColumnData<T>* clone () const;
00044         virtual void readData (long firstRow, long nelements, long firstElem = 1);
00045         void setDataLimits (T* limits);
00046         const T minLegalValue () const;
00047         void minLegalValue (T value);
00048         const T maxLegalValue () const;
00049         void maxLegalValue (T value);
00050         const T minDataValue () const;
00051         void minDataValue (T value);
00052         const T maxDataValue () const;
00053         void maxDataValue (T value);
00054         const std::vector<T>& data () const;
00055         void setData (const std::vector<T>& value);
00056         T data (int i);
00057         void data (int i, T value);
00058 
00059       // Additional Public Declarations
00060         friend class Column;
00061     protected:
00062       // Additional Protected Declarations
00063 
00064     private:
00065         ColumnData< T > & operator=(const ColumnData< T > &right);
00066 
00067         void readColumnData (long firstRow, long nelements, T* nullValue = 0);
00068         virtual bool compare (const Column &right) const;
00069         virtual std::ostream& put (std::ostream& s) const;
00070         void writeData (T* indata, long nRows = 1, long firstRow = 1, T* nullValue = 0);
00071         void writeData (const std::vector<T>& indata, long firstRow = 1, T* nullValue = 0);
00072         //      Insert one or more blank rows into a FITS column.
00073         virtual void insertRows (long first, long number = 1);
00074         virtual void deleteRows (long first, long number = 1);
00075 
00076       // Additional Private Declarations
00077 
00078     private: //## implementation
00079       // Data Members for Class Attributes
00080         T m_minLegalValue;
00081         T m_maxLegalValue;
00082         T m_minDataValue;
00083         T m_maxDataValue;
00084 
00085       // Data Members for Associations
00086         std::vector<T> m_data;
00087 
00088       // Additional Implementation Declarations
00089 
00090   };
00091 
00092   // Parameterized Class CCfits::ColumnData 
00093 
00094   template <typename T>
00095   inline void ColumnData<T>::readData (long firstRow, long nelements, long firstElem)
00096   {
00097    readColumnData(firstRow,nelements,static_cast<T*>(0));
00098   }
00099 
00100   template <typename T>
00101   inline const T ColumnData<T>::minLegalValue () const
00102   {
00103     return m_minLegalValue;
00104   }
00105 
00106   template <typename T>
00107   inline void ColumnData<T>::minLegalValue (T value)
00108   {
00109     m_minLegalValue = value;
00110   }
00111 
00112   template <typename T>
00113   inline const T ColumnData<T>::maxLegalValue () const
00114   {
00115     return m_maxLegalValue;
00116   }
00117 
00118   template <typename T>
00119   inline void ColumnData<T>::maxLegalValue (T value)
00120   {
00121     m_maxLegalValue = value;
00122   }
00123 
00124   template <typename T>
00125   inline const T ColumnData<T>::minDataValue () const
00126   {
00127     return m_minDataValue;
00128   }
00129 
00130   template <typename T>
00131   inline void ColumnData<T>::minDataValue (T value)
00132   {
00133     m_minDataValue = value;
00134   }
00135 
00136   template <typename T>
00137   inline const T ColumnData<T>::maxDataValue () const
00138   {
00139     return m_maxDataValue;
00140   }
00141 
00142   template <typename T>
00143   inline void ColumnData<T>::maxDataValue (T value)
00144   {
00145     m_maxDataValue = value;
00146   }
00147 
00148   template <typename T>
00149   inline const std::vector<T>& ColumnData<T>::data () const
00150   {
00151     return m_data;
00152   }
00153 
00154   template <typename T>
00155   inline void ColumnData<T>::setData (const std::vector<T>& value)
00156   {
00157     m_data = value;
00158   }
00159 
00160   template <typename T>
00161   inline T ColumnData<T>::data (int i)
00162   {
00163     // return data stored in the ith row, which is in the i-1 th location in the array.
00164     return m_data[i - 1];
00165   }
00166 
00167   template <typename T>
00168   inline void ColumnData<T>::data (int i, T value)
00169   {
00170     // assign data to i-1 th location in the array, representing the ith row.
00171     m_data[i - 1] = value;
00172   }
00173 
00174   // Parameterized Class CCfits::ColumnData 
00175 
00176   template <typename T>
00177   ColumnData<T>::ColumnData(const ColumnData<T> &right)
00178       :Column(right),
00179        m_minLegalValue(right.m_minLegalValue),
00180        m_maxLegalValue(right.m_maxLegalValue),
00181        m_minDataValue(right.m_minDataValue),
00182        m_maxDataValue(right.m_maxDataValue),
00183        m_data(right.m_data)
00184   {
00185   }
00186 
00187   template <typename T>
00188   ColumnData<T>::ColumnData (Table* p)
00189   : Column(p),
00190        m_minLegalValue(),
00191        m_maxLegalValue(),
00192        m_minDataValue(),
00193        m_maxDataValue(), 
00194        m_data()
00195   {
00196   }
00197 
00198   template <typename T>
00199   ColumnData<T>::ColumnData (int columnIndex, const string &columnName, ValueType type, const String &format, const String &unit, Table* p, int rpt, long w, const String &comment)
00200         : Column(columnIndex,columnName,type,format,unit,p,rpt,w,comment), 
00201         m_minLegalValue(),
00202         m_maxLegalValue(),
00203         m_minDataValue(),
00204         m_maxDataValue(),
00205         m_data()
00206   {
00207   }
00208 
00209 
00210   template <typename T>
00211   ColumnData<T>::~ColumnData()
00212   {
00213   }
00214 
00215 
00216   template <typename T>
00217   void ColumnData<T>::readColumnData (long firstRow, long nelements, T* nullValue)
00218   {
00219   if ( rows() < nelements ) 
00220   {
00221         std::cerr << "CCfits: More data requested than contained in table. ";
00222         std::cerr << "Extracting complete column.\n";
00223         nelements = rows();
00224    }   
00225 
00226    int   status(0);
00227    int   anynul(0);
00228 
00229    FITSUtil::auto_array_ptr<T> array(new T[nelements]); 
00230 
00231    makeHDUCurrent();
00232 
00233    if ( fits_read_col(fitsPointer(),type(),  index(), firstRow, 1, 
00234         nelements, nullValue, array.get(), &anynul, &status) ) throw FitsError(status);
00235 
00236 
00237    if (m_data.size() != static_cast<size_t>( rows() ) ) m_data.resize(rows());
00238 
00239    std::copy(&array[0],&array[nelements],m_data.begin()+firstRow-1);
00240    if (nelements == rows()) isRead(true); 
00241   }
00242 
00243   template <typename T>
00244   bool ColumnData<T>::compare (const Column &right) const
00245   {
00246   if ( !Column::compare(right) ) return false;
00247   const ColumnData<T>& that = static_cast<const ColumnData<T>&>(right);
00248   unsigned int n = m_data.size();
00249   if ( that.m_data.size() != n ) return false;
00250   for (unsigned int i = 0; i < n ; i++)
00251   {
00252         if (m_data[i] != that.m_data[i]) return false;   
00253   }
00254   return true;
00255   }
00256 
00257   template <typename T>
00258   ColumnData<T>* ColumnData<T>::clone () const
00259   {
00260         return new ColumnData<T>(*this);
00261   }
00262 
00263   template <typename T>
00264   std::ostream& ColumnData<T>::put (std::ostream& s) const
00265   {
00266   Column::put(s);
00267   if (FITS::verboseMode() && type() != Tstring)
00268   {
00269         s << " Column Legal limits: ( " << m_minLegalValue << "," << m_maxLegalValue << " )\n" 
00270         << " Column Data  limits: ( " << m_minDataValue << "," << m_maxDataValue << " )\n";
00271   }
00272   if (!m_data.empty())
00273   {
00274         std::ostream_iterator<T> output(s,"\n");
00275         // output each row on a separate line.
00276         // user can supply manipulators to stream for formatting.
00277         std::copy(m_data.begin(),m_data.end(),output);
00278   }
00279 
00280     return s;
00281   }
00282 
00283   template <typename T>
00284   void ColumnData<T>::writeData (T* indata, long nRows, long firstRow, T* nullValue)
00285   {
00286 
00287           // set columnData's data member to equal what's written to file.
00288           // indata has size nRows: elements firstRow to firstRow + nRows - 1 will be written.
00289           // if this exceeds the current rowlength of the HDU, update the return value for
00290           // rows() in the parent after the fitsio call.
00291           int status(0);
00292           long elementsToWrite(nRows + firstRow -1);
00293           // get a copy for restorative action.   
00294           std::vector<T> __tmp(m_data);
00295 
00296 
00297           if (elementsToWrite != static_cast<long>(m_data.size())) 
00298           {
00299 
00300                   m_data.resize(elementsToWrite,T());
00301           }
00302 
00303           std::copy(&indata[0],&indata[nRows],m_data.begin()+firstRow-1);
00304 
00305           // if successful, write to disk.
00306 
00307           try
00308           {
00309              if (nullValue)
00310              {
00311                 if (fits_write_colnull(fitsPointer(), type(), index(), firstRow, 1, nRows,
00312                                   indata, nullValue, &status) != 0) throw FitsError(status);
00313              }
00314              else
00315              {
00316                 if (fits_write_col(fitsPointer(), type(), index(), firstRow, 1, nRows,
00317                                   indata, &status) != 0) throw FitsError(status);
00318              }
00319 
00320                 // tell the Table that the number of rows has changed
00321                 parent()->updateRows();
00322           }
00323           catch (FitsError) // the only thing that can throw here.
00324           {
00325                   // reset to original content and rethrow the exception.
00326                   m_data = __tmp;
00327                   if (status == NO_NULL) throw NoNullValue(name());
00328                   else throw;
00329           }      
00330   }
00331 
00332   template <typename T>
00333   void ColumnData<T>::writeData (const std::vector<T>& indata, long firstRow, T* nullValue)
00334   {
00335         FITSUtil::CVarray<T> convert;
00336         FITSUtil::auto_array_ptr<T> pcolData (convert(indata));
00337         T* columnData  = pcolData.get();
00338         writeData(columnData,indata.size(),firstRow,nullValue);
00339   }
00340 
00341   template <typename T>
00342   void ColumnData<T>::insertRows (long first, long number)
00343   {
00344     FITSUtil::FitsNullValue<T> blank;
00345     typename std::vector<T>::iterator in;
00346     if (first !=0) 
00347     {
00348             in = m_data.begin()+first;
00349     }
00350     else
00351     {
00352             in = m_data.begin();
00353     }           
00354 
00355     // non-throwing operations.
00356     m_data.insert(in,number,blank());
00357   }
00358 
00359   template <typename T>
00360   void ColumnData<T>::deleteRows (long first, long number)
00361   {
00362     m_data.erase(m_data.begin()+first-1,m_data.begin()+first-1+number);
00363   }
00364 
00365   template <typename T>
00366   void ColumnData<T>::setDataLimits (T* limits)
00367   {
00368     m_minLegalValue = limits[0];
00369     m_maxLegalValue = limits[1];
00370     m_minDataValue = std::max(limits[2],limits[0]);
00371     m_maxDataValue = std::min(limits[3],limits[1]);
00372   }
00373 
00374   // Additional Declarations
00375 
00376   // all functions that operate on strings or complex data that call cfitsio 
00377   // need to be specialized.
00378 
00379 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00380 template <>
00381 inline void ColumnData<complex<float> >::setDataLimits (complex<float>* limits)
00382        {
00383                 m_minLegalValue = limits[0];
00384                 m_maxLegalValue = limits[1];
00385                 m_minDataValue =  limits[2];
00386                 m_maxDataValue =  limits[3];
00387         }
00388 #else
00389 template <>
00390   void ColumnData<complex<float> >::setDataLimits (complex<float>* limits);
00391 #endif
00392 
00393 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00394 template <>
00395 inline void ColumnData<complex<double> >::setDataLimits (complex<double>* limits)
00396         {
00397                 m_minLegalValue = limits[0];
00398                 m_maxLegalValue = limits[1];
00399                 m_minDataValue =  limits[2];
00400                 m_maxDataValue =  limits[3];
00401         }
00402 #else
00403  template <>
00404   void ColumnData<complex<double> >::setDataLimits (complex<double>* limits);
00405 #endif
00406 
00407 
00408 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00409         template <>
00410         inline void ColumnData<string>::readColumnData (long firstRow, 
00411                                         long nelements, 
00412                                         string* nullValue)
00413         {
00414           int status = 0;
00415 
00416            int   anynul = 0;
00417            char** array = new char*[nelements]; 
00418 
00419            int j(0);
00420            for ( ; j < nelements; ++j)
00421            {
00422                array[j] = new char[width() + 1];
00423            }
00424 
00425            char* nulval = 0;
00426            if (nullValue) 
00427            {
00428                    nulval = const_cast<char*>(nullValue->c_str());
00429            }
00430            else
00431            {
00432                 nulval = new char;
00433                 *nulval = '\0';       
00434            }
00435 
00436 
00437           try
00438           {
00439                 makeHDUCurrent();
00440                 if (fits_read_col_str(fitsPointer(),index(), firstRow,1,nelements,
00441                   nulval,array, &anynul,&status) ) throw FitsError(status);
00442           }
00443           catch (FitsError)
00444           {
00445                 // ugly. but better than leaking resources.       
00446                 for (int jj = 0; jj < nelements; ++jj)
00447                 {
00448                         delete [] array[jj];
00449                 }     
00450 
00451                 delete [] array; 
00452                 delete nulval;
00453                 throw; 
00454           }
00455 
00456 
00457           if (m_data.size() != rows()) setData(std::vector<string>(rows(),string(nulval)));
00458 
00459           // the 'first -1 ' converts to zero based indexing.
00460 
00461           for ( j = 0; j < nelements; j++)
00462           {
00463                 m_data[j - 1 + firstRow] = string(array[j]);
00464           }
00465 
00466           for ( j = 0; j < nelements; j++)
00467           {
00468                 delete [] array[j];
00469           }     
00470 
00471           delete [] array; 
00472           delete nulval; 
00473           if (nelements == rows()) isRead(true); 
00474 
00475         }
00476 #else 
00477  template <>
00478 void ColumnData<string>::readColumnData (long firstRow, long nelements, string* nullValue);
00479 #endif
00480 
00481 
00482 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00483         template <>
00484         inline void ColumnData<complex<float> >::readColumnData (long firstRow,
00485                                                 long nelements,
00486                                                 complex<float>* nullValue)
00487         {
00488           // specialization for ColumnData<string> 
00489           int status(0);
00490           int   anynul(0);
00491           FITSUtil::auto_array_ptr<float> pArray(new float[nelements*2]); 
00492           float* array = pArray.get();
00493           float nulval(0);
00494           makeHDUCurrent();
00495 
00496 
00497           if (fits_read_col_cmp(fitsPointer(),index(), firstRow,1,nelements,
00498                   nulval,array, &anynul,&status) ) throw FitsError(status);
00499 
00500 
00501           if (m_data.size() != rows()) m_data.resize(rows());
00502 
00503           // the 'j -1 ' converts to zero based indexing.
00504 
00505           for (int j = 0; j < nelements; ++j)
00506           {
00507 
00508                 m_data[j - 1 + firstRow] = std::complex<float>(array[2*j],array[2*j+1]);
00509           }
00510           if (nelements == rows()) isRead(true); 
00511 
00512         }
00513 #else
00514 template <> 
00515 void ColumnData<complex<float> >::readColumnData (long firstRow, long nelements,complex<float>* nullValue );
00516 #endif
00517 
00518 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00519         template <>
00520         inline void ColumnData<complex<double> >::readColumnData (long firstRow, 
00521                                                         long nelements,
00522                                                         complex<double>* nullValue)
00523         {
00524           // specialization for ColumnData<complex<double> > 
00525            int status(0);
00526            int   anynul(0);
00527            FITSUtil::auto_array_ptr<double> pArray(new double[nelements*2]); 
00528            double* array = pArray.get();
00529            double nulval(0);
00530            makeHDUCurrent();
00531 
00532 
00533           if (fits_read_col_dblcmp(fitsPointer(), index(), firstRow,1,nelements,
00534                   nulval,array, &anynul,&status) ) throw FitsError(status);
00535 
00536 
00537 
00538 
00539           if (m_data.size() != rows()) setData(std::vector<complex<double> >(rows(),nulval));
00540 
00541           // the 'j -1 ' converts to zero based indexing.
00542 
00543           for (int j = 0; j < nelements; j++)
00544           {
00545 
00546                 m_data[j - 1 + firstRow] = std::complex<double>(array[2*j],array[2*j+1]);
00547           }
00548           if (nelements == rows()) isRead(true); 
00549 
00550         }
00551 #else
00552 template <>
00553 void ColumnData<complex<double> >::readColumnData (long firstRow, long nelements,complex<double>* nullValue);
00554 #endif
00555 
00556 #if SPEC_TEMPLATE_DECL_DEFECT
00557   template <>
00558   inline void ColumnData<string>::writeData (const std::vector<string>& indata, 
00559                                       long firstRow, string* nullValue)
00560   {
00561     int    status=0;
00562     char** columnData=FITSUtil::CharArray(indata);
00563 
00564     if ( fits_write_colnull(fitsPointer(), TSTRING, index(), firstRow, 1, indata.size(),
00565                             columnData, 0, &status) != 0 )
00566       throw FitsError(status);
00567     unsigned long elementsToWrite (indata.size() + firstRow - 1);
00568     std::vector<string> __tmp(m_data);
00569     if (m_data.size() < elementsToWrite) 
00570       {
00571         m_data.resize(elementsToWrite,"");
00572         std::copy(__tmp.begin(),__tmp.end(),m_data.begin());
00573       }
00574     std::copy(indata.begin(),indata.end(),m_data.begin()+firstRow-1);
00575 
00576 
00577     for (size_t i = 0; i < indata.size(); ++i)
00578       {
00579         delete [] columnData[i];
00580       }
00581     delete [] columnData;
00582   }  
00583 #else
00584 template <>
00585 void ColumnData<string>::writeData (const std::vector<string>& inData, long firstRow, string* nullValue);
00586 #endif
00587 
00588 #ifdef SPEC_TEMPLATE_DECL_DEFECT
00589   template <>
00590   inline void ColumnData<complex<float> >::writeData (const std::vector<complex<float> >& inData, 
00591                                                long firstRow, 
00592                                                complex<float>* nullValue)
00593   {
00594     int status(0);
00595     int nRows (inData.size());
00596     FITSUtil::auto_array_ptr<float> pData(new float[nRows*2]);
00597     float* Data = pData.get();
00598     std::vector<complex<float> > __tmp(m_data);
00599     for (int j = 0; j < nRows; ++j)
00600       {
00601         Data[ 2*j] = inData[j].real();
00602         Data[ 2*j + 1] = inData[j].imag();
00603       }     
00604 
00605     try
00606       {
00607 
00608         if (fits_write_col_cmp(fitsPointer(), index(), firstRow, 1, 
00609                                nRows,Data, &status) != 0) throw FitsError(status);
00610         long elementsToWrite(nRows + firstRow -1);
00611         if (elementsToWrite > static_cast<long>(m_data.size())) 
00612           {
00613 
00614             m_data.resize(elementsToWrite);
00615           }
00616 
00617         std::copy(inData.begin(),inData.end(),m_data.begin()+firstRow-1);
00618 
00619         // tell the Table that the number of rows has changed
00620         parent()->updateRows();
00621       }
00622     catch (FitsError) // the only thing that can throw here.
00623       {
00624         // reset to original content and rethrow the exception.
00625         m_data.resize(__tmp.size());
00626         m_data = __tmp;
00627       }      
00628 
00629   }
00630 
00631 #else
00632 template <>
00633 void ColumnData<complex<float> >::writeData (const std::vector<complex<float> >& inData, long firstRow, 
00634                                 complex<float>* nullValue);
00635 #endif
00636 
00637 #ifdef SPEC_TEMPLATE_DECL_DEFECT
00638   template <>
00639   inline void ColumnData<complex<double> >::writeData (const std::vector<complex<double> >& inData, 
00640                                                 long firstRow, 
00641                                                 complex<double>* nullValue)
00642   {
00643     int status(0);
00644     int nRows (inData.size());
00645     FITSUtil::auto_array_ptr<double> pData(new double[nRows*2]);
00646     double* Data = pData.get();
00647     std::vector<complex<double> > __tmp(m_data);
00648     for (int j = 0; j < nRows; ++j)
00649       {
00650         pData[ 2*j] = inData[j].real();
00651         pData[ 2*j + 1] = inData[j].imag();
00652       }     
00653 
00654     try
00655       {
00656 
00657         if (fits_write_col_dblcmp(fitsPointer(), index(), firstRow, 1, 
00658                                   nRows,Data, &status) != 0) throw FitsError(status);
00659         long elementsToWrite(nRows + firstRow -1);
00660         if (elementsToWrite > static_cast<long>(m_data.size())) 
00661           {
00662 
00663             m_data.resize(elementsToWrite);
00664           }
00665 
00666         std::copy(inData.begin(),inData.end(),m_data.begin()+firstRow-1);
00667 
00668         // tell the Table that the number of rows has changed
00669         parent()->updateRows();
00670       }
00671     catch (FitsError) // the only thing that can throw here.
00672       {
00673         // reset to original content and rethrow the exception.
00674         m_data.resize(__tmp.size());
00675         m_data = __tmp;
00676       }      
00677 
00678   }
00679 
00680 #else
00681 template <>
00682 void ColumnData<complex<double> >::writeData (const std::vector<complex<double> >& inData, long firstRow, 
00683                                 complex<double>* nullValue);
00684 
00685 #endif
00686 } // namespace CCfits
00687 
00688 
00689 #endif
CCfits/html/ColumnT_8h_source.html0000644000225700000360000055447611667502523016745 0ustar cagordonlhea CCfits: ColumnT.h Source File
CCfits  2.4
ColumnT.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef COLUMNT_H
00010 #define COLUMNT_H
00011 
00012 #ifdef _MSC_VER
00013 #include "MSconfig.h"
00014 #endif
00015 
00016 #include "ColumnData.h"
00017 #include "ColumnVectorData.h"
00018 #include "FITSUtil.h"
00019 #include <typeinfo>
00020 #include <vector>
00021 #include <algorithm>
00022 #include "NewKeyword.h"
00023 
00024 #ifdef SSTREAM_DEFECT
00025 #       include <strstream>
00026 #else
00027 #       include <sstream>
00028 #endif
00029 
00030 
00031 // by design, if the data are not read yet we will return an exception.
00032 // here the test is if the entire column has already been read. 
00033 using std::complex;
00034 using std::valarray;
00035 
00036 // get specified elements of a scalar column. These two functions allow the
00037 // user to return either a vector or a valarray depending on the input container.
00038 
00039 namespace CCfits 
00040 {
00041    template <typename S>
00042    void Column::read(std::vector<S>& vals, long first, long last) 
00043    {
00044            read(vals,first,last,static_cast<S*>(0));
00045    }
00046 
00047 
00048    template <typename S>
00049    void Column::read(std::vector<S>& vals, long first, long last, S* nullValue) 
00050    {
00051            // problem: S does not give the type of the Column, but the return type,
00052            // so the user must specify this.
00053            parent()->makeThisCurrent();
00054            long nelements = numberOfElements(first,last);
00055 
00056            if  (ColumnData<S>* col = dynamic_cast<ColumnData<S>*>(this))
00057            {
00058                    // fails if user requested outputType different from input type.
00059 
00060 
00061                    if (!isRead()) col->readColumnData(first,nelements,nullValue);
00062                    // scalar column with vector output can just be assigned.
00063                    FITSUtil::fill(vals,col->data(),first,last);
00064            }
00065            else
00066            {
00067                    FITSUtil::MatchType<S> outputType;
00068                    if ( outputType() == type() ) 
00069                    { 
00070                            // in this case user tried to read vector data from scalar,
00071                            // (i.e. first argument was vector<valarray<S> >.
00072                            // since the cast won't fail on template parameter grounds.
00073                            throw Column::WrongColumnType(name());
00074                    }
00075 
00076                    try
00077                    {
00078                        // about exceptions. The dynamic_casts could throw
00079                        // std::bad_cast. If this happens something is seriously
00080                        // wrong since the Column stores the value of type() 
00081                        // appropriate to each of the casts on construction.
00082                        // 
00083                        // the InvalidDataType exception should not be possible.
00084                        if  ( type() == Tdouble )
00085                        {
00086                                ColumnData<double>& col 
00087                                          = dynamic_cast<ColumnData<double>&>(*this);
00088                                if (!isRead()) col.readColumnData(first,nelements);                                  
00089                                FITSUtil::fill(vals,col.data(),first,last);
00090 
00091                        }
00092                        else if (type() == Tfloat)
00093                        {
00094                                ColumnData<float>& col 
00095                                        = dynamic_cast<ColumnData<float>&>(*this);
00096                                if (!isRead()) col.readColumnData(first,nelements);                                  
00097                                FITSUtil::fill(vals,col.data(),first,last);
00098                        }
00099                        else if (type() == Tint)
00100                        {
00101                                int nullVal(0);
00102                                if (nullValue) nullVal = static_cast<int>(*nullValue);
00103                                ColumnData<int>& col  
00104                                   = dynamic_cast<ColumnData<int>&>(*this);
00105                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00106                                FITSUtil::fill(vals,col.data(),first,last);
00107                        }
00108                        else if (type() == Tshort)
00109                        {
00110                                short nullVal(0);
00111                                if (nullValue) nullVal = static_cast<short>(*nullValue);
00112                                ColumnData<short>& col 
00113                                 = dynamic_cast<ColumnData<short>&>(*this);
00114                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00115                                FITSUtil::fill(vals,col.data(),first,last);
00116                        }
00117                        else if (type() == Tlong)
00118                        {        
00119                                long nullVal(0);
00120                                if (nullValue) nullVal = static_cast<long>(*nullValue); 
00121                                ColumnData<long>& col 
00122                                  = dynamic_cast<ColumnData<long>&>(*this);
00123                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00124                                FITSUtil::fill(vals,col.data(),first,last);
00125                        }
00126                        else if (type() == Tlonglong)
00127                        {        
00128                                LONGLONG nullVal(0);
00129                                if (nullValue) nullVal = static_cast<LONGLONG>(*nullValue); 
00130                                ColumnData<LONGLONG>& col 
00131                                  = dynamic_cast<ColumnData<LONGLONG>&>(*this);
00132                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00133                                FITSUtil::fill(vals,col.data(),first,last);
00134                        }
00135                        else if (type() == Tlogical)
00136                        {        
00137                                bool nullVal(0);
00138                                if (nullValue) nullVal = static_cast<bool>(*nullValue); 
00139                                ColumnData<bool>& col 
00140                                  = dynamic_cast<ColumnData<bool>&>(*this);
00141                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00142                                FITSUtil::fill(vals,col.data(),first,last);
00143                        }
00144                        else if (type() == Tbit || type() == Tbyte)
00145                        {
00146                                unsigned char nullVal(0);
00147                                if (nullValue) nullVal = static_cast<unsigned char>(*nullValue); 
00148                                ColumnData<unsigned char>& col 
00149                                        = dynamic_cast<ColumnData<unsigned char>&>(*this);
00150                                if (!isRead()) col.readColumnData(first,nelements,&nullVal); 
00151                                FITSUtil::fill(vals,col.data(),first,last);
00152                        }
00153                        else if (type() == Tushort)
00154                        {
00155                                unsigned short nullVal(0);
00156                                if (nullValue) nullVal= static_cast<unsigned short>(*nullValue);
00157                                ColumnData<unsigned short>& col 
00158                                        = dynamic_cast<ColumnData<unsigned short>&>(*this);
00159                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00160                                FITSUtil::fill(vals,col.data(),first,last);
00161                        }
00162                        else if (type() == Tuint)
00163                        {
00164                                unsigned int nullVal(0);
00165                                if (nullValue) nullVal = static_cast<unsigned int>(*nullValue);
00166                                ColumnData<unsigned int>& col 
00167                                        = dynamic_cast<ColumnData<unsigned int>&>(*this);
00168                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00169                                FITSUtil::fill(vals,col.data(),first,last);
00170                        }
00171                        else if (type() == Tulong)
00172                        {
00173                                unsigned long nullVal(0);
00174                                if (nullValue) nullVal = static_cast<unsigned long>(*nullValue);
00175                                ColumnData<unsigned long>& col 
00176                                         = dynamic_cast<ColumnData<unsigned long>&>(*this);
00177                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                  
00178                                FITSUtil::fill(vals,col.data(),first,last);
00179                        }
00180                        else
00181                        {
00182                                  throw InvalidDataType(name());
00183 
00184                        }
00185 
00186                    }
00187                    catch (std::bad_cast)
00188                    {
00189                            throw WrongColumnType(name());
00190                    }
00191            }
00192 
00193    }
00194 
00195    template <typename S>
00196    void Column::read(std::valarray<S>& vals, long first, long last) 
00197    {
00198            read(vals,first,last,static_cast<S*>(0));
00199    }
00200 
00201 
00202    template <typename S>
00203    void Column::read(std::valarray<S>& vals, long first, long last, S* nullValue) 
00204    {        
00205            // require the whole scalar column to have been read.
00206 
00207 
00208            long nelements = numberOfElements(first,last);
00209            parent()->makeThisCurrent();                
00210            if ( ColumnData<S>* col = dynamic_cast<ColumnData<S>*>(this))
00211            {
00212                    // fails if user requested outputType different from input type.
00213 
00214 
00215                    if (!isRead()) col->readColumnData(first,nelements,nullValue);                                  
00216                    FITSUtil::fill(vals,col->data(),first,last);
00217 
00218            }
00219            else
00220            {
00221                    FITSUtil::MatchType<S> outputType;
00222                    if ( outputType() == type() ) 
00223                    { 
00224                            // in this case user tried to read vector data from scalar,
00225                            // (i.e. first argument was vector<valarray<S> >.
00226                            // since the cast won't fail on template parameter grounds.
00227                            throw Column::WrongColumnType(name());
00228                    }
00229 
00230                    try
00231                    {
00232                        // about exceptions. The dynamic_casts could throw
00233                        // std::bad_cast. If this happens something is seriously
00234                        // wrong since the Column stores the value of type() 
00235                        // appropriate to each of the casts on construction.
00236                        // 
00237                        // the InvalidDataType exception should not be possible.
00238                        if  ( type() == Tdouble )
00239                        {
00240                                ColumnData<double>& col 
00241                                          = dynamic_cast<ColumnData<double>&>(*this);
00242                                if (!isRead()) col.readColumnData(first,nelements);                                  
00243                                FITSUtil::fill(vals,col.data(),first,last);
00244                        }
00245                        else if (type() == Tfloat)
00246                        {
00247                                ColumnData<float>& col 
00248                                        = dynamic_cast<ColumnData<float>&>(*this);
00249                                if (!isRead()) col.readColumnData(first,nelements);                                  
00250                                FITSUtil::fill(vals,col.data(),first,last);
00251                        }
00252                        else if (type() == Tint)
00253                        {
00254                                int nullVal(0);
00255                                if (nullValue) nullVal = static_cast<int>(*nullValue); 
00256                                ColumnData<int>& col  
00257                                        = dynamic_cast<ColumnData<int>&>(*this);
00258                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00259                                FITSUtil::fill(vals,col.data(),first,last);
00260                        }
00261                        else if (type() == Tshort)
00262                        {
00263                                short nullVal(0);
00264                                if (nullValue) nullVal = static_cast<short>(*nullValue); 
00265                                ColumnData<short>& col 
00266                                        = dynamic_cast<ColumnData<short>&>(*this);
00267                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00268                                FITSUtil::fill(vals,col.data(),first,last);
00269                        }
00270                        else if (type() == Tlong)
00271                        {        
00272                                long nullVal(0);
00273                                if (nullValue) nullVal = static_cast<long>(*nullValue); 
00274                                ColumnData<long>& col 
00275                                        = dynamic_cast<ColumnData<long>&>(*this);
00276                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);
00277                                FITSUtil::fill(vals,col.data(),first,last);
00278                        }
00279                        else if (type() == Tlonglong)
00280                        {        
00281                                LONGLONG nullVal(0);
00282                                if (nullValue) nullVal = static_cast<LONGLONG>(*nullValue); 
00283                                ColumnData<LONGLONG>& col 
00284                                        = dynamic_cast<ColumnData<LONGLONG>&>(*this);
00285                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);
00286                                FITSUtil::fill(vals,col.data(),first,last);
00287                        }
00288                        else if (type() == Tlogical)
00289                        {        
00290                                bool nullVal(0);
00291                                if (nullValue) nullVal = static_cast<bool>(*nullValue); 
00292                                ColumnData<bool>& col 
00293                                        = dynamic_cast<ColumnData<bool>&>(*this);
00294                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00295                                FITSUtil::fill(vals,col.data(),first,last);
00296                        }
00297                        else if (type() == Tbit || type() == Tbyte)
00298                        {
00299                                unsigned char nullVal(0);
00300                                if (nullValue) nullVal = static_cast<unsigned char>(*nullValue); 
00301                                ColumnData<unsigned char>& col 
00302                                        = dynamic_cast<ColumnData<unsigned char>&>(*this);
00303                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00304                                FITSUtil::fill(vals,col.data(),first,last);
00305                        }
00306                        else if (type() == Tushort)
00307                        {
00308                                unsigned short nullVal(0);
00309                                if (nullValue) nullVal 
00310                                        = static_cast<unsigned short>(*nullValue); 
00311                                ColumnData<unsigned short>& col 
00312                                        = dynamic_cast<ColumnData<unsigned short>&>(*this);
00313                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00314                                FITSUtil::fill(vals,col.data(),first,last);
00315                        }
00316                        else if (type() == Tuint)
00317                        {
00318                                unsigned int nullVal(0);
00319                                if (nullValue) nullVal 
00320                                        = static_cast<unsigned int>(*nullValue); 
00321                                ColumnData<unsigned int>& col 
00322                                        = dynamic_cast<ColumnData<unsigned int>&>(*this);
00323                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00324                                FITSUtil::fill(vals,col.data(),first,last);
00325                        }
00326                        else if (type() == Tulong)
00327                        {
00328                                unsigned long nullVal(0);
00329                                if (nullValue) nullVal 
00330                                        = static_cast<unsigned long>(*nullValue); 
00331                                ColumnData<unsigned long>& col 
00332                                        = dynamic_cast<ColumnData<unsigned long>&>(*this);
00333                                if (!isRead()) col.readColumnData(first,nelements,&nullVal);                                    
00334                                FITSUtil::fill(vals,col.data(),first,last);
00335                        }
00336                        else
00337                        {
00338                                  throw InvalidDataType(name());
00339 
00340                        }
00341 
00342                    }
00343                    catch (std::bad_cast)
00344                    {
00345                         throw WrongColumnType(name());
00346                    }
00347                }
00348 
00349    }
00350 
00351    // get a single row from a vector column. There's no default row number, must
00352    // be specified.
00353    template <typename S>
00354    void Column::read(std::valarray<S>& vals, long row) 
00355    {
00356            read(vals,row,static_cast<S*>(0));
00357    }
00358 
00359 
00360    template <typename S>
00361    void Column::read(std::valarray<S>& vals, long row, S* nullValue) 
00362    {
00363            if (row > parent()->rows())
00364            {
00365               throw Column::InvalidRowNumber(name());
00366            }
00367            parent()->makeThisCurrent();                
00368            // isRead() returns true if the data were read in the ctor.
00369            if ( ColumnVectorData<S>* col = dynamic_cast<ColumnVectorData<S>*>(this))
00370            {
00371                    // fails if user requested outputType different from input type.
00372 
00373 
00374 
00375                    // input and output are both valarrays. Since one should not
00376                    // be able to call a constructor for a non-numeric valarray type,
00377                    // there shouldn't be any InvalidType problems. However, there
00378                    // is still the vector/scalar possibility and the implicit
00379                    // conversion request to deal with.
00380 
00381                    if (!isRead()) col->readRow(row,nullValue);
00382                    FITSUtil::fill(vals,col->data(row));
00383            }
00384            else
00385            {
00386                    FITSUtil::MatchType<S> outputType;
00387                    if ( outputType() == type() ) 
00388                    { 
00389                            // in this case user tried to read vector row from scalar column.
00390                            // one could be charitable and return a valarray of size 1,
00391                            // but... I'm going to throw an exception suggesting the user
00392                            // might not have meant that.
00393 
00394                            throw Column::WrongColumnType(name());
00395                    }
00396 
00397                    // the InvalidDataType exception should not be possible.
00398                    try
00399                    {
00400                        // about exceptions. The dynamic_casts could throw
00401                        // std::bad_cast. If this happens something is seriously
00402                        // wrong since the Column stores the value of type() 
00403                        // appropriate to each of the casts on construction.
00404                        // 
00405                        // the InvalidDataType exception should not be possible.
00406                        if  ( type() == Tdouble || type() == VTdouble )
00407                        {
00408                                ColumnVectorData<double>& col 
00409                                          = dynamic_cast<ColumnVectorData<double>&>(*this);
00410                                if (!isRead()) col.readRow(row);                                  
00411                                FITSUtil::fill(vals,col.data(row));
00412 
00413                        }
00414                        else if (type() == Tfloat  || type() == VTfloat )
00415                        { 
00416                                ColumnVectorData<float>& col 
00417                                      = dynamic_cast<ColumnVectorData<float>&>(*this);
00418                                if (!isRead()) col.readRow(row); 
00419                                FITSUtil::fill(vals,col.data(row));
00420                        }
00421                        else if (type() == Tint  || type() == VTint )
00422                        {
00423                                int nullVal(0);
00424                                if (nullValue) nullVal = static_cast<int>(*nullValue); 
00425                                ColumnVectorData<int>& col  
00426                                        = dynamic_cast<ColumnVectorData<int>&>(*this);
00427                                if (!isRead()) col.readRow(row,&nullVal); 
00428                                FITSUtil::fill(vals,col.data(row));
00429                        }
00430                        else if (type() == Tshort  || type() == VTshort  )
00431                        {
00432                                short nullVal(0);
00433                                if (nullValue) nullVal = static_cast<short>(*nullValue); 
00434                                ColumnVectorData<short>& col 
00435                                        = dynamic_cast<ColumnVectorData<short>&>(*this);
00436                                if (!isRead()) col.readRow(row,&nullVal); 
00437                                FITSUtil::fill(vals,col.data(row));
00438                        }
00439                        else if (type() == Tlong  || type() == VTlong )
00440                        {        
00441                                long nullVal(0);
00442                                if (nullValue) nullVal = static_cast<long>(*nullValue); 
00443                                ColumnVectorData<long>& col 
00444                                        = dynamic_cast<ColumnVectorData<long>&>(*this);
00445                                if (!isRead()) col.readRow(row,&nullVal); 
00446                                FITSUtil::fill(vals,col.data(row));
00447                        }
00448                        else if (type() == Tlonglong  || type() == VTlonglong )
00449                        {        
00450                                LONGLONG nullVal(0);
00451                                if (nullValue) nullVal = static_cast<LONGLONG>(*nullValue); 
00452                                ColumnVectorData<LONGLONG>& col 
00453                                        = dynamic_cast<ColumnVectorData<LONGLONG>&>(*this);
00454                                if (!isRead()) col.readRow(row,&nullVal); 
00455                                FITSUtil::fill(vals,col.data(row));
00456                        }
00457                        else if (type() == Tlogical  || type() == VTlogical )
00458                        {        
00459                                bool nullVal(0);
00460                                if (nullValue) nullVal = static_cast<bool>(*nullValue); 
00461                                ColumnVectorData<bool>& col 
00462                                        = dynamic_cast<ColumnVectorData<bool>&>(*this);
00463                                if (!isRead()) col.readRow(row,&nullVal); 
00464                                FITSUtil::fill(vals,col.data(row));
00465                        }
00466                        else if (type() == Tbit || type() == Tbyte ||  
00467                                type() == VTbit || type() == VTbyte )
00468                        {
00469                                unsigned char nullVal(0);
00470                                if (nullValue) nullVal 
00471                                            = static_cast<unsigned char>(*nullValue); 
00472                                ColumnVectorData<unsigned char>& col 
00473                                      = dynamic_cast<ColumnVectorData<unsigned char>&>(*this);
00474                                if (!isRead()) col.readRow(row,&nullVal); 
00475                                FITSUtil::fill(vals,col.data(row));
00476                        }
00477                        else if (type() == Tushort || type() == VTushort)
00478                        {
00479                                unsigned short nullVal(0);
00480                                if (nullValue) nullVal 
00481                                            = static_cast<unsigned short>(*nullValue); 
00482                                ColumnVectorData<unsigned short>& col 
00483                                      = dynamic_cast<ColumnVectorData<unsigned short>&>(*this);
00484                                if (!isRead()) col.readRow(row,&nullVal); 
00485                                FITSUtil::fill(vals,col.data(row));
00486                        }
00487                        else if (type() == Tuint || type() == VTuint)
00488                        {
00489                                unsigned int nullVal(0);
00490                                if (nullValue) nullVal 
00491                                            = static_cast<unsigned int>(*nullValue); 
00492                                ColumnVectorData<unsigned int>& col 
00493                                      = dynamic_cast<ColumnVectorData<unsigned int>&>(*this);
00494                                if (!isRead()) col.readRow(row,&nullVal); 
00495                                FITSUtil::fill(vals,col.data(row));
00496                        }
00497                        else if (type() == Tulong || type() == VTulong)
00498                        {
00499                                unsigned long nullVal(0);
00500                                if (nullValue) nullVal 
00501                                            = static_cast<unsigned long>(*nullValue); 
00502                                ColumnVectorData<unsigned long>& col 
00503                                        = dynamic_cast<ColumnVectorData<unsigned long>&>(*this);
00504                                if (!isRead()) col.readRow(row,&nullVal); 
00505                                FITSUtil::fill(vals,col.data(row));
00506                        }
00507                        else
00508                        {
00509                                throw InvalidDataType(name());
00510 
00511                        }
00512 
00513                    }
00514                    catch (std::bad_cast)
00515                    {
00516                        throw WrongColumnType(name());
00517                    }     
00518             }
00519    }
00520 
00521    template <typename S>
00522    void Column::readArrays(std::vector<std::valarray<S> >& vals, long first, long last)  
00523    {
00524            readArrays(vals,first,last,static_cast<S*>(0));
00525    }
00526 
00527    template <typename S>
00528    void Column::readArrays(std::vector<std::valarray<S> >& vals, 
00529                            long first, long last, S* nullValue)
00530    {
00531 
00532            parent()->makeThisCurrent();
00533            // again, can only call this if the entire column has been read from disk.
00534            // user expects 1 based indexing. If 0 based indices are supplied,
00535            // add one to both ranges.
00536            long range = numberOfElements(first,last);
00537 
00538            vals.resize(range);
00539 
00540 
00541            if ( ColumnVectorData<S>* col = dynamic_cast<ColumnVectorData<S>*>(this))
00542            {
00543                    for (int j = 0; j < range; ++j) 
00544                    {
00545                            if (!isRead()) col->readRow(j + first,nullValue);                             
00546                            FITSUtil::fill(vals[j],col->data(j+first));
00547                    }
00548            }
00549            else
00550            {
00551                    FITSUtil::MatchType<S> outputType;
00552                    if ( outputType() == type() ) 
00553                    { 
00554                            // in this case user tried to read vector data from scalar,
00555                            // (i.e. first argument was vector<valarray<S> >.
00556                            // since the cast won't fail on template parameter grounds.
00557                            throw Column::WrongColumnType(name());
00558                    }
00559                    // the InvalidDataType exception should not be possible.
00560                    try
00561                    {
00562                        if  ( type() == Tdouble || type() == VTdouble )
00563                        {
00564                                ColumnVectorData<double>& col 
00565                                        = dynamic_cast<ColumnVectorData<double>&>(*this);
00566                                for (int j = 0; j < range; ++j) 
00567                                {
00568                                    if (!isRead()) col.readRow(j + first); 
00569                                    FITSUtil::fill(vals[j],col.data(j+first));
00570                                }
00571                        }
00572                        else if  ( type() == Tfloat || type() == VTfloat  )
00573                        {
00574                                ColumnVectorData<float>& col 
00575                                        = dynamic_cast<ColumnVectorData<float>&>(*this);
00576                                for (int j = 0; j < range; ++j) 
00577                                {
00578                                    if (!isRead()) col.readRow(j + first); 
00579                                    FITSUtil::fill(vals[j],col.data(j+first));
00580                                }
00581                        }
00582                        else if  ( type() == Tint   || type() == VTint )
00583                        {
00584                                int nullVal(0);
00585                                if (nullValue) nullVal  = static_cast<int>(*nullValue); 
00586                                ColumnVectorData<int>& col  
00587                                        = dynamic_cast<ColumnVectorData<int>&>(*this);
00588                                for (int j = 0; j < range; ++j) 
00589                                {
00590                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00591                                    FITSUtil::fill(vals[j],col.data(j+first));
00592                                }
00593                        }
00594                        else if  ( type() == Tshort  || type() == VTshort )
00595                        {
00596                                short nullVal(0);
00597                                if (nullValue) nullVal  = static_cast<short>(*nullValue); 
00598                                ColumnVectorData<short>& col 
00599                                        = dynamic_cast<ColumnVectorData<short>&>(*this);
00600                                for (int j = 0; j < range; ++j) 
00601                                {
00602                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00603                                    FITSUtil::fill(vals[j],col.data(j+first));
00604                                }
00605                        }
00606                        else if  ( type() == Tlong   || type() == VTlong )
00607                        {
00608                                long nullVal(0);
00609                                if (nullValue) nullVal  = static_cast<long>(*nullValue); 
00610                                ColumnVectorData<long>& col 
00611                                        = dynamic_cast<ColumnVectorData<long>&>(*this);
00612                                for (int j = 0; j < range; ++j) 
00613                                {
00614                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00615                                    FITSUtil::fill(vals[j],col.data(j+first));
00616                                }
00617                        }
00618                        else if  ( type() == Tlonglong   || type() == VTlonglong )
00619                        {
00620                                LONGLONG nullVal(0);
00621                                if (nullValue) nullVal  = static_cast<LONGLONG>(*nullValue); 
00622                                ColumnVectorData<LONGLONG>& col 
00623                                        = dynamic_cast<ColumnVectorData<LONGLONG>&>(*this);
00624                                for (int j = 0; j < range; ++j) 
00625                                {
00626                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00627                                    FITSUtil::fill(vals[j],col.data(j+first));
00628                                }
00629                        }
00630                        else if  ( type() == Tlogical   || type() == VTlogical )
00631                        {
00632                                bool nullVal(0);
00633                                if (nullValue) nullVal   = static_cast<bool>(*nullValue); 
00634                                ColumnVectorData<bool>& col 
00635                                        = dynamic_cast<ColumnVectorData<bool>&>(*this);
00636                                for (int j = 0; j < range; ++j) 
00637                                {
00638                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00639                                    FITSUtil::fill(vals[j],col.data(j+first));
00640                                }
00641                        }
00642                        else if (type() == Tbit || type() == Tbyte ||  
00643                                type() == VTbit || type() == VTbyte )
00644                        {
00645                                unsigned char nullVal(0);
00646                                if (nullValue) nullVal 
00647                                            = static_cast<unsigned char>(*nullValue); 
00648                                ColumnVectorData<unsigned char>& col 
00649                                       = dynamic_cast<ColumnVectorData<unsigned char>&>(*this);
00650                                for (int j = 0; j < range; ++j) 
00651                                {
00652                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00653                                    FITSUtil::fill(vals[j],col.data(j+first));
00654                                }
00655                        }                            
00656                        else if  ( type() == Tushort   || type() == VTushort )
00657                        {
00658                                unsigned short nullVal(0);
00659                                if (nullValue) nullVal 
00660                                            = static_cast<unsigned short>(*nullValue); 
00661                                ColumnVectorData<unsigned short>& col 
00662                                    = dynamic_cast<ColumnVectorData<unsigned short>&>(*this);
00663                                for (int j = 0; j < range; ++j) 
00664                                {
00665                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00666                                    FITSUtil::fill(vals[j],col.data(j+first));
00667                                }
00668                        }
00669                        else if  ( type() == Tuint   || type() == VTuint )
00670                        {
00671                                unsigned int nullVal(0);
00672                                if (nullValue) nullVal 
00673                                            = static_cast<unsigned int>(*nullValue); 
00674                                ColumnVectorData<unsigned int>& col 
00675                                        = dynamic_cast<ColumnVectorData<unsigned int>&>(*this);
00676                                for (int j = 0; j < range; ++j) 
00677                                {
00678                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00679                                    FITSUtil::fill(vals[j],col.data(j+first));
00680                                }
00681                        }
00682                        else if  ( type() == Tulong   || type() == VTulong  )
00683                        {
00684                                unsigned long nullVal(0);
00685                                if (nullValue) nullVal 
00686                                            = static_cast<unsigned long>(*nullValue); 
00687                                ColumnVectorData<unsigned long>& col 
00688                                      = dynamic_cast<ColumnVectorData<unsigned long>&>(*this);
00689                                for (int j = 0; j < range; ++j) 
00690                                {
00691                                    if (!isRead()) col.readRow(j + first,&nullVal); 
00692                                    FITSUtil::fill(vals[j],col.data(j+first));
00693                                }
00694                        } 
00695                        else
00696                        {
00697                                throw InvalidDataType(name());
00698                        }
00699 
00700                    }
00701                    catch (std::bad_cast)
00702                    {
00703                        throw WrongColumnType(name());
00704 
00705                    }     
00706 
00707            }        
00708    }
00709 
00710    template <typename S>                   
00711    void Column::write (const std::vector<S>& indata, long firstRow)
00712    {
00713       // nullValue is now a pointer, so this is ok. 
00714       // got to cast the 0 to a pointer to S to avoid
00715       // overloading ambiguities.      
00716       write(indata,firstRow,static_cast<S*>(0));
00717    }
00718 
00719    template <typename S>                   
00720    void Column::write (const std::valarray<S>& indata, long firstRow)
00721    {
00722       size_t n(indata.size());
00723       std::vector<S> __tmp(n);
00724       for (size_t j = 0; j < n; ++j) __tmp[j] = indata[j];
00725       write(__tmp,firstRow,static_cast<S*>(0));
00726    }
00727 
00728    template <typename S>                   
00729    void Column::write (S* indata, long nRows, long firstRow)
00730    {
00731       write(indata,nRows,firstRow,static_cast<S*>(0));                
00732    }
00733 
00734 
00735    template <typename S>                   
00736    void Column::write (const std::vector<S>& indata, long firstRow, S* nullValue)
00737    {
00738       // although underlying code needs to convert the input vector
00739       // into a C array, this must be the underlying implementation
00740       // [which the others call] because it accepts string arguments
00741       // which the version with a pointer won't. [no version that
00742       // translates to a char** argument].
00743 
00744 
00745       parent()->makeThisCurrent();
00746       firstRow = std::max(firstRow,static_cast<long>(1));
00747       if (ColumnData<S>* col = dynamic_cast<ColumnData<S>*>(this))
00748       {
00749          col->writeData(indata,firstRow,nullValue);
00750       }
00751       else
00752       {
00753          // alright, input data type has to be rewritten as output
00754          // data type.
00755          FITSUtil::MatchType<S> inType;
00756          if ( inType() == type()) 
00757          {
00758                  String msg("Incorrect call: writing to vector column ");
00759                  msg += name();
00760                  msg += " requires specification of # rows or vector lengths";
00761                  throw WrongColumnType(msg);
00762          }
00763          else
00764          {
00765              if  ( type() == Tdouble )
00766              {
00767                  ColumnData<double>& col 
00768                          = dynamic_cast<ColumnData<double>&>(*this);
00769                  std::vector<double> __tmp;
00770                  FITSUtil::fill(__tmp,indata,1,indata.size());
00771                  col.writeData(__tmp,firstRow);
00772              }
00773              else if  ( type() == Tfloat )
00774              {
00775                  ColumnData<float>& col 
00776                          = dynamic_cast<ColumnData<float>&>(*this);
00777                  std::vector<float> __tmp;
00778                  FITSUtil::fill(__tmp,indata,1,indata.size());
00779                  col.writeData(__tmp,firstRow);
00780              }
00781              else if  ( type() == Tint )
00782              {
00783                  int nullVal = 0;
00784                  int* pNullVal = 0;
00785                  if (nullValue)
00786                  {
00787                     nullVal = static_cast<int>(*nullValue);
00788                     pNullVal = &nullVal;
00789                  }
00790                  if (nullValue) nullVal = static_cast<int>(*nullValue); 
00791                  ColumnData<int>& col  
00792                          = dynamic_cast<ColumnData<int>&>(*this);
00793                  std::vector<int> __tmp;
00794                  FITSUtil::fill(__tmp,indata,1,indata.size());
00795                  col.writeData(__tmp,firstRow,pNullVal);
00796              }
00797              else if  ( type() == Tshort )
00798              {
00799                  short nullVal(0);
00800                  short* pNullVal = 0;
00801                  if (nullValue) 
00802                  {
00803                     nullVal = static_cast<short>(*nullValue); 
00804                     pNullVal = &nullVal;
00805                  }
00806                  ColumnData<short>& col 
00807                          = dynamic_cast<ColumnData<short>&>(*this);
00808                  std::vector<short> __tmp;
00809                  FITSUtil::fill(__tmp,indata,1,indata.size());
00810                  col.writeData(__tmp,firstRow,pNullVal);
00811              }
00812              else if  ( type() == Tlong )
00813              {
00814                  long nullVal(0);
00815                  long* pNullVal = 0;
00816                  if (nullValue)
00817                  {
00818                     nullVal = static_cast<long>(*nullValue); 
00819                     pNullVal = &nullVal;
00820                  }
00821                  ColumnData<long>& col 
00822                          = dynamic_cast<ColumnData<long>&>(*this);
00823                  std::vector<long> __tmp;
00824                  FITSUtil::fill(__tmp,indata,1,indata.size());
00825                  col.writeData(__tmp,firstRow,pNullVal);
00826              }
00827              else if  ( type() == Tlonglong )
00828              {
00829                  LONGLONG nullVal(0);
00830                  LONGLONG* pNullVal = 0;
00831                  if (nullValue)
00832                  {
00833                     nullVal = static_cast<LONGLONG>(*nullValue); 
00834                     pNullVal = &nullVal;
00835                  }
00836                  ColumnData<LONGLONG>& col 
00837                          = dynamic_cast<ColumnData<LONGLONG>&>(*this);
00838                  std::vector<LONGLONG> __tmp;
00839                  FITSUtil::fill(__tmp,indata,1,indata.size());
00840                  col.writeData(__tmp,firstRow,pNullVal);
00841              }
00842              else if  ( type() == Tlogical )
00843              {
00844                  bool nullVal(0);
00845                  bool* pNullVal = 0;
00846                  if (nullValue)
00847                  {
00848                     nullVal = static_cast<bool>(*nullValue); 
00849                     pNullVal = &nullVal;
00850                  }
00851                  ColumnData<bool>& col 
00852                          = dynamic_cast<ColumnData<bool>&>(*this);
00853                  std::vector<bool> __tmp;
00854                  FITSUtil::fill(__tmp,indata,1,indata.size());
00855                  col.writeData(__tmp,firstRow,pNullVal);
00856              }
00857              else if  ( type() == Tbyte )
00858              {
00859                  unsigned char nullVal(0);
00860                  unsigned char* pNullVal = 0;
00861                  if (nullValue)
00862                  {
00863                     nullVal = static_cast<unsigned char>(*nullValue); 
00864                     pNullVal = &nullVal;
00865                  }
00866                  ColumnData<unsigned char>& col 
00867                          = dynamic_cast<ColumnData<unsigned char>&>(*this);
00868                  std::vector<unsigned char> __tmp;
00869                  FITSUtil::fill(__tmp,indata,1,indata.size());
00870                  col.writeData(__tmp,firstRow,pNullVal);
00871              }                            
00872              else if  ( type() == Tushort )
00873              {
00874                  unsigned short nullVal(0);
00875                  unsigned short* pNullVal = 0;
00876                  if (nullValue)
00877                  {
00878                     nullVal = static_cast<unsigned short>(*nullValue);
00879                     pNullVal = &nullVal;
00880                  } 
00881                  ColumnData<unsigned short>& col 
00882                          = dynamic_cast<ColumnData<unsigned short>&>(*this);
00883                  std::vector<unsigned short> __tmp;
00884                  FITSUtil::fill(__tmp,indata,1,indata.size());
00885                  col.writeData(__tmp,firstRow,pNullVal);
00886              }
00887              else if  ( type() == Tuint )
00888              {
00889                  unsigned int nullVal(0);
00890                  unsigned int* pNullVal = 0;
00891                  if (nullValue)
00892                  {
00893                     nullVal = static_cast<unsigned int>(*nullValue);
00894                     pNullVal = &nullVal;
00895                  } 
00896                  ColumnData<unsigned int>& col 
00897                          = dynamic_cast<ColumnData<unsigned int>&>(*this);
00898                  std::vector<unsigned int> __tmp;
00899                  FITSUtil::fill(__tmp,indata,1,indata.size());
00900                  col.writeData(__tmp,firstRow,pNullVal);
00901              }
00902              else if  ( type() == Tulong )
00903              {
00904                  unsigned long nullVal(0);
00905                  unsigned long* pNullVal = 0;
00906                  if (nullValue)
00907                  {
00908                     nullVal = static_cast<unsigned long>(*nullValue); 
00909                     pNullVal = &nullVal;
00910                  }
00911                  ColumnData<unsigned long>& col 
00912                          = dynamic_cast<ColumnData<unsigned long>&>(*this);
00913                  std::vector<unsigned long> __tmp;
00914                  FITSUtil::fill(__tmp,indata,1,indata.size());
00915                  col.writeData(__tmp,firstRow,pNullVal);
00916              } 
00917              else
00918              {
00919                      throw InvalidDataType(name());
00920              }
00921          }
00922       }
00923    }
00924 
00925 
00926    template <typename S>                   
00927    void Column::write (const std::valarray<S>& indata, long firstRow, S* nullValue)
00928    {
00929       // for scalar columns.        
00930       std::vector<S> __tmp;
00931       FITSUtil::fill(__tmp,indata);    
00932       write(__tmp,firstRow,nullValue);          
00933    }
00934 
00935    template <typename S>                   
00936    void Column::write (S* indata, long nRows, long firstRow, S* nullValue)
00937    {
00938       // for scalar columns, data specified with C array
00939       if (nRows <= 0) throw InvalidNumberOfRows(nRows);
00940       std::vector<S> __tmp(nRows);
00941       std::copy(&indata[0],&indata[nRows],__tmp.begin());
00942       write(__tmp,firstRow, nullValue);
00943 
00944    }
00945 
00946    template <typename S>
00947    void Column::write (const std::valarray<S>& indata, const std::vector<long>& vectorLengths,  
00948                            long firstRow)
00949    {
00950       // variable length arrays written from an input valarray.
00951       // does not allow NULL value.
00952 
00953       using namespace std;
00954       const size_t nRows = vectorLengths.size();
00955       // Calculate the sums of the vector lengths first simply to do a 
00956       //   check against the size of indata.
00957       vector<long> sums(nRows+1);
00958       sums[0] = 0;
00959       vector<long>::iterator itSums = sums.begin() + 1;
00960       partial_sum(vectorLengths.begin(), vectorLengths.end(), itSums);
00961       if (indata.size() < static_cast<size_t>(sums[nRows]))
00962       {
00963 #ifdef SSTREAM_DEFECT
00964          ostrstream msgStr;
00965 #else
00966          ostringstream msgStr;
00967 #endif            
00968          msgStr << " input data size: " << indata.size() << " vector length sum: " << sums[nRows];
00969 #ifdef SSTREAM_DEFECT
00970          msgStr << std::ends;
00971 #endif            
00972 
00973          String msg(msgStr.str());
00974          throw Column::InsufficientElements(msg);     
00975       }
00976       vector<valarray<S> > vvArray(nRows);
00977       for (size_t iRow=0; iRow<nRows; ++iRow)
00978       {
00979          valarray<S>& vArray = vvArray[iRow];
00980          long first = sums[iRow];
00981          long last = sums[iRow+1];
00982          vArray.resize(last - first);
00983          for (long iElem=first; iElem<last; ++iElem)
00984          {
00985             vArray[iElem - first] = indata[iElem];
00986          }
00987       }
00988       writeArrays(vvArray, firstRow, static_cast<S*>(0));  
00989    }
00990 
00991 template <typename S>
00992 void Column::write (const std::vector<S>& indata,const std::vector<long>& vectorLengths,
00993                       long firstRow)
00994    {
00995       // variable length write
00996       // implement as valarray version
00997       std::valarray<S> __tmp(indata.size());
00998       std::copy(indata.begin(),indata.end(),&__tmp[0]);
00999       write(__tmp,vectorLengths,firstRow);  
01000 
01001    }
01002 
01003    template <typename S>
01004    void Column::write (S* indata, long nelements, const std::vector<long>& vectorLengths,
01005                                    long firstRow)
01006    {
01007       // implement as valarray version, which will also check array size.
01008       size_t n(vectorLengths.size());
01009       std::valarray<S> __tmp(indata,nelements);
01010       write(__tmp,vectorLengths,firstRow);
01011    }        
01012 
01013    template <typename S>
01014    void Column::write (const std::valarray<S>& indata, long nRows, long firstRow)
01015    {
01016       write(indata,nRows,firstRow,static_cast<S*>(0));
01017    }
01018 
01019    template <typename S>
01020    void Column::write (const std::vector<S>& indata, long nRows, long firstRow)
01021    {
01022       write(indata,nRows,firstRow,static_cast<S*>(0));  
01023    }
01024 
01025    template <typename S>
01026    void Column::write (S* indata, long nelements, long nRows, long firstRow)
01027    {
01028       write(indata,nelements,nRows,firstRow,static_cast<S*>(0));              
01029    }        
01030 
01031 
01032 
01033    template <typename S>
01034    void Column::write (const std::valarray<S>& indata, long nRows, long firstRow,
01035                            S* nullValue)
01036    {
01037       // Write equivalent lengths of data to rows of a vector column.
01038       // The column may be either fixed or variable width, but if it's fixed
01039       // width the lengths must equal the column's repeat value or an
01040       // exception is thrown.
01041       if (nRows <= 0)
01042          throw InvalidNumberOfRows(nRows);
01043       firstRow = std::max(firstRow,static_cast<long>(1));
01044 #ifdef SSTREAM_DEFECT
01045       std::ostrstream msgStr;
01046 #else
01047       std::ostringstream msgStr;
01048 #endif 
01049       const size_t numRows = static_cast<size_t>(nRows);           
01050       if (indata.size() % numRows)
01051       {
01052          msgStr << "To use this write function, input array size"
01053             <<"\n must be exactly divisible by requested num rows: "
01054             << nRows;
01055          throw InsufficientElements(msgStr.str());
01056       }
01057       
01058       const size_t cellsize = indata.size()/numRows;
01059       if (!varLength() && cellsize != repeat() )
01060       {      
01061          msgStr << "column: " << name() 
01062                 <<  "\n input data size: " << indata.size() 
01063                 << " required: " << nRows*repeat();
01064          String msg(msgStr.str());
01065          throw InsufficientElements(msg);     
01066       }
01067       
01068       std::vector<std::valarray<S> > vvArray(numRows);
01069       for (size_t i=0; i<numRows; ++i)
01070       {
01071          vvArray[i].resize(cellsize);
01072          vvArray[i] = indata[std::slice(cellsize*i,cellsize,1)];
01073       }
01074       writeArrays(vvArray, firstRow, nullValue);
01075    }
01076 
01077    template <typename S>
01078    void Column::write (const std::vector<S>& indata, long nRows, long firstRow, S* nullValue)
01079    {
01080       // fixed length write of vector
01081       // implement as valarray version
01082       if (nRows <= 0) throw InvalidNumberOfRows(nRows);
01083       std::valarray<S> __tmp(indata.size());
01084       std::copy(indata.begin(),indata.end(),&__tmp[0]);
01085       write(__tmp,nRows,firstRow, nullValue);  
01086    }
01087 
01088    template <typename S>
01089    void Column::write (S* indata, long nelements, long nRows, long firstRow, S* nullValue)
01090    {
01091       // fixed length write of C-array
01092       // implement as valarray version
01093       if (nRows <= 0) throw InvalidNumberOfRows(nRows);
01094       std::valarray<S> __tmp(indata,nelements);
01095       write(__tmp,nRows,firstRow, nullValue);              
01096    }        
01097 
01098 
01099    template <typename S>
01100    void Column::writeArrays (const std::vector<std::valarray<S> >& indata, long firstRow)
01101    {
01102       // vector<valarray>, no null value. 
01103       writeArrays(indata,firstRow,static_cast<S*>(0));
01104    } 
01105 
01106    template <typename S>
01107    void Column::writeArrays (const std::vector<std::valarray<S> >& indata, long firstRow,
01108                                    S* nullValue)
01109    {
01110       // vector<valarray>, null value. primary
01111 
01112 
01113       using std::valarray;
01114       using std::vector;
01115       parent()->makeThisCurrent();
01116       firstRow = std::max(firstRow,static_cast<long>(1));
01117       if (ColumnVectorData<S>* col = dynamic_cast<ColumnVectorData<S>*>(this))
01118       {
01119           col->writeData(indata,firstRow,nullValue);
01120       }
01121       else
01122       {
01123          // alright, input data type has to be rewritten as output
01124          // data type.
01125          FITSUtil::MatchType<S> inType;
01126          if ( inType() == type()) 
01127          {
01128                  String msg("Incorrect call: writing vectors to scalar column ");
01129                  throw WrongColumnType(msg);
01130          }
01131          else
01132          {
01133              size_t n(indata.size());                            
01134              if  ( type() == Tdouble || type() == VTdouble)
01135              {
01136                  ColumnVectorData<double>& col 
01137                          = dynamic_cast<ColumnVectorData<double>&>(*this);
01138                  vector<valarray<double> > __tmp(n);
01139                  for (size_t i = 0; i < n; ++i)
01140                  {
01141                          FITSUtil::fill(__tmp[i],indata[i]);
01142                  }
01143                  col.writeData(__tmp,firstRow);
01144              }
01145              else if  ( type() == Tfloat || type() == VTfloat)
01146              {
01147                  ColumnVectorData<float>& col 
01148                          = dynamic_cast<ColumnVectorData<float>&>(*this);
01149                  vector<valarray<float> > __tmp(n);
01150                  for (size_t i = 0; i < n; ++i)
01151                  {
01152                          FITSUtil::fill(__tmp[i],indata[i]);
01153                  }                                
01154                  col.writeData(__tmp,firstRow);
01155              }
01156              else if  ( type() == Tint || type() == VTint)
01157              {
01158                  ColumnVectorData<int>& col  
01159                          = dynamic_cast<ColumnVectorData<int>&>(*this);
01160                  vector<valarray<int> > __tmp(n);
01161                  int nullVal(0);
01162                  int* pNullVal = 0;
01163                  if (nullValue)
01164                  {
01165                     nullVal = static_cast<int>(*nullValue);
01166                     pNullVal = &nullVal;
01167                  }
01168                  for (size_t i = 0; i < n; ++i)
01169                  {
01170                          FITSUtil::fill(__tmp[i],indata[i]);
01171                  }                                
01172                  col.writeData(__tmp,firstRow,pNullVal);
01173              }
01174              else if  ( type() == Tshort || type() == VTshort)
01175              {
01176                  ColumnVectorData<short>& col 
01177                          = dynamic_cast<ColumnVectorData<short>&>(*this);
01178                  vector<valarray<short> > __tmp(n);
01179                  short nullVal(0);
01180                  short* pNullVal = 0;
01181                  if (nullValue)
01182                  {
01183                     nullVal = static_cast<short>(*nullValue);
01184                     pNullVal = &nullVal;
01185                  }
01186                  for (size_t i = 0; i < n; ++i)
01187                  {
01188                          FITSUtil::fill(__tmp[i],indata[i]);
01189                  }                                
01190                  col.writeData(__tmp,firstRow,pNullVal);
01191              }
01192              else if  ( type() == Tlong || type() == VTlong)
01193              {
01194                  ColumnVectorData<long>& col 
01195                          = dynamic_cast<ColumnVectorData<long>&>(*this);
01196                  vector<valarray<long> > __tmp(n);
01197                  long nullVal(0);
01198                  long* pNullVal = 0;
01199                  if (nullValue)
01200                  {
01201                     nullVal = static_cast<long>(*nullValue);
01202                     pNullVal = &nullVal;
01203                  }
01204                  for (size_t i = 0; i < n; ++i)
01205                  {
01206                          FITSUtil::fill(__tmp[i],indata[i]);
01207                  }                                
01208                  col.writeData(__tmp,firstRow,pNullVal);
01209              }
01210              else if  ( type() == Tlonglong || type() == VTlonglong)
01211              {
01212                  ColumnVectorData<LONGLONG>& col 
01213                          = dynamic_cast<ColumnVectorData<LONGLONG>&>(*this);
01214                  vector<valarray<LONGLONG> > __tmp(n);
01215                  LONGLONG nullVal(0);
01216                  LONGLONG* pNullVal = 0;
01217                  if (nullValue)
01218                  {
01219                     nullVal = static_cast<LONGLONG>(*nullValue);
01220                     pNullVal = &nullVal;
01221                  }
01222                  for (size_t i = 0; i < n; ++i)
01223                  {
01224                          FITSUtil::fill(__tmp[i],indata[i]);
01225                  }                                
01226                  col.writeData(__tmp,firstRow,pNullVal);
01227              }
01228              else if  ( type() == Tlogical || type() == VTlogical)
01229              {
01230                  ColumnVectorData<bool>& col 
01231                          = dynamic_cast<ColumnVectorData<bool>&>(*this);
01232                  bool nullVal(0);
01233                  bool* pNullVal = 0;
01234                  if (nullValue)
01235                  {
01236                     nullVal = static_cast<bool>(*nullValue);
01237                     pNullVal = &nullVal;
01238                  }
01239                  vector<valarray<bool> > __tmp(n);
01240                  for (size_t i = 0; i < n; ++i)
01241                  {
01242                          FITSUtil::fill(__tmp[i],indata[i]);
01243                  }                                
01244                  col.writeData(__tmp,firstRow,pNullVal);
01245              }
01246              else if  ( type() == Tbyte || type() == VTbyte)
01247              {
01248                  ColumnVectorData<unsigned char>& col 
01249                          = dynamic_cast<ColumnVectorData<unsigned char>&>(*this);
01250                  unsigned char nullVal(0);
01251                  unsigned char* pNullVal = 0;
01252                  if (nullValue)
01253                  {
01254                     nullVal = static_cast<unsigned char>(*nullValue);
01255                     pNullVal = &nullVal;
01256                  }
01257                  vector<valarray<unsigned char> > __tmp(n);
01258                  for (size_t i = 0; i < n; ++i)
01259                  {
01260                          FITSUtil::fill(__tmp[i],indata[i]);
01261                  }                                                                
01262                  col.writeData(__tmp,firstRow,&nullVal);
01263              }                            
01264              else if  ( type() == Tushort || type() == VTushort)
01265              {
01266                  ColumnVectorData<unsigned short>& col 
01267                          = dynamic_cast<ColumnVectorData<unsigned short>&>(*this);
01268                  unsigned short nullVal(0);
01269                  unsigned short* pNullVal = 0;
01270                  if (nullValue)
01271                  {
01272                     nullVal = static_cast<unsigned short>(*nullValue);
01273                     pNullVal = &nullVal;
01274                  }
01275                  vector<valarray<unsigned short> > __tmp(n);
01276                  for (size_t i = 0; i < n; ++i)
01277                  {
01278                          FITSUtil::fill(__tmp[i],indata[i]);
01279                  }                                
01280                  col.writeData(__tmp,firstRow,pNullVal);
01281              }
01282              else if  ( type() == Tuint || type() == VTuint)
01283              {
01284                  ColumnVectorData<unsigned int>& col 
01285                          = dynamic_cast<ColumnVectorData<unsigned int>&>(*this);
01286                  unsigned int nullVal(0);
01287                  unsigned int* pNullVal = 0;
01288                  if (nullValue)
01289                  {
01290                     nullVal = static_cast<unsigned int>(*nullValue);
01291                     pNullVal = &nullVal;
01292                  }
01293                  vector<valarray<unsigned int> > __tmp(n);
01294                  for (size_t i = 0; i < n; ++i)
01295                  {
01296                          FITSUtil::fill(__tmp[i],indata[i]);
01297                  }                                
01298                  col.writeData(__tmp,firstRow,pNullVal);
01299              }
01300              else if  ( type() == Tulong || type() == VTulong)
01301              {
01302                  ColumnVectorData<unsigned long>& col 
01303                          = dynamic_cast<ColumnVectorData<unsigned long>&>(*this);
01304                  unsigned long nullVal(0);
01305                  unsigned long* pNullVal = 0;
01306                  if (nullValue)
01307                  {
01308                     nullVal = static_cast<unsigned long>(*nullValue);
01309                     pNullVal = &nullVal;
01310                  }
01311                  vector<valarray<unsigned long> > __tmp(n);
01312                  for (size_t i = 0; i < n; ++i)
01313                  {
01314                          FITSUtil::fill(__tmp[i],indata[i]);
01315                  }                                
01316                  col.writeData(__tmp,firstRow,pNullVal);
01317              } 
01318              else
01319              {
01320                      throw InvalidDataType(name());
01321              }
01322          }
01323       }
01324    } 
01325 
01326 
01327    template <typename T>
01328    void Column::addNullValue(T nullVal)
01329    {
01330       parent()->makeThisCurrent();
01331       int status(0);
01332 #ifdef SSTREAM_DEFECT
01333       std::ostrstream keyName;
01334       keyName << "TNULL" << index() << std::ends;
01335       char* nullKey = const_cast<char*>(keyName.str());
01336 #else
01337       std::ostringstream keyName;          
01338       keyName << "TNULL" << index();
01339       String keyNameStr = keyName.str();
01340       char* nullKey = const_cast<char*>(keyNameStr.c_str());
01341 #endif
01342 
01343 
01344       FITSUtil::MatchType<T> inputType;
01345       int dataType = static_cast<int>(inputType());
01346       if (dataType == static_cast<int>(Tstring))
01347          throw InvalidDataType("attempting to set TNULLn to a string.");
01348 
01349       // update key but don't add to keyword list because it's really a column
01350       // property not a table metadata property. And it needs to be automatically
01351       // renumbered if columns are inserted or deleted.
01352       if (fits_update_key(fitsPointer(),dataType,nullKey,&nullVal,0,&status))
01353               throw FitsError(status);
01354 
01355       // The following is called to make sure the HDU struct is immediately 
01356       // updated in case a column write operation is performed shortly after this
01357       // function exits. 
01358       if (fits_set_hdustruc(fitsPointer(),&status)) throw FitsError(status); 
01359 
01360    }
01361 
01362    template <typename T>
01363    bool Column::getNullValue(T* nullVal) const
01364    {
01365       parent()->makeThisCurrent();
01366 #ifdef SSTREAM_DEFECT
01367       std::ostrstream keyName;
01368       keyName << "TNULL" << index() << std::ends;
01369       char* nullKey = const_cast<char*>(keyName.str());
01370 #else
01371       std::ostringstream keyName;          
01372       keyName << "TNULL" << index();
01373       String keyNameStr = keyName.str();
01374       char* nullKey = const_cast<char*>(keyNameStr.c_str());
01375 #endif
01376 
01377       int status=0;
01378       FITSUtil::MatchType<T> inputType;
01379       int dataType = static_cast<int>(inputType());
01380       if (dataType == static_cast<int>(Tstring))
01381          throw InvalidDataType("attempting to read TNULLn into a string.");
01382       T tmpVal(*nullVal);
01383 
01384       bool keyExists = false;
01385       if (fits_read_key(m_parent->fitsPointer(), dataType, nullKey, &tmpVal, 0, &status))
01386       {
01387          if (status == KEY_NO_EXIST  || status == VALUE_UNDEFINED)
01388             return keyExists;
01389          else
01390             throw FitsError(status);
01391       }
01392       keyExists = true;
01393       *nullVal = tmpVal;       
01394       return keyExists;
01395    }
01396 
01397 } // namespace CCfits
01398 
01399 #endif
CCfits/html/ColumnVectorData_8h_source.html0000644000225700000360000034413011667502523020556 0ustar cagordonlhea CCfits: ColumnVectorData.h Source File
CCfits  2.4
ColumnVectorData.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef COLUMNVECTORDATA_H
00010 #define COLUMNVECTORDATA_H 1
00011 #ifdef _MSC_VER
00012 #include "MSconfig.h"
00013 #endif
00014 #include "CCfits.h"
00015 
00016 // valarray
00017 #include <valarray>
00018 // vector
00019 #include <vector>
00020 // Column
00021 #include "Column.h"
00022 #ifdef HAVE_CONFIG_H
00023 #include "config.h"
00024 #endif
00025 
00026 #ifdef SSTREAM_DEFECT
00027 #include <strstream>
00028 #else
00029 #include <sstream>
00030 #endif
00031 
00032 #include <memory>
00033 #include <numeric>
00034 namespace CCfits {
00035 
00036         class Table;
00037 
00038 }
00039 
00040 #include "FITS.h"
00041 #include "FITSUtil.h"
00042 using std::complex;
00043 
00044 
00045 namespace CCfits {
00046 
00047 
00048 
00049   template <typename T>
00050   class ColumnVectorData : public Column  //## Inherits: <unnamed>%38BAD1D4D370
00051   {
00052 
00053     public:
00054         ColumnVectorData(const ColumnVectorData< T > &right);
00055         ColumnVectorData (Table* p = 0);
00056         ColumnVectorData (int columnIndex, const string &columnName, ValueType type, const string &format, const string &unit, Table* p, int  rpt = 1, long w = 1, const string &comment = "");
00057         ~ColumnVectorData();
00058 
00059         virtual void readData (long firstrow, long nelements, long firstelem = 1);
00060         virtual ColumnVectorData<T>* clone () const;
00061         virtual void setDimen ();
00062         void setDataLimits (T* limits);
00063         const T minLegalValue () const;
00064         void minLegalValue (T value);
00065         const T maxLegalValue () const;
00066         void maxLegalValue (T value);
00067         const T minDataValue () const;
00068         void minDataValue (T value);
00069         const T maxDataValue () const;
00070         void maxDataValue (T value);
00071         const std::vector<std::valarray<T> >& data () const;
00072         void setData (const std::vector<std::valarray<T> >& value);
00073         const std::valarray<T>& data (int i) const;
00074         void data (int i, const std::valarray<T>& value);
00075 
00076       // Additional Public Declarations
00077         friend class Column;
00078     protected:
00079       // Additional Protected Declarations
00080 
00081     private:
00082         ColumnVectorData< T > & operator=(const ColumnVectorData< T > &right);
00083 
00084         virtual bool compare (const Column &right) const;
00085         void resizeDataObject (const std::vector<std::valarray<T> >& indata, size_t firstRow);
00086         //      Reads a specified number of column rows.
00087         //
00088         //      There are no default arguments. The function
00089         //      Column::read(firstrow,firstelem,nelements)
00090         //       is designed for reading the whole column.
00091         virtual void readColumnData (long first, long last, T* nullValue = 0);
00092         virtual std::ostream& put (std::ostream& s) const;
00093         void writeData (const std::valarray<T>& indata, long numRows, long firstRow = 1, T* nullValue = 0);
00094         void writeData (const std::vector<std::valarray<T> >& indata, long firstRow = 1, T* nullValue = 0);
00095         //      Reads a specified number of column rows.
00096         //
00097         //      There are no default arguments. The function
00098         //      Column::read(firstrow,firstelem,nelements)
00099         //       is designed for reading the whole column.
00100         virtual void readRow (size_t row, T* nullValue = 0);
00101         //      Reads a variable row..
00102         virtual void readVariableRow (size_t row, T* nullValue = 0);
00103         void readColumnData (long firstrow, long nelements, long firstelem, T* nullValue = 0);
00104         void writeData (const std::valarray<T>& indata, const std::vector<long>& vectorLengths, long firstRow = 1, T* nullValue = 0);
00105         void writeFixedRow (const std::valarray<T>& data, long row, long firstElem = 1, T* nullValue = 0);
00106         void writeFixedArray (T* data, long nElements, long nRows, long firstRow, T* nullValue = 0);
00107         //      Insert one or more blank rows into a FITS column.
00108         virtual void insertRows (long first, long number = 1);
00109         virtual void deleteRows (long first, long number = 1);
00110         void doWrite (T* array, long row, long rowSize, long firstElem, T* nullValue);
00111 
00112       // Additional Private Declarations
00113 
00114     private: //## implementation
00115       // Data Members for Class Attributes
00116         T m_minLegalValue;
00117         T m_maxLegalValue;
00118         T m_minDataValue;
00119         T m_maxDataValue;
00120 
00121       // Data Members for Associations
00122         std::vector<std::valarray<T> > m_data;
00123 
00124       // Additional Implementation Declarations
00125 
00126   };
00127 
00128   // Parameterized Class CCfits::ColumnVectorData 
00129 
00130   template <typename T>
00131   inline void ColumnVectorData<T>::readData (long firstrow, long nelements, long firstelem)
00132   {
00133     readColumnData(firstrow,nelements,firstelem,static_cast<T*>(0));
00134   }
00135 
00136   template <typename T>
00137   inline const T ColumnVectorData<T>::minLegalValue () const
00138   {
00139     return m_minLegalValue;
00140   }
00141 
00142   template <typename T>
00143   inline void ColumnVectorData<T>::minLegalValue (T value)
00144   {
00145     m_minLegalValue = value;
00146   }
00147 
00148   template <typename T>
00149   inline const T ColumnVectorData<T>::maxLegalValue () const
00150   {
00151     return m_maxLegalValue;
00152   }
00153 
00154   template <typename T>
00155   inline void ColumnVectorData<T>::maxLegalValue (T value)
00156   {
00157     m_maxLegalValue = value;
00158   }
00159 
00160   template <typename T>
00161   inline const T ColumnVectorData<T>::minDataValue () const
00162   {
00163     return m_minDataValue;
00164   }
00165 
00166   template <typename T>
00167   inline void ColumnVectorData<T>::minDataValue (T value)
00168   {
00169     m_minDataValue = value;
00170   }
00171 
00172   template <typename T>
00173   inline const T ColumnVectorData<T>::maxDataValue () const
00174   {
00175     return m_maxDataValue;
00176   }
00177 
00178   template <typename T>
00179   inline void ColumnVectorData<T>::maxDataValue (T value)
00180   {
00181     m_maxDataValue = value;
00182   }
00183 
00184   template <typename T>
00185   inline const std::vector<std::valarray<T> >& ColumnVectorData<T>::data () const
00186   {
00187     return m_data;
00188   }
00189 
00190   template <typename T>
00191   inline void ColumnVectorData<T>::setData (const std::vector<std::valarray<T> >& value)
00192   {
00193     m_data = value;
00194   }
00195 
00196   template <typename T>
00197   inline const std::valarray<T>& ColumnVectorData<T>::data (int i) const
00198   {
00199     return m_data[i - 1];
00200   }
00201 
00202   template <typename T>
00203   inline void ColumnVectorData<T>::data (int i, const std::valarray<T>& value)
00204   {
00205      if (m_data[i-1].size() != value.size())
00206         m_data[i-1].resize(value.size());
00207      m_data[i - 1] = value;
00208   }
00209 
00210   // Parameterized Class CCfits::ColumnVectorData 
00211 
00212   template <typename T>
00213   ColumnVectorData<T>::ColumnVectorData(const ColumnVectorData<T> &right)
00214       :Column(right),
00215        m_minLegalValue(right.m_minLegalValue),
00216        m_maxLegalValue(right.m_maxLegalValue),
00217        m_minDataValue(right.m_minDataValue),
00218        m_maxDataValue(right.m_maxDataValue),
00219        m_data(right.m_data)
00220   {
00221   }
00222 
00223   template <typename T>
00224   ColumnVectorData<T>::ColumnVectorData (Table* p)
00225     : Column(p),
00226        m_minLegalValue(0),
00227        m_maxLegalValue(0),
00228        m_minDataValue(0),
00229        m_maxDataValue(0),
00230        m_data() 
00231   {
00232   }
00233 
00234   template <typename T>
00235   ColumnVectorData<T>::ColumnVectorData (int columnIndex, const string &columnName, ValueType type, const string &format, const string &unit, Table* p, int  rpt, long w, const string &comment)
00236         : Column(columnIndex,columnName,type,format,unit,p,rpt,w,comment),
00237           m_minLegalValue(0),
00238           m_maxLegalValue(0),
00239           m_minDataValue(0),
00240           m_maxDataValue(0), 
00241           m_data()
00242   {
00243   }
00244 
00245 
00246   template <typename T>
00247   ColumnVectorData<T>::~ColumnVectorData()
00248   {
00249   // valarray destructor should do all the work.
00250   }
00251 
00252 
00253   template <typename T>
00254   bool ColumnVectorData<T>::compare (const Column &right) const
00255   {
00256           if ( !Column::compare(right) ) return false;
00257           const ColumnVectorData<T>& that = static_cast<const ColumnVectorData<T>&>(right);
00258           size_t n = m_data.size();
00259           // m_data is of type valarray<T>.
00260           if ( that.m_data.size() != n ) return false;
00261           for (size_t i = 0; i < n ; i++)
00262           {
00263                 size_t nn = m_data[i].size();
00264                 // first check size (also, == on 2 valarrays is only defined if they
00265                 // are equal in size).
00266                 if (that.m_data[i].size() != nn ) return false;
00267 
00268                 std::valarray<bool> test = (m_data[i] == that.m_data[i]);
00269                 for (size_t j = 0; j < nn ; j++ ) if ( !test[j] ) return false;
00270           }
00271           return true;
00272   }
00273 
00274   template <typename T>
00275   ColumnVectorData<T>* ColumnVectorData<T>::clone () const
00276   {
00277   return new ColumnVectorData<T>(*this);
00278   }
00279 
00280   template <typename T>
00281   void ColumnVectorData<T>::resizeDataObject (const std::vector<std::valarray<T> >& indata, size_t firstRow)
00282   {
00283     // the rows() call is the value before updating.
00284     // the updateRows() call at the end sets the call to return the
00285     // value from the fits pointer - which is changed by writeFixedArray
00286     // or writeFixedRow.
00287 
00288     const size_t lastInputRow(indata.size() + firstRow - 1);
00289     const size_t newLastRow = std::max(lastInputRow,static_cast<size_t>(rows()));
00290 
00291     // if the write instruction increases the rows, we need to add
00292     // rows to the data member and preserve its current contents.
00293 
00294     // rows() >= origNRows since it is the value for entire table, 
00295     // not just this column.
00296     const size_t origNRows(m_data.size());
00297     // This will always be an expansion. vector.resize() doesn't
00298     // invalidate any data on an expansion.
00299     if (newLastRow > origNRows) m_data.resize(newLastRow);
00300 
00301     if (varLength())
00302     {
00303        // The incoming data will determine each row size, thus
00304        // no need to preserve any existing values in the row.
00305        // Each value will eventually be overwritten.
00306        for (size_t iRow = firstRow-1; iRow < lastInputRow; ++iRow)
00307        {
00308           std::valarray<T>& current = m_data[iRow];
00309           const size_t newSize = indata[iRow - (firstRow-1)].size();
00310           if (current.size() != newSize)
00311              current.resize(newSize);          
00312        }
00313     }
00314     else
00315     {
00316        // All row sizes in m_data should ALWAYS be either repeat(),
00317        // or 0 if they haven't been initialized.  This is true regardless
00318        // of the incoming data row size.  
00319 
00320        // Perform LAZY initialization of m_data rows.  Only
00321        // expand a row valarray when it is first needed.
00322        for (size_t iRow = firstRow-1; iRow < lastInputRow; ++iRow)
00323        {
00324           if (m_data[iRow].size() != repeat())
00325              m_data[iRow].resize(repeat());
00326        }       
00327     }
00328   }
00329 
00330   template <typename T>
00331   void ColumnVectorData<T>::setDimen ()
00332   {
00333   int status(0);
00334   FITSUtil:: auto_array_ptr<char> dimValue (new char[FLEN_VALUE]);
00335 
00336 #ifdef SSTREAM_DEFECT
00337   std::ostrstream key;
00338 #else
00339   std::ostringstream key;
00340 #endif
00341   key << "TDIM" << index();
00342 
00343 #ifdef SSTREAM_DEFECT
00344   fits_read_key_str(fitsPointer(), key.str(), dimValue.get(),0,&status);
00345 #else
00346   fits_read_key_str(fitsPointer(),const_cast<char*>(key.str().c_str()),dimValue.get(),0,&status);
00347 #endif
00348 
00349   if (status == 0)
00350   {
00351         dimen(String(dimValue.get()));
00352   }
00353   }
00354 
00355   template <typename T>
00356   void ColumnVectorData<T>::readColumnData (long first, long last, T* nullValue)
00357   {
00358   makeHDUCurrent();
00359 
00360 
00361           if ( rows() < last ) 
00362           {
00363                 std::cerr << "CCfits: More data requested than contained in table. ";
00364                 std::cerr << "Extracting complete column.\n";
00365                 last = rows();
00366           }
00367 
00368           long nelements = (last - first + 1)*repeat();
00369 
00370 
00371           readColumnData(first,nelements,1,nullValue);   
00372           if (first <= 1 && last == rows()) isRead(true);
00373   }
00374 
00375   template <typename T>
00376   std::ostream& ColumnVectorData<T>::put (std::ostream& s) const
00377   {
00378   // output header information
00379     Column::put(s);
00380     if ( FITS::verboseMode() )
00381     {
00382           s << " Column Legal limits: ( " << m_minLegalValue << "," << m_maxLegalValue << " )\n" 
00383           << " Column Data  limits: ( " << m_minDataValue << "," << m_maxDataValue << " )\n";
00384     }
00385     if (!m_data.empty())
00386     {
00387           for (size_t j = 0; j < m_data.size(); j++)
00388           {
00389                   size_t n = m_data[j].size();
00390                   if ( n )
00391                   {
00392                           s << "Row " << j + 1 << " Vector Size " << n << '\n';
00393                           for (size_t k = 0; k < n - 1; k++)
00394                           {
00395                                   s << m_data[j][k] << '\t';
00396                           }
00397                           s << m_data[j][n - 1] << '\n';
00398                   }
00399           }
00400     }
00401 
00402     return s;
00403   }
00404 
00405   template <typename T>
00406   void ColumnVectorData<T>::writeData (const std::valarray<T>& indata, long numRows, long firstRow, T* nullValue)
00407   {
00408      // This version of writeData is called by Column write functions which 
00409      // can only write the same number of elements to each row.  
00410      // For fixed width columns, this must be equal to the repeat value
00411      // or an exception is thrown.  For variable width, it only requires
00412      // that indata.size()/numRows is an int.
00413 
00414      // won't do anything if < 0, and will give divide check if == 0.
00415      if (numRows <= 0) throw InvalidNumberOfRows(numRows);
00416 
00417 #ifdef SSTREAM_DEFECT
00418      std::ostrstream msgStr;
00419 #else
00420      std::ostringstream msgStr;
00421 #endif            
00422      if (indata.size() % static_cast<size_t>(numRows))
00423      {
00424         msgStr << "To use this write function, input array size"
00425            <<"\n must be exactly divisible by requested num rows: "
00426            << numRows;
00427         throw InsufficientElements(msgStr.str());
00428      }
00429      const size_t cellsize = indata.size()/static_cast<size_t>(numRows);
00430 
00431      if (!varLength() && cellsize != repeat() )
00432      {      
00433         msgStr << "column: " << name() 
00434                <<  "\n input data size: " << indata.size() 
00435                << " required: " << numRows*repeat();
00436         String msg(msgStr.str());
00437         throw InsufficientElements(msg);     
00438      }
00439 
00440      std::vector<std::valarray<T> > internalFormat(numRows);
00441 
00442      // support writing equal row lengths to variable columns.
00443 
00444      for (long j = 0; j < numRows; ++j)
00445      {
00446         internalFormat[j].resize(cellsize);
00447         internalFormat[j] = indata[std::slice(cellsize*j,cellsize,1)];
00448      }
00449 
00450      // change the size of m_data based on the first row to be written
00451      // and on the input data vector sizes.
00452 
00453      writeData(internalFormat,firstRow,nullValue);    
00454   }
00455 
00456   template <typename T>
00457   void ColumnVectorData<T>::writeData (const std::vector<std::valarray<T> >& indata, long firstRow, T* nullValue)
00458   {
00459      // This is called directly by Column's writeArrays functions, and indirectly
00460      // by both categories of write functions, ie. those which allow differing
00461      // lengths per row and those that don't.
00462     const size_t nInputRows(indata.size());   
00463     using  std::valarray;
00464 
00465     resizeDataObject(indata,firstRow); 
00466     // After the above call, can assume all m_data arrays to be written to 
00467     // have been properly resized whether we're dealing with fixed or
00468     // variable length.       
00469 
00470     if (varLength())
00471     {
00472        // firstRow is 1-based, but all these internal row variables 
00473        // will be 0-based.  
00474        const size_t endRow = nInputRows + firstRow-1;
00475        for (size_t iRow = firstRow-1; iRow < endRow; ++iRow)
00476        {
00477           m_data[iRow] = indata[iRow - (firstRow-1)];
00478           // doWrite wants 1-based rows.
00479           doWrite(&m_data[iRow][0], iRow+1, m_data[iRow].size(), 1, nullValue);
00480        }
00481        parent()->updateRows();
00482     }
00483     else
00484     {
00485        // Check for simplest case of all valarrays of size repeat().
00486        // If any are greater, throw an error.
00487        const size_t colRepeat = repeat();
00488        bool allEqualRepeat = true;
00489        for (size_t i=0; i<nInputRows; ++i)
00490        {
00491           const size_t sz = indata[i].size();
00492           if (sz > colRepeat)
00493           {
00494 #ifdef SSTREAM_DEFECT
00495              std::ostrstream oss;
00496 #else
00497              std::ostringstream oss;
00498 #endif 
00499              oss << " vector column length " << colRepeat 
00500                 <<", input valarray length " << sz;
00501              throw InvalidRowParameter(oss.str());               
00502           }
00503           if (sz < colRepeat)
00504              allEqualRepeat = false;
00505        }
00506 
00507        if (allEqualRepeat)
00508        {
00509           // concatenate the valarrays and write.
00510           const size_t nElements (colRepeat*nInputRows);
00511           FITSUtil::CVAarray<T> convert;
00512           FITSUtil::auto_array_ptr<T> pArray(convert(indata));
00513           T* array = pArray.get();
00514 
00515           // if T is complex, then CVAarray returns a 
00516           // C-array of complex objects. But FITS requires an array of complex's
00517           // value_type.
00518 
00519           // This writes to the file and also calls updateRows.
00520           writeFixedArray(array,nElements,nInputRows,firstRow,nullValue);            
00521 
00522           for (size_t j = 0; j < nInputRows ; ++j)
00523           {
00524               const valarray<T>& input   = indata[j];
00525               valarray<T>& current = m_data[j + firstRow - 1];
00526               // current should be resized by resizeDataObject.
00527               current = input;
00528           }
00529        }
00530        else
00531        {
00532           // Some input arrays have fewer than colRepeat elements. 
00533           const size_t endRow = nInputRows + firstRow-1;
00534           for (size_t iRow = firstRow-1; iRow<endRow; ++iRow)
00535           {
00536              // resizeDataObject should already have resized all
00537              // corresponding m_data rows to repeat().
00538              const valarray<T>& input = indata[iRow-(firstRow-1)];
00539              writeFixedRow(input, iRow, 1, nullValue);
00540           }
00541           parent()->updateRows();          
00542        }  
00543 
00544     } // end if !varLength
00545   }
00546 
00547   template <typename T>
00548   void ColumnVectorData<T>::readRow (size_t row, T* nullValue)
00549   {
00550           makeHDUCurrent();
00551 
00552 
00553 
00554           if ( row > static_cast<size_t>(rows()) ) 
00555           {
00556 #ifdef SSTREAM_DEFECT
00557                   std::ostrstream msg;
00558 #else
00559                   std::ostringstream msg;
00560 #endif
00561                 msg << " row requested: " << row << " row range: 1 - " << rows();                
00562 #ifdef SSTREAM_DEFECT
00563                 msg << std::ends;
00564 #endif
00565 
00566                 throw Column::InvalidRowNumber(msg.str()); 
00567           }
00568 
00569           // this is really for documentation purposes. I expect the optimizer will
00570           // remove this redundant definition .
00571           bool variable(type() < 0); 
00572 
00573 
00574           long nelements(repeat());
00575 
00576           if (variable)
00577           {
00578               readVariableRow(row,nullValue);
00579           }
00580           else
00581           {      
00582               readColumnData(row,nelements,1,nullValue);      
00583           }
00584   }
00585 
00586   template <typename T>
00587   void ColumnVectorData<T>::readVariableRow (size_t row, T* nullValue)
00588   {
00589       int status(0);
00590       long offset(0);
00591       long repeat(0);
00592       if (fits_read_descript(fitsPointer(),index(),static_cast<long>(row),
00593                       &repeat,&offset,&status)) throw FitsError(status);
00594       readColumnData(row,repeat,1,nullValue);   
00595   }
00596 
00597   template <typename T>
00598   void ColumnVectorData<T>::readColumnData (long firstrow, long nelements, long firstelem, T* nullValue)
00599   {
00600    int   status=0;
00601 
00602    FITSUtil::auto_array_ptr<T> pArray(new T[nelements]); 
00603    T*     array = pArray.get();
00604    int    anynul(0);
00605 
00606 
00607 
00608    if (fits_read_col(fitsPointer(), abs(type()),index(), firstrow, firstelem,
00609                           nelements, nullValue, array, &anynul, &status) != 0)  
00610        throw FitsError(status);
00611 
00612    size_t countRead = 0;
00613    const size_t ONE = 1;
00614 
00615    if (m_data.size() != static_cast<size_t>(rows())) m_data.resize(rows());
00616    size_t vectorSize(0);
00617    if (!varLength())
00618    {
00619 
00620         vectorSize = std::max(repeat(),ONE); // safety check.
00621 
00622    }
00623    else
00624    {
00625         // assume that the user specified the correct length for 
00626         // variable columns. This should be ok since readVariableColumns
00627         // uses fits_read_descripts to return this information from the
00628         // fits pointer, and this is passed as nelements here.
00629         vectorSize = nelements;       
00630    }
00631    size_t n = nelements; 
00632 
00633    int i = firstrow;
00634    int ii = i - 1;
00635    while ( countRead < n)
00636    {
00637          std::valarray<T>& current = m_data[ii];
00638          if (current.size() != vectorSize) current.resize(vectorSize);
00639          int elementsInFirstRow = vectorSize-firstelem + 1;
00640          bool lastRow = ( (nelements - countRead) < vectorSize);
00641          if (lastRow)
00642          {
00643                int elementsInLastRow = nelements - countRead;
00644                std::valarray<T> ttmp(array + vectorSize*(ii-firstrow) + elementsInFirstRow,
00645                                                      elementsInLastRow);
00646                for (int kk = 0; kk < elementsInLastRow; kk++) current[kk] = ttmp[kk];
00647                countRead += elementsInLastRow;
00648 
00649          }
00650          // what to do with complete rows
00651          else 
00652          {
00653                 if (firstelem == 1 || (firstelem > 1 && i > firstrow) )
00654                 {
00655                         std::valarray<T> ttmp(array + vectorSize*(ii - firstrow) + 
00656                                         elementsInFirstRow,vectorSize);
00657                         current = ttmp;
00658                         ii++;
00659                         i++;
00660                         countRead += vectorSize;   
00661                 }   
00662                 else
00663                 { 
00664                         if (i == firstrow)
00665                         {
00666                                 std::valarray<T> ttmp(array,elementsInFirstRow);
00667                                 for (size_t kk = firstelem ; kk < vectorSize ; kk++)
00668                                       current[kk] = ttmp[kk-firstelem];   
00669                                 countRead += elementsInFirstRow;
00670                                 i++;
00671                                 ii++;
00672                         }
00673                 }
00674          }
00675     }
00676   }
00677 
00678   template <typename T>
00679   void ColumnVectorData<T>::writeData (const std::valarray<T>& indata, const std::vector<long>& vectorLengths, long firstRow, T* nullValue)
00680   {
00681      // Called from Column write functions which allow differing lengths
00682      // for each row.
00683     using namespace std;
00684     const size_t N(vectorLengths.size());
00685     vector<long> sums(N);
00686     // pre-calculate partial sums of vector lengths for use as array offsets.
00687     partial_sum(vectorLengths.begin(),vectorLengths.end(),sums.begin());
00688     // check that sufficient data have been supplied to carry out the entire operation.
00689     if (indata.size() < static_cast<size_t>(sums[N-1]) )
00690     {
00691 #ifdef SSTREAM_DEFECT
00692         ostrstream msgStr;
00693 #else
00694         ostringstream msgStr;
00695 #endif            
00696         msgStr << " input data size: " << indata.size() << " vector length sum: " << sums[N-1];
00697 #ifdef SSTREAM_DEFECT
00698         msgStr << std::ends;
00699 #endif            
00700 
00701         String msg(msgStr.str());
00702         throw InsufficientElements(msg);     
00703     }
00704 
00705     vector<valarray<T> > vvArray(N);
00706     long& last = sums[0];
00707     vvArray[0].resize(last);
00708     for (long jj = 0; jj < last; ++jj) vvArray[0][jj] = indata[jj];
00709 
00710     for (size_t j = 1; j < N; ++j)
00711     {
00712                valarray<T>& __tmp = vvArray[j];
00713                // these  make the code much more readable
00714                long& first = sums[j-1];
00715                long& jlast = sums[j];
00716                __tmp.resize(jlast - first);
00717                for (long k = first; k < jlast; ++k)
00718                { 
00719                         __tmp[k - first] = indata[k];
00720                }
00721     }       
00722 
00723     writeData(vvArray,firstRow,nullValue);
00724   }
00725 
00726   template <typename T>
00727   void ColumnVectorData<T>::writeFixedRow (const std::valarray<T>& data, long row, long firstElem, T* nullValue)
00728   {
00729 
00730     // This is to be called only for FIXED length vector columns.  It will 
00731     // throw if data.size()+firstElem goes beyond the repeat value.
00732     // If data.size() is less than repeat, it leaves the remaining values
00733     // undisturbed both in the file and in m_data storage.
00734 
00735 #ifdef SSTREAM_DEFECT
00736     std::ostrstream msgStr;
00737 #else
00738     std::ostringstream msgStr;
00739 #endif            
00740     if (varLength())
00741     {
00742        msgStr <<"Calling ColumnVectorData::writeFixedRow for a variable length column.\n";
00743        throw FitsFatal(msgStr.str()); 
00744     }
00745 
00746     std::valarray<T>& storedRow = m_data[row];    
00747     long inputSize = static_cast<long>(data.size());
00748     long storedSize(storedRow.size());
00749     if (storedSize != static_cast<long>(repeat()))
00750     {
00751        msgStr<<"stored array size vs. column width mismatch in ColumnVectorData::writeFixedRow.\n";
00752        throw FitsFatal(msgStr.str());
00753     }
00754 
00755     if (inputSize + firstElem - 1 > storedSize)
00756     { 
00757           msgStr << " requested write " << firstElem << " to " 
00758                  << firstElem  + inputSize - 1 << " exceeds vector length " << repeat();
00759        throw InvalidRowParameter(msgStr.str());        
00760     }
00761 
00762     // CANNOT give a strong exception safety guarantee because writing
00763     // data changes the file. Any corrective action that could be taken
00764     // [e.g. holding initial contents of the row and writing it back after
00765     // an exception is thrown] could in principle throw the same exception
00766     // we are trying to protect from.
00767 
00768     // routine does however give the weak guarantee (no resource leaks).    
00769 
00770     // It's never a good thing to cast away a const, but doWrite calls the 
00771     // CFITSIO write functions which take a non-const pointer (though
00772     // it shouldn't actually modify the array), and I'd rather not 
00773     // copy the entire valarray just to avoid this problem.
00774     std::valarray<T>& lvData = const_cast<std::valarray<T>&>(data);
00775     T* inPointer = &lvData[0];
00776     doWrite(inPointer, row+1, inputSize, firstElem, nullValue); 
00777 
00778     // Writing to disk was successful, now update FITS object and return.
00779     const size_t offset = static_cast<size_t>(firstElem) - 1;
00780     for (size_t iElem=0; iElem < static_cast<size_t>(inputSize); ++iElem)
00781     {
00782        // This doesn't require inPointer's non-constness.  It's just
00783        // used here to speed things up a bit.
00784        storedRow[iElem + offset] = inPointer[iElem];
00785     }
00786   }
00787 
00788   template <typename T>
00789   void ColumnVectorData<T>::writeFixedArray (T* data, long nElements, long nRows, long firstRow, T* nullValue)
00790   {
00791     int status(0);
00792 
00793     // check for sanity of inputs, then write to file.
00794     // this function writes only complete rows to a table with
00795     // fixed width rows.
00796 
00797 
00798     if ( nElements < nRows*static_cast<long>(repeat()) )
00799     {
00800 #ifdef SSTREAM_DEFECT
00801         std::ostrstream msgStr;
00802 #else
00803         std::ostringstream msgStr;
00804 #endif
00805         msgStr << " input array size: " << nElements << " required " << nRows*repeat();
00806         String msg(msgStr.str());
00807 
00808             throw Column::InsufficientElements(msg);
00809     } 
00810 
00811     if (nullValue) 
00812     {
00813        if (fits_write_colnull(fitsPointer(),abs(type()),index(),firstRow,
00814                            1,nElements,data,nullValue,&status)) throw FitsError(status);
00815     }
00816     else
00817     {
00818        if (fits_write_col(fitsPointer(),abs(type()),index(),firstRow,
00819                            1,nElements,data,&status)) throw FitsError(status);
00820     }
00821 
00822     parent()->updateRows();
00823   }
00824 
00825   template <typename T>
00826   void ColumnVectorData<T>::insertRows (long first, long number)
00827   {
00828     typename std::vector<std::valarray<T> >::iterator in;
00829     if (first !=0) 
00830     {
00831             in = m_data.begin()+first;
00832     }
00833     else
00834     {
00835             in = m_data.begin();
00836     }           
00837 
00838     // non-throwing operations.
00839     m_data.insert(in,number,std::valarray<T>(T(),0));
00840   }
00841 
00842   template <typename T>
00843   void ColumnVectorData<T>::deleteRows (long first, long number)
00844   {
00845     // the following is an ugly workaround for a bug in g++ v3.0 that
00846     // does not erase vector elements cleanly in this case.
00847 
00848     long N = static_cast<long>(m_data.size());
00849     size_t newSize = static_cast<size_t>(N - number);      
00850     std::vector<std::valarray<T> > __tmp(newSize);
00851 
00852     long lastDeleted( number + first - 1 );
00853     long firstDeleted(first);
00854     long count(0);
00855     {
00856        for (long j = 1; j <= N; ++j)
00857        {
00858           if (  (j - firstDeleted)*(lastDeleted - j) >= 0 )     
00859           {                ++count; 
00860           } 
00861           else
00862           {
00863              __tmp[j - 1 - count].resize(m_data[j - 1].size());
00864              __tmp[j - 1 - count] = m_data[j - 1];
00865           }
00866        }                           
00867     }
00868 
00869     m_data.clear();
00870     m_data.resize(newSize);
00871     {
00872        for (size_t j = 0; j < newSize; ++j)
00873        {
00874           m_data[j].resize(__tmp[j].size());
00875           m_data[j] = __tmp[j];
00876        }
00877     }
00878   }
00879 
00880   template <typename T>
00881   void ColumnVectorData<T>::setDataLimits (T* limits)
00882   {
00883     m_minLegalValue = limits[0];
00884     m_maxLegalValue = limits[1];
00885     m_minDataValue = std::max(limits[2],limits[0]);
00886     m_maxDataValue = std::min(limits[3],limits[1]);
00887   }
00888 
00889   template <typename T>
00890   void ColumnVectorData<T>::doWrite (T* array, long row, long rowSize, long firstElem, T* nullValue)
00891   {
00892     int status(0);
00893     // internal functioning of write_colnull forbids its use for writing
00894     // variable width columns. If a nullvalue argument was supplied it will
00895     // be ignored.
00896     if ( !varLength())
00897     {
00898         if (fits_write_colnull(fitsPointer(),type(),index(),row, firstElem, rowSize,
00899                     array, nullValue,&status)) throw FitsError(status);
00900     }
00901     else
00902     {
00903         if (fits_write_col(fitsPointer(),abs(type()),index(),row,firstElem,rowSize,
00904                     array,&status)) throw FitsError(status);
00905 
00906     }
00907   }
00908 
00909   // Additional Declarations
00910 
00911   // all functions that operate on complex data that call cfitsio 
00912   // need to be specialized. The signature containing complex<T>* objects
00913   // is unfortunate, perhaps, for this purpose, but the user will  access
00914   // rw operations through standard library containers.
00915 
00916 
00917 
00918 
00919 
00920 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00921 template <>
00922 inline void ColumnVectorData<complex<float> >::setDataLimits (complex<float>* limits)
00923         {
00924                 m_minLegalValue = limits[0];
00925                 m_maxLegalValue = limits[1];
00926                 m_minDataValue =  limits[2];
00927                 m_maxDataValue =  limits[3];
00928         }
00929 #else
00930 template <>
00931   void 
00932   ColumnVectorData<complex<float> >::setDataLimits (complex<float>* limits);
00933 #endif
00934 
00935 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00936 template <>
00937 inline void ColumnVectorData<complex<double> >::setDataLimits (complex<double>* limits)
00938         {
00939                 m_minLegalValue = limits[0];
00940                 m_maxLegalValue = limits[1];
00941                 m_minDataValue =  limits[2];
00942                 m_maxDataValue =  limits[3];
00943         }
00944 #else
00945  template <>
00946    void 
00947    ColumnVectorData<complex<double> >::setDataLimits (complex<double>* limits);
00948 #endif
00949 
00950 
00951 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00952         template <>
00953         inline void ColumnVectorData<std::complex<float> >::readColumnData(long firstRow, 
00954                                 long nelements, long firstElem, std::complex<float>* null )
00955         {
00956             int   status=0;
00957             float nulval (0);
00958             FITSUtil::auto_array_ptr<float> pArray(new float[2*nelements]); 
00959             float*     array = pArray.get();
00960             int    anynul(0);
00961 
00962             if (fits_read_col_cmp(fitsPointer(),index(),firstRow, firstElem,
00963                             nelements,nulval,array,&anynul,&status) ) throw FitsError(status);
00964 
00965             if (m_data.size() != static_cast<size_t>(rows())) m_data.resize(rows());
00966 
00967             std::valarray<std::complex<float> > readData(nelements);
00968             for (long j = 0; j < nelements; ++j)
00969             {
00970                     readData[j] = std::complex<float>(array[2*j],array[2*j+1]);
00971             }
00972             size_t countRead = 0;
00973             const size_t ONE = 1;
00974 
00975             if (m_data.size() != static_cast<size_t>(rows())) m_data.resize(rows());
00976             size_t vectorSize(0);
00977             if (!varLength())
00978             {
00979                  vectorSize = std::max(repeat(),ONE); // safety check.
00980             }
00981             else
00982             {
00983                  // assume that the user specified the correct length for 
00984                  // variable columns. This should be ok since readVariableColumns
00985                  // uses fits_read_descripts to return this information from the
00986                  // fits pointer, and this is passed as nelements here.
00987                  vectorSize = nelements;       
00988             }
00989             size_t n = nelements; 
00990 
00991             int i = firstRow;
00992             int ii = i - 1;
00993             while ( countRead < n)
00994             {
00995                     std::valarray<complex<float> >& current = m_data[ii];
00996                     if (current.size() != vectorSize) current.resize(vectorSize,0.);
00997                     int elementsInFirstRow = vectorSize-firstElem + 1;
00998                     bool lastRow = ( (nelements - countRead) < vectorSize);
00999                     if (lastRow)
01000                     {
01001                             int elementsInLastRow = nelements - countRead;
01002                             std::copy(&readData[countRead],&readData[0]+nelements,&current[0]);
01003                             countRead += elementsInLastRow;
01004                     }             
01005                     // what to do with complete rows. if firstElem == 1 the 
01006                     else 
01007                     {
01008                             if (firstElem == 1 || (firstElem > 1 && i > firstRow) )
01009                             {
01010                                     current = readData[std::slice(vectorSize*(ii-firstRow)+
01011                                                                elementsInFirstRow,vectorSize,1)];
01012                                     ++ii;
01013                                     ++i;
01014                                     countRead += vectorSize;   
01015                             }   
01016                             else
01017                             { 
01018                                     if (i == firstRow)
01019                                     {
01020                                             std::copy(&readData[0],&readData[0]+elementsInFirstRow,
01021                                                                             &current[firstElem]);
01022                                             countRead += elementsInFirstRow;
01023                                             ++i;
01024                                             ++ii;
01025                                     }
01026                             }
01027                     }
01028             }
01029     }
01030 #else
01031 template <>
01032 void ColumnVectorData<complex<float> >::readColumnData(long firstRow, 
01033                         long nelements, 
01034                         long firstElem, complex<float>* null);
01035 #endif
01036 
01037 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
01038     template <>
01039     inline void ColumnVectorData<complex<double> >::readColumnData (long firstRow, 
01040               long nelements,long firstElem, 
01041               complex<double>* nullValue)
01042     {
01043 
01044         // duplicated for each complex type to work around imagined or
01045         // actual compiler deficiencies.
01046             int   status=0;
01047             double nulval (0);
01048             FITSUtil::auto_array_ptr<double> pArray(new double[2*nelements]); 
01049             double*     array = pArray.get();
01050             int    anynul(0);
01051 
01052             if (fits_read_col_dblcmp(fitsPointer(),index(),firstRow, firstElem,
01053                             nelements,nulval,array,&anynul,&status) ) throw FitsError(status);
01054 
01055             if (m_data.size() != static_cast<size_t>(rows())) m_data.resize(rows());
01056 
01057             std::valarray<std::complex<double> > readData(nelements);
01058             for (long j = 0; j < nelements; ++j)
01059             {
01060                     readData[j] = std::complex<double>(array[2*j],array[2*j+1]);
01061             }
01062             size_t countRead = 0;
01063             const size_t ONE = 1;
01064 
01065             if (m_data.size() != static_cast<size_t>(rows())) m_data.resize(rows());
01066             size_t vectorSize(0);
01067             if (!varLength())
01068             {
01069                  vectorSize = std::max(repeat(),ONE); // safety check.
01070             }
01071             else
01072             {
01073                  // assume that the user specified the correct length for 
01074                  // variable columns. This should be ok since readVariableColumns
01075                  // uses fits_read_descripts to return this information from the
01076                  // fits pointer, and this is passed as nelements here.
01077                  vectorSize = nelements;       
01078             }
01079             size_t n = nelements; 
01080 
01081             int i = firstRow;
01082             int ii = i - 1;
01083             while ( countRead < n)
01084             {
01085                     std::valarray<std::complex<double> >& current = m_data[ii];
01086                     if (current.size() != vectorSize) current.resize(vectorSize,0.);
01087                     int elementsInFirstRow = vectorSize-firstElem + 1;
01088                     bool lastRow = ( (nelements - countRead) < vectorSize);
01089                     if (lastRow)
01090                     {
01091                             int elementsInLastRow = nelements - countRead;
01092                             std::copy(&readData[countRead],&readData[0]+nelements,&current[0]);
01093                             countRead += elementsInLastRow;
01094                     }             
01095                     // what to do with complete rows. if firstElem == 1 the 
01096                     else 
01097                     {
01098                             if (firstElem == 1 || (firstElem > 1 && i > firstRow) )
01099                             {
01100                                     current = readData[std::slice(vectorSize*(ii-firstRow)+
01101                                                                elementsInFirstRow,vectorSize,1)];
01102                                     ++ii;
01103                                     ++i;
01104                                     countRead += vectorSize;   
01105                             }   
01106                             else
01107                             { 
01108                                     if (i == firstRow)
01109                                     {
01110                                             std::copy(&readData[0],&readData[0]+elementsInFirstRow,
01111                                                                             &current[firstElem]);
01112                                             countRead += elementsInFirstRow;
01113                                             ++i;
01114                                             ++ii;
01115                                     }
01116                             }
01117                     }
01118             }
01119     }
01120 #else
01121 template <>
01122 void ColumnVectorData<complex<double> >::readColumnData (long firstRow, 
01123                         long nelements,
01124                         long firstElem, complex<double>* null);
01125 #endif
01126 
01127 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
01128         template <>
01129         inline void ColumnVectorData<complex<float> >::writeFixedArray 
01130                         (complex<float>* data, long nElements, long nRows, long firstRow, 
01131                          complex<float>* nullValue)
01132         {
01133 
01134                 int status(0);
01135 
01136     // check for sanity of inputs, then write to file.
01137     // this function writes only complete rows to a table with
01138     // fixed width rows.
01139 
01140 
01141                 if ( nElements < nRows*static_cast<long>(repeat()) )
01142                 {
01143 #ifdef SSTREAM_DEFECT
01144                         std::ostrstream msgStr;
01145 #else
01146                         std::ostringstream msgStr;
01147 #endif
01148                         msgStr << " input array size: " << nElements 
01149                                         << " required " << nRows*repeat();
01150 #ifdef SSTREAM_DEFECT
01151                         msgStr << std::ends;
01152 #endif
01153 
01154 
01155                         String msg(msgStr.str());
01156 
01157                         throw Column::InsufficientElements(msg);
01158                 } 
01159 
01160                 FITSUtil::auto_array_ptr<float> realData(new float[2*nElements]);
01161 
01162                 for (int j = 0; j < nElements; ++j)
01163                 {
01164                         realData[2*j] = data[j].real();
01165                         realData[2*j+1] = data[j].imag();       
01166                 }
01167 
01168 
01169 
01170                 if (fits_write_col_cmp(fitsPointer(),index(),firstRow,
01171                         1,nElements,realData.get(),&status)) throw FitsError(status);
01172 
01173                 parent()->updateRows();
01174         }
01175 #else
01176 template <>
01177 void ColumnVectorData<complex<float> >::writeFixedArray 
01178      (complex<float>* data, long nElements, long nRows, long firstRow, std::complex<float>* null);
01179 #endif
01180 
01181 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
01182         template <>
01183         inline void ColumnVectorData<complex<double> >::writeFixedArray 
01184                         (complex<double>* data, long nElements, long nRows, long firstRow, 
01185                          complex<double>* nullValue)
01186         {
01187                 int status(0);
01188 
01189     // check for sanity of inputs, then write to file.
01190     // this function writes only complete rows to a table with
01191     // fixed width rows.
01192 
01193 
01194                 if ( nElements < nRows*static_cast<long>(repeat()) )
01195                 {
01196 #ifdef SSTREAM_DEFECT
01197                         std::ostrstream msgStr;
01198 #else
01199                         std::ostringstream msgStr;
01200 #endif
01201                         msgStr << " input array size: " << nElements 
01202                                         << " required " << nRows*repeat();
01203 #ifdef SSTREAM_DEFECT
01204                         msgStr << std::ends;
01205 #endif
01206 
01207                         String msg(msgStr.str());
01208 
01209                         throw Column::InsufficientElements(msg);
01210                 } 
01211 
01212                 FITSUtil::auto_array_ptr<double> realData(new double[2*nElements]);
01213 
01214                 for (int j = 0; j < nElements; ++j)
01215                 {
01216                         realData[2*j] = data[j].real();
01217                         realData[2*j+1] = data[j].imag();       
01218                 }
01219 
01220 
01221 
01222                 if (fits_write_col_dblcmp(fitsPointer(),index(),firstRow,
01223                         1,nElements,realData.get(),&status)) throw FitsError(status);
01224 
01225                 parent()->updateRows();
01226 
01227         }
01228 #else
01229 template <>
01230 void ColumnVectorData<complex<double> >::writeFixedArray 
01231                 (complex<double>* data, long nElements, long nRows, long firstRow, 
01232                  std::complex<double>* null);
01233 #endif
01234 
01235 #ifdef SPEC_TEMPLATE_DECL_DEFECT
01236   template <>
01237   inline void  
01238   ColumnVectorData<std::complex<float> >::doWrite 
01239   (std::complex<float>* data, long row, long rowSize, long firstElem, std::complex<float>* nullValue )
01240   {
01241     int status(0);
01242     FITSUtil::auto_array_ptr<float> carray( new float[2*rowSize]); 
01243     for ( long j = 0 ; j < rowSize; ++ j)
01244       {
01245         carray[2*j] = data[j].real();
01246         carray[2*j + 1] = data[j].imag();
01247       }
01248     if (fits_write_col_cmp(fitsPointer(),index(),row,firstElem,rowSize,
01249                            carray.get(),&status)) throw FitsError(status);
01250   }
01251 
01252 
01253   template <>
01254   inline void  
01255   ColumnVectorData<std::complex<double> >::doWrite
01256   (std::complex<double>* data, long row, long rowSize, long firstElem, std::complex<double>* nullValue )
01257   {
01258     int status(0);
01259     FITSUtil::auto_array_ptr<double> carray( new double[2*rowSize]); 
01260     for ( long j = 0 ; j < rowSize; ++ j)
01261       {
01262         carray[2*j] = data[j].real();
01263         carray[2*j + 1] = data[j].imag();
01264       }
01265     if (fits_write_col_dblcmp(fitsPointer(),index(),row,firstElem,rowSize,
01266                               carray.get(),&status)) throw FitsError(status);
01267 
01268   }
01269 
01270 #else
01271 template<>
01272 void 
01273 ColumnVectorData<complex<float> >::doWrite 
01274                 ( complex<float>* data, long row, long rowSize, long firstElem, complex<float>* nullValue);
01275 
01276 template<>
01277 void 
01278 ColumnVectorData<complex<double> >::doWrite 
01279                 ( complex<double>* data, long row, long rowSize, long firstElem, complex<double>* nullValue );
01280 #endif
01281 } // namespace CCfits
01282 
01283 
01284 #endif
CCfits/html/config_8h_source.html0000644000225700000360000002135311667502523016610 0ustar cagordonlhea CCfits: config.h Source File
CCfits  2.4
config.h
00001 /* config.h.  Generated by configure.  */
00002 /* config.h.in.  Generated from configure.in by autoheader.  */
00003 
00004 /* Define to 1 if you have the <dlfcn.h> header file. */
00005 #define HAVE_DLFCN_H 1
00006 
00007 /* Define to 1 if you have the <inttypes.h> header file. */
00008 #define HAVE_INTTYPES_H 1
00009 
00010 /* Define to 1 if you have the `cfitsio' library (-lcfitsio). */
00011 #define HAVE_LIBCFITSIO 1
00012 
00013 /* Define to 1 if you have the <memory.h> header file. */
00014 #define HAVE_MEMORY_H 1
00015 
00016 /* define if the compiler implements namespaces */
00017 #define HAVE_NAMESPACES 
00018 
00019 /* Define if you have the package */
00020 #define HAVE_PKG_cfitsio 1
00021 
00022 /* Define to 1 if you have the <stdint.h> header file. */
00023 #define HAVE_STDINT_H 1
00024 
00025 /* Define to 1 if you have the <stdlib.h> header file. */
00026 #define HAVE_STDLIB_H 1
00027 
00028 /* Define to 1 if you have the <strings.h> header file. */
00029 #define HAVE_STRINGS_H 1
00030 
00031 /* Define to 1 if you have the <string.h> header file. */
00032 #define HAVE_STRING_H 1
00033 
00034 /* Define to 1 if you have the <sys/stat.h> header file. */
00035 #define HAVE_SYS_STAT_H 1
00036 
00037 /* Define to 1 if you have the <sys/types.h> header file. */
00038 #define HAVE_SYS_TYPES_H 1
00039 
00040 /* Define to 1 if you have the <unistd.h> header file. */
00041 #define HAVE_UNISTD_H 1
00042 
00043 /* define if the compiler has valarray<T> */
00044 #define HAVE_VALARRAY 
00045 
00046 /* Define if IteratorBase does not work with some STL functions. */
00047 /* #undef ITERATORBASE_DEFECT */
00048 
00049 /* Name of package */
00050 #define PACKAGE "CCfits"
00051 
00052 /* Define to the address where bug reports for this package should be sent. */
00053 #define PACKAGE_BUGREPORT ""
00054 
00055 /* Define to the full name of this package. */
00056 #define PACKAGE_NAME ""
00057 
00058 /* Define to the full name and version of this package. */
00059 #define PACKAGE_STRING ""
00060 
00061 /* Define to the one symbol short name of this package. */
00062 #define PACKAGE_TARNAME ""
00063 
00064 /* Define to the version of this package. */
00065 #define PACKAGE_VERSION ""
00066 
00067 /* Define partical template specializtion can not be declared. */
00068 /* #undef SPEC_TEMPLATE_DECL_DEFECT */
00069 
00070 /* Define to 1 if you have the <strstream> header file instead of <sstream> */
00071 /* #undef SSTREAM_DEFECT */
00072 
00073 /* Define to 1 if you have the ANSI C header files. */
00074 #define STDC_HEADERS 1
00075 
00076 /* Define if compile can not resolve ambiguity in overloaded template
00077    functions. */
00078 /* #undef TEMPLATE_AMBIG7_DEFECT */
00079 
00080 /* Version number of package */
00081 #define VERSION "2.4"
CCfits/html/ExtHDU_8h_source.html0000644000225700000360000011554111667502523016447 0ustar cagordonlhea CCfits: ExtHDU.h Source File
CCfits  2.4
ExtHDU.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef EXTHDU_H
00010 #define EXTHDU_H 1
00011 
00012 // CCfitsHeader
00013 #include "CCfits.h"
00014 // HDU
00015 #include "HDU.h"
00016 // FitsError
00017 #include "FitsError.h"
00018 
00019 namespace CCfits {
00020   class Column;
00021 
00022 } // namespace CCfits
00023 
00024 
00025 namespace CCfits {
00026 
00421   class ExtHDU : public HDU  //## Inherits: <unnamed>%38048213E7A8
00422   {
00423 
00424     public:
00425 
00426 
00427 
00428       class WrongExtensionType : public FitsException  //## Inherits: <unnamed>%39E61E630349
00429       {
00430         public:
00431             WrongExtensionType (const String& msg, bool silent = true);
00432 
00433         protected:
00434         private:
00435         private: //## implementation
00436       };
00437         ExtHDU(const ExtHDU &right);
00438         virtual ~ExtHDU();
00439         friend bool operator<(const ExtHDU &left,const ExtHDU &right);
00440 
00441         friend bool operator>(const ExtHDU &left,const ExtHDU &right);
00442 
00443         friend bool operator<=(const ExtHDU &left,const ExtHDU &right);
00444 
00445         friend bool operator>=(const ExtHDU &left,const ExtHDU &right);
00446 
00447         static void readHduName (const fitsfile* fptr, int hduIndex, String& hduName, int& hduVersion);
00448         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>()) = 0;
00449         const String& name () const;
00450         virtual HDU * clone (FITSBase* p) const = 0;
00451         //      By all means necessary, set the fitsfile pointer so that
00452         //      this HDU is the current HDU.
00453         //
00454         //      This would appear to be a good candidate for the public
00455         //      interface.
00456         virtual void makeThisCurrent () const;
00457         virtual Column& column (const String& colName, bool caseSensitive = true) const;
00458         virtual Column& column (int colIndex) const;
00459         virtual long rows () const;
00460         virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = -1, size_t columnNumber = 0);
00461         virtual void deleteColumn (const String& columnName);
00462         virtual long getRowsize () const;
00463         virtual int numCols () const;
00464         virtual const std::map<string, Column*>& column () const;
00465 
00466         bool isCompressed () const;
00467         int version () const;
00468         void version (int value);
00469         static const String& missHDU ();
00470         static void setMissHDU (const String& value);
00471 
00472     public:
00473       // Additional Public Declarations
00474 
00475       // interface is virtually identical to PHDU. The implementation is
00476       // similar apart from a check for wrong extension type.
00477 
00478 
00479 
00480 
00481       template <typename S>
00482       void write(const std::vector<long>& first,
00483                     long nElements,
00484                     const std::valarray<S>& data,
00485                     S* nullValue);
00486 
00487 
00488       template <typename S>
00489       void write(long first,
00490                     long nElements,
00491                     const std::valarray<S>& data,
00492                     S* nullValue);                
00493 
00494       template <typename S>
00495       void write(const std::vector<long>& first,
00496                     long nElements,
00497                     const std::valarray<S>& data);
00498 
00499 
00500       template <typename S>
00501       void write(long first,
00502                     long nElements,
00503                     const std::valarray<S>& data);
00504 
00505       template <typename S>
00506       void write(const std::vector<long>& firstVertex,
00507                     const std::vector<long>& lastVertex,
00508                     const std::valarray<S>& data);     
00509 
00510       // read image data & return the array. Can't return a reference because type
00511       // conversion in general requires allocating a new object.
00512       // note semantics of reading column data are easily distinguished: they require
00513       // the user to perform the operation EXT.column({name,index}).read(...)
00514 
00515       template <typename S>
00516       void read (std::valarray<S>& image) ; 
00517 
00518       template<typename S> 
00519       void read (std::valarray<S>& image, 
00520                       long first,
00521                       long nElements, 
00522                       S* nullValue) ; 
00523 
00524       template<typename S>
00525       void read (std::valarray<S>& image, 
00526                       const std::vector<long>& first, 
00527                       long nElements, 
00528                       S* nullValue) ; 
00529 
00530       template<typename S>
00531       void read (std::valarray<S>& image, 
00532                       const std::vector<long>& firstVertex, 
00533                       const std::vector<long>& lastVertex, 
00534                       const std::vector<long>& stride) ; 
00535 
00536       template<typename S>
00537       void read (std::valarray<S>& image, 
00538                       long first,
00539                       long nElements) ; 
00540 
00541       template<typename S>
00542       void read (std::valarray<S>& image, 
00543                       const std::vector<long>& first,
00544                       long nElements) ; 
00545 
00546       template<typename S>
00547       void read (std::valarray<S>& image, 
00548                       const std::vector<long>& firstVertex, 
00549                       const std::vector<long>& lastVertex, 
00550                       const std::vector<long>& stride, 
00551                       S* nullValue) ; 
00552 
00553     protected:
00554         //      ExtHDU needs a default constructor. This is it.
00555         ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int version);
00556         //      The writing constructor. Forces the user to supply a name
00557         //      for the HDU
00558         ExtHDU (FITSBase* p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector<long>& axes, int version);
00559         //      ExtHDU constructor for getting ExtHDUs by number.
00560         //      Necessary since EXTNAME is a reserved not required
00561         //      keyword.
00562         ExtHDU (FITSBase* p, HduType xtype, int number);
00563 
00564         virtual std::ostream & put (std::ostream &s) const = 0;
00565         virtual void setColumn (const String& colname, Column* value);
00566         virtual void checkExtensionType () const;
00567         int getVersion ();
00568         long pcount () const;
00569         void pcount (long value);
00570         long gcount () const;
00571         void gcount (long value);
00572         HduType xtension () const;
00573         void xtension (HduType value);
00574 
00575       // Additional Protected Declarations
00576 
00577     private:
00578         virtual void initRead () = 0;
00579         void checkXtension ();
00580 
00581       // Additional Private Declarations
00582 
00583     private: //## implementation
00584       // Data Members for Class Attributes
00585         long m_pcount;
00586         long m_gcount;
00587         int m_version;
00588         HduType m_xtension;
00589         static String s_missHDU;
00590 
00591       // Data Members for Associations
00592         String m_name;
00593 
00594       // Additional Implementation Declarations
00595 
00596   };
00597 
00598   // Class CCfits::ExtHDU::WrongExtensionType 
00599 
00600   // Class CCfits::ExtHDU 
00601 
00602   inline bool operator<(const ExtHDU &left,const ExtHDU &right)
00603   {
00604         if (left.m_name < right.m_name) return true; 
00605         if (left.m_name > right.m_name) return false;
00606         if (left.m_name == right.m_name)
00607         {
00608                 if (left.m_version < right.m_version) return true;
00609         }      
00610         return false;       
00611   }
00612 
00613   inline bool operator>(const ExtHDU &left,const ExtHDU &right)
00614   {
00615      return !operator<=(left,right);
00616   }
00617 
00618   inline bool operator<=(const ExtHDU &left,const ExtHDU &right)
00619   {
00620         if (left.m_name <= right.m_name) 
00621         {
00622                 if (left.m_version <= right.m_version) return true;
00623         }
00624         return false;     
00625   }
00626 
00627   inline bool operator>=(const ExtHDU &left,const ExtHDU &right)
00628   {
00629     return !operator<(left,right);    
00630   }
00631 
00632 
00633   inline const String& ExtHDU::name () const
00634   {
00635 
00636     return m_name;
00637   }
00638 
00639   inline long ExtHDU::pcount () const
00640   {
00641     return m_pcount;
00642   }
00643 
00644   inline void ExtHDU::pcount (long value)
00645   {
00646     m_pcount = value;
00647   }
00648 
00649   inline long ExtHDU::gcount () const
00650   {
00651     return m_gcount;
00652   }
00653 
00654   inline void ExtHDU::gcount (long value)
00655   {
00656     m_gcount = value;
00657   }
00658 
00659   inline int ExtHDU::version () const
00660   {
00661     return m_version;
00662   }
00663 
00664   inline void ExtHDU::version (int value)
00665   {
00666     m_version = value;
00667   }
00668 
00669   inline HduType ExtHDU::xtension () const
00670   {
00671     return m_xtension;
00672   }
00673 
00674   inline void ExtHDU::xtension (HduType value)
00675   {
00676     m_xtension = value;
00677   }
00678 
00679   inline const String& ExtHDU::missHDU ()
00680   {
00681     return s_missHDU;
00682   }
00683 
00684   inline void ExtHDU::setMissHDU (const String& value)
00685   {
00686     s_missHDU = value;
00687   }
00688 
00689 } // namespace CCfits
00690 
00691 
00692 #endif
CCfits/html/ExtHDUT_8h_source.html0000644000225700000360000022165011667502523016572 0ustar cagordonlhea CCfits: ExtHDUT.h Source File
CCfits  2.4
ExtHDUT.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef EXTHDUT_H
00010 #define EXTHDUT_H
00011 #include "ImageExt.h"
00012 #include "Table.h"
00013 #include "Column.h"
00014 
00015 namespace CCfits 
00016 {
00017         template <typename S>
00018         void ExtHDU::read (std::valarray<S>& image) 
00019         {
00020                 makeThisCurrent();
00021                 long init(1);
00022                 long nElements(std::accumulate(naxes().begin(),naxes().end(),init,
00023                                 std::multiplies<long>()));
00024                 read(image,1,nElements,static_cast<S*>(0));
00025 
00026 
00027         }
00028 
00029 
00030 
00031         template <typename S>
00032         void ExtHDU::read (std::valarray<S>& image, long first,long nElements) 
00033         {
00034                 makeThisCurrent();
00035                 read(image, first,nElements,static_cast<S*>(0));
00036         }
00037 
00038         template <typename S>
00039         void ExtHDU::read (std::valarray<S>& image, long first, long nElements,  S* nulValue) 
00040         {
00041 
00042                 makeThisCurrent();                
00043                 if ( ImageExt<S>* extimage = dynamic_cast<ImageExt<S>*>(this))
00044                 {
00045                         // proceed if cast is successful.                  
00046                         const std::valarray<S>& __tmp 
00047                                         = extimage->readImage(first,nElements,nulValue);
00048                         image.resize(__tmp.size());
00049                         image = __tmp;
00050                 }
00051                 else 
00052                 {
00053                         if (bitpix() == Ifloat)
00054                         {
00055                                 ImageExt<float>& extimage 
00056                                                 = dynamic_cast<ImageExt<float>&>(*this);
00057                                 float nulVal(0);
00058                                 if (nulValue) nulVal = static_cast<float>(*nulValue);                                 
00059                                 FITSUtil::fill(image,
00060                                                 extimage.readImage(first,nElements,&nulVal));
00061                         }
00062                         else if (bitpix() == Idouble)
00063                         {
00064                                 ImageExt<double>& extimage 
00065                                                 = dynamic_cast<ImageExt<double>&>(*this);
00066                                 double nulVal(0);
00067                                 if (nulValue) nulVal = static_cast<double>(*nulValue);                                 
00068                                 FITSUtil::fill(image,
00069                                                 extimage.readImage(first,nElements,&nulVal));
00070                         }
00071                         else if (bitpix() == Ibyte)
00072                         {
00073                                 ImageExt<unsigned char>& extimage 
00074                                                 = dynamic_cast<ImageExt<unsigned char>&>(*this);
00075                                 unsigned char nulVal(0);
00076                                 if (nulValue) nulVal = static_cast<unsigned char>(*nulValue);                                 
00077                                 FITSUtil::fill(image,
00078                                                 extimage.readImage(first,nElements,&nulVal));
00079                         } 
00080                         else if (bitpix() == Ilong)
00081                         {
00082                                 if ( zero() == ULBASE && scale() == 1)
00083                                 {                                
00084                                         ImageExt<unsigned INT32BIT>& extimage 
00085                                                 = dynamic_cast<ImageExt<unsigned INT32BIT>&>(*this);
00086                                         unsigned INT32BIT nulVal(0);
00087                                         if (nulValue) nulVal 
00088                                                 = static_cast<unsigned INT32BIT>(*nulValue);                                 
00089                                         FITSUtil::fill(image,
00090                                                 extimage.readImage(first,nElements,&nulVal));
00091                                 }
00092                                 else
00093                                 {
00094                                         ImageExt<INT32BIT>& extimage 
00095                                                         = dynamic_cast<ImageExt<INT32BIT>&>(*this);
00096                                         INT32BIT nulVal(0);
00097                                         if (nulValue) nulVal = static_cast<INT32BIT>(*nulValue);                                 
00098                                         FITSUtil::fill(image,
00099                                                 extimage.readImage(first,nElements,&nulVal));
00100                                 }
00101                         }    
00102                         else if (bitpix() == Ishort)
00103                         {
00104                                 if ( zero() == USBASE && scale() == 1)
00105                                 {                                
00106                                         ImageExt<unsigned short>& extimage
00107                                                 = dynamic_cast<ImageExt<unsigned short>&>(*this);
00108                                         unsigned short nulVal(0);
00109                                         if (nulValue) nulVal 
00110                                                 = static_cast<unsigned short>(*nulValue);                                 
00111                                         FITSUtil::fill(image,
00112                                                 extimage.readImage(first,nElements,&nulVal));
00113                                 }
00114                                 else
00115                                 {
00116                                         ImageExt<short>& extimage 
00117                                                         = dynamic_cast<ImageExt<short>&>(*this);
00118                                         short nulVal(0);
00119                                         if (nulValue) nulVal = static_cast<short>(*nulValue);                                 
00120                                         FITSUtil::fill(image,
00121                                                 extimage.readImage(first,nElements,&nulVal));
00122                                 }
00123                         }          
00124                         else 
00125                         {
00126                                 throw CCfits::FitsFatal(" casting image types ");
00127                         }     
00128                 }
00129 
00130         }  
00131 
00132         template<typename S>
00133         void ExtHDU::read (std::valarray<S>& image, const std::vector<long>& first,
00134                                 long nElements, 
00135                                 S* nulValue)
00136         {
00137                 makeThisCurrent();
00138                 long firstElement(0);
00139                 long dimSize(1);
00140                 std::vector<long> inputDimensions(naxis(),1);
00141                 size_t sNaxis = static_cast<size_t>(naxis());
00142                 size_t n(std::min(sNaxis,first.size()));
00143                 std::copy(&first[0],&first[0]+n,&inputDimensions[0]);                
00144                 for (long i = 0; i < naxis(); ++i)
00145                 {
00146 
00147                    firstElement +=  ((inputDimensions[i] - 1)*dimSize);
00148                    dimSize *=naxes(i);   
00149                 }
00150                 ++firstElement;                
00151 
00152 
00153                 read(image, firstElement,nElements,nulValue);
00154 
00155 
00156 
00157         } 
00158 
00159         template<typename S>
00160         void ExtHDU::read (std::valarray<S>& image, const std::vector<long>& first, 
00161                                 long nElements) 
00162         {
00163                 makeThisCurrent();
00164                 read(image, first,nElements,static_cast<S*>(0));
00165 
00166         } 
00167 
00168         template<typename S>
00169         void ExtHDU::read (std::valarray<S>& image, const std::vector<long>& firstVertex, 
00170                                 const std::vector<long>& lastVertex, 
00171                                 const std::vector<long>& stride, 
00172                                 S* nulValue)
00173         {
00174                 makeThisCurrent();
00175                 if (ImageExt<S>* extimage = dynamic_cast<ImageExt<S>*>(this))
00176                 {
00177                         const std::valarray<S>& __tmp 
00178                                       = extimage->readImage(firstVertex,lastVertex,stride,nulValue);
00179                         image.resize(__tmp.size());
00180                         image = __tmp;
00181                 }
00182                 else
00183                 {
00184                         // FITSutil::fill will take care of sizing.
00185                         if (bitpix() == Ifloat)
00186                         {
00187                                 float nulVal(0);
00188                                 if (nulValue) nulVal = static_cast<float>(*nulValue);                                 
00189                                 ImageExt<float>& extimage = dynamic_cast<ImageExt<float>&>(*this);
00190                                 FITSUtil::fill(image,
00191                                         extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00192                         }
00193                         else if (bitpix() == Idouble)
00194                         {
00195                                 ImageExt<double>& extimage = dynamic_cast<ImageExt<double>&>(*this);
00196                                 double nulVal(0);
00197                                 if (nulValue) nulVal = static_cast<double>(*nulValue);                                 
00198                                 FITSUtil::fill(image,
00199                                          extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00200                         }
00201                         else if (bitpix() == Ibyte)
00202                         {
00203                                 ImageExt<unsigned char>& extimage 
00204                                                 = dynamic_cast<ImageExt<unsigned char>&>(*this);
00205                                 unsigned char nulVal(0);
00206                                 if (nulValue) nulVal = static_cast<unsigned char>(*nulValue);                                 
00207                                 FITSUtil::fill(image,
00208                                          extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00209                         } 
00210                         else if (bitpix() == Ilong)
00211                         {
00212                                 if ( zero() == ULBASE && scale() == 1)
00213                                 {                                
00214                                         ImageExt<unsigned INT32BIT>& extimage 
00215                                                 = dynamic_cast<ImageExt<unsigned INT32BIT>&>(*this);
00216                                         unsigned INT32BIT nulVal(0);
00217                                         if (nulValue) 
00218                                                 nulVal = static_cast<unsigned INT32BIT>(*nulValue);                                 
00219                                         FITSUtil::fill(image,
00220                                          extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00221                                 }
00222                                 else
00223                                 {
00224                                         ImageExt<INT32BIT>& extimage = dynamic_cast<ImageExt<INT32BIT>&>(*this);
00225                                         INT32BIT nulVal(0);
00226                                         if (nulValue) nulVal = static_cast<INT32BIT>(*nulValue);                                 
00227                                         FITSUtil::fill(image,
00228                                          extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00229                                 }
00230                         }    
00231                         else if (bitpix() == Ishort)
00232                         {
00233                                 if ( zero() == USBASE && scale() == 1)
00234                                 {                                
00235                                         ImageExt<unsigned short>& extimage 
00236                                                 = dynamic_cast<ImageExt<unsigned short>&>(*this);
00237                                         unsigned short nulVal(0);
00238                                         if (nulValue) nulVal 
00239                                                 = static_cast<unsigned short>(*nulValue);                                 
00240                                         FITSUtil::fill(image,
00241                                          extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00242                                 }
00243                                 else
00244                                 {        
00245                                         ImageExt<short>& extimage 
00246                                                         = dynamic_cast<ImageExt<short>&>(*this);
00247                                         short nulVal(0);
00248                                         if (nulValue) nulVal = static_cast<short>(*nulValue);                                 
00249                                         FITSUtil::fill(image,
00250                                          extimage.readImage(firstVertex,lastVertex,stride,&nulVal));
00251                                 }
00252                         }          
00253                         else 
00254                         {
00255                                 throw CCfits::FitsFatal(" casting image types ");
00256                         }     
00257                 }
00258         }  
00259 
00260         template<typename S>
00261         void ExtHDU::read (std::valarray<S>& image, const std::vector<long>& firstVertex, 
00262                                 const std::vector<long>& lastVertex, 
00263                                 const std::vector<long>& stride) 
00264         {
00265                 makeThisCurrent();
00266                 read(image, firstVertex,lastVertex,stride,static_cast<S*>(0));
00267         }  
00268 
00269         template <typename S>
00270         void ExtHDU::write(long first,long nElements,const std::valarray<S>& data,S* nulValue)
00271         {                
00272                 // throw if we called image read/write operations on a table.
00273                 makeThisCurrent();
00274                 if (ImageExt<S>* extimage = dynamic_cast<ImageExt<S>*>(this))
00275                 {
00276                         extimage->writeImage(first,nElements,data,nulValue);
00277                 }
00278                 else
00279                 {
00280                         if (bitpix() == Ifloat)
00281                         {
00282                                 std::valarray<float> __tmp;                               
00283                                 ImageExt<float>& imageExt = dynamic_cast<ImageExt<float>&>(*this);
00284                                 FITSUtil::fill(__tmp,data);
00285                                 float* pfNullValue = 0;
00286                                 float fNullValue = 0.0;
00287                                 if (nulValue)
00288                                 {
00289                                    fNullValue = static_cast<float>(*nulValue);
00290                                    pfNullValue = &fNullValue;
00291                                 }
00292                                 imageExt.writeImage(first,nElements,__tmp, pfNullValue);
00293                         }
00294                         else if (bitpix() == Idouble)
00295                         {
00296                                 std::valarray<double> __tmp;                                
00297                                 ImageExt<double>& imageExt 
00298                                                 = dynamic_cast<ImageExt<double>&>(*this);
00299                                 FITSUtil::fill(__tmp,data);
00300                                 double* pdNullValue = 0;
00301                                 double dNullValue = 0.0;
00302                                 if (nulValue)
00303                                 {
00304                                    dNullValue = static_cast<double>(*nulValue);
00305                                    pdNullValue = &dNullValue;
00306                                 }
00307                                 imageExt.writeImage(first,nElements,__tmp,pdNullValue);                              
00308                         }
00309                         else if (bitpix() == Ibyte)
00310                         {
00311                                 ImageExt<unsigned char>& imageExt 
00312                                                 = dynamic_cast<ImageExt<unsigned char>&>(*this);
00313                                 std::valarray<unsigned char> __tmp; 
00314                                 FITSUtil::fill(__tmp,data);                                        
00315                                 unsigned char *pbNull=0;
00316                                 unsigned char bNull=0;
00317                                 if (nulValue)
00318                                 {
00319                                    bNull = static_cast<unsigned char>(*nulValue);
00320                                    pbNull = &bNull;
00321                                 }                                        
00322                                 imageExt.writeImage(first,nElements,__tmp, pbNull); 
00323 
00324                         } 
00325                         else if (bitpix() == Ilong)
00326                         {                               
00327                                 if ( zero() == ULBASE && scale() == 1)
00328                                 {                                
00329                                         ImageExt<unsigned INT32BIT>& imageExt
00330                                                = dynamic_cast<ImageExt<unsigned INT32BIT>&>(*this);
00331                                         std::valarray<unsigned INT32BIT> __tmp;
00332 
00333                                         FITSUtil::fill(__tmp,data);
00334                                         unsigned INT32BIT *plNull=0;
00335                                         unsigned INT32BIT lNull=0;
00336                                         if (nulValue)
00337                                         {
00338                                            lNull = static_cast<unsigned INT32BIT>(*nulValue);
00339                                            plNull = &lNull;
00340                                         }                                        
00341                                         imageExt.writeImage(first,nElements,__tmp,plNull);                          
00342                                 }
00343                                 else
00344                                 {                        
00345                                         ImageExt<INT32BIT>& imageExt 
00346                                                         = dynamic_cast<ImageExt<INT32BIT>&>(*this);
00347                                         std::valarray<INT32BIT> __tmp;                                 
00348                                         FITSUtil::fill(__tmp,data);                                        
00349                                         INT32BIT *plNull=0;
00350                                         INT32BIT lNull=0;
00351                                         if (nulValue)
00352                                         {
00353                                            lNull = static_cast<INT32BIT>(*nulValue);
00354                                            plNull = &lNull;
00355                                         }                                        
00356                                         imageExt.writeImage(first,nElements,__tmp,plNull);                          
00357                                 }                        
00358                         }    
00359                         else if (bitpix() == Ishort)
00360                         {
00361                                 if ( zero() == USBASE && scale() == 1)
00362                                 {                                
00363                                         ImageExt<unsigned short>& imageExt
00364                                                  = dynamic_cast<ImageExt<unsigned short>&>(*this);
00365                                         std::valarray<unsigned short> __tmp;
00366                                         FITSUtil::fill(__tmp,data);
00367                                         unsigned short *psNull=0;
00368                                         unsigned short sNull=0;
00369                                         if (nulValue)
00370                                         {
00371                                            sNull = static_cast<unsigned short>(*nulValue);
00372                                            psNull = &sNull;
00373                                         }                                        
00374                                         imageExt.writeImage(first,nElements,__tmp,psNull);                          
00375                                 }
00376                                 else
00377                                 {             
00378                                         ImageExt<short>& imageExt 
00379                                                         = dynamic_cast<ImageExt<short>&>(*this);
00380                                         std::valarray<short> __tmp; 
00381                                         FITSUtil::fill(__tmp,data);                                        
00382                                         short *psNull=0;
00383                                         short sNull=0;
00384                                         if (nulValue)
00385                                         {
00386                                            sNull = static_cast<short>(*nulValue);
00387                                            psNull = &sNull;
00388                                         }                                        
00389                                         imageExt.writeImage(first,nElements,__tmp,psNull);                          
00390                                 } 
00391                         }        
00392                         else
00393                         {
00394                                 FITSUtil::MatchType<S> errType;                                
00395                                 throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType()));
00396                         }        
00397                 }
00398         }
00399 
00400         template <typename S>
00401         void ExtHDU::write(long first,
00402                             long nElements,const std::valarray<S>& data)
00403         {
00404            write(first, nElements, data, static_cast<S*>(0));                
00405         }
00406 
00407         template <typename S>
00408         void ExtHDU::write(const std::vector<long>& first,
00409                         long nElements,
00410                         const std::valarray<S>& data,
00411                         S* nulValue)
00412         {        
00413                 // throw if we called image read/write operations on a table.
00414                 makeThisCurrent();
00415                 size_t n(first.size());
00416                 long firstElement(0);
00417                 long dimSize(1);
00418                 for (long i = 0; i < first.size(); ++i)
00419                 {
00420                         firstElement +=  ((first[i] - 1)*dimSize);
00421                         dimSize *=naxes(i);   
00422                 }       
00423                 ++firstElement;
00424 
00425                 write(firstElement,nElements,data,nulValue);
00426         }
00427 
00428         template <typename S>
00429         void ExtHDU::write(const std::vector<long>& first,
00430                         long nElements,
00431                         const std::valarray<S>& data)
00432         {        
00433                 // throw if we called image read/write operations on a table.
00434                 makeThisCurrent();
00435                 size_t n(first.size());
00436                 long firstElement(0);
00437                 long dimSize(1);
00438                 for (long i = 0; i < first.size(); ++i)
00439                 {
00440 
00441                         firstElement +=  ((first[i] - 1)*dimSize);
00442                         dimSize *=naxes(i);   
00443                 }       
00444                 ++firstElement;
00445 
00446                 write(firstElement,nElements,data);                     
00447         }        
00448 
00449 
00450         template <typename S>
00451         void ExtHDU::write(const std::vector<long>& firstVertex,
00452                         const std::vector<long>& lastVertex,
00453                         const std::valarray<S>& data)
00454         {
00455                 makeThisCurrent();
00456                 if (ImageExt<S>* extimage = dynamic_cast<ImageExt<S>*>(this))
00457                 {
00458                         extimage->writeImage(firstVertex,lastVertex,data);  
00459                 }
00460                 else
00461                 {
00462                          // write input type S to Image type...
00463 
00464                         if (bitpix() == Ifloat)
00465                         {
00466                                 ImageExt<float>& extimage = dynamic_cast<ImageExt<float>&>(*this);
00467                                 size_t n(data.size());
00468                                 std::valarray<float> __tmp(n);
00469                                 for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00470                                 extimage.writeImage(firstVertex,lastVertex,__tmp);
00471 
00472                         }
00473                         else if (bitpix() == Idouble)
00474                         {
00475                                 ImageExt<double>& extimage 
00476                                         = dynamic_cast<ImageExt<double>&>(*this);
00477                                 size_t n(data.size());
00478                                 std::valarray<double> __tmp(n);
00479                                 for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00480                                 extimage.writeImage(firstVertex,lastVertex,__tmp);
00481                         }
00482                         else if (bitpix() == Ibyte)
00483                         {
00484                                 ImageExt<unsigned char>& extimage 
00485                                         = dynamic_cast<ImageExt<unsigned char>&>(*this);
00486                                 size_t n(data.size());
00487                                 std::valarray<unsigned char> __tmp(n);
00488                                 for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00489                                 extimage.writeImage(firstVertex,lastVertex,__tmp);                        
00490                         } 
00491                         else if (bitpix() == Ilong)
00492                         {
00493                                 if ( zero() == ULBASE && scale() == 1)
00494                                 {                                
00495                                         ImageExt<unsigned INT32BIT>& extimage 
00496                                                 = dynamic_cast<ImageExt<unsigned INT32BIT>&>(*this);
00497                                         size_t n(data.size());
00498                                         std::valarray<unsigned INT32BIT> __tmp(n);
00499                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00500                                         extimage.writeImage(firstVertex,lastVertex,__tmp);    
00501                                 }
00502                                 else                              
00503                                 {
00504                                         ImageExt<INT32BIT>& extimage 
00505                                                         = dynamic_cast<ImageExt<INT32BIT>&>(*this);
00506                                         size_t n(data.size());
00507                                         std::valarray<INT32BIT> __tmp(n);
00508                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00509                                         extimage.writeImage(firstVertex,lastVertex,__tmp);
00510                                 }                              
00511                         }    
00512                         else if (bitpix() == Ishort)
00513                         {
00514                                 if ( zero() == USBASE && scale() == 1)
00515                                 {
00516                                         ImageExt<unsigned short>& extimage 
00517                                                 = dynamic_cast<ImageExt<unsigned short>&>(*this);
00518                                         size_t n(data.size());
00519                                         std::valarray<unsigned short> __tmp(n);
00520                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00521                                         extimage.writeImage(firstVertex,lastVertex,__tmp);  
00522                                 }
00523                                 else
00524                                 {                    
00525                                         ImageExt<short>& extimage 
00526                                                         = dynamic_cast<ImageExt<short>&>(*this);
00527                                         size_t n(data.size());
00528                                         std::valarray<short> __tmp(n);
00529                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00530                                         extimage.writeImage(firstVertex,lastVertex,__tmp);     
00531                                 }                             
00532                         }          
00533                         else
00534                         {
00535                                 FITSUtil::MatchType<S> errType;                                
00536                                 throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType()));
00537                         }        
00538                 }  
00539         }  
00540 
00541 
00542 } //namespace CCfits
00543 
00544 #endif
CCfits/html/FITS_8h_source.html0000644000225700000360000012671211667502524016116 0ustar cagordonlhea CCfits: FITS.h Source File
CCfits  2.4
FITS.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef FITS_H
00010 #define FITS_H 1
00011 
00012 // exception
00013 #include <exception>
00014 // string
00015 #include <string>
00016 // map
00017 #include <map>
00018 // ExtHDU
00019 #include "ExtHDU.h"
00020 // HDUCreator
00021 #include "HDUCreator.h"
00022 // FitsError
00023 #include "FitsError.h"
00024 
00025 namespace CCfits {
00026   class FITSBase;
00027   class PHDU;
00028   class Table;
00029 
00030 } // namespace CCfits
00031 //class PHDU;
00032 extern "C"
00033 {
00034 #       include <sys/stat.h>
00035 }           
00036 #include <memory>
00037 
00038 
00039 namespace CCfits {
00664   //    ! The FITS object class. Contains a primary HDU and Extensions indexed by name.
00665 
00666 
00667 
00668   class FITS 
00669   {
00670 
00671     public:
00672 
00673 
00674 
00675       class NoSuchHDU : public FitsException  //## Inherits: <unnamed>%396C90CB0236
00676       {
00677         public:
00678             NoSuchHDU (const String& diag, bool silent = true);
00679 
00680         protected:
00681         private:
00682         private: //## implementation
00683       };
00684 
00685 
00686 
00687       class OperationNotSupported : public FitsException  //## Inherits: <unnamed>%39806C7600D5
00688       {
00689         public:
00690             OperationNotSupported (const String& msg, bool silent = true);
00691 
00692         protected:
00693         private:
00694         private: //## implementation
00695       };
00696 
00697 
00698 
00699       class CantOpen : public FitsException  //## Inherits: <unnamed>%39C8EB1D02C0
00700       {
00701         public:
00702             CantOpen (const String& diag, bool silent = true);
00703 
00704         protected:
00705         private:
00706         private: //## implementation
00707       };
00708 
00709 
00710 
00711       struct CantCreate : public FitsException  //## Inherits: <unnamed>%39C8EB10020B
00712       {
00713             CantCreate (const String& diag, bool silent = false);
00714 
00715         public:
00716         protected:
00717         private:
00718         private: //## implementation
00719       };
00720         FITS (const String &name, RWmode mode = Read, bool readDataFlag = false, const std::vector<String>& primaryKeys = std::vector<String>());
00721         //      Open a file and read a specified HDU.
00722         //
00723         //      Optional parameter allows the reading of specified primary HDU keys.
00724         FITS (const String &name, RWmode mode, const string &hduName, bool readDataFlag = false, const std::vector<String>& hduKeys = std::vector<String>(), const std::vector<String>& primaryKey = std::vector<String>(), int version = 1);
00725         //      Read data from a set of specified HDUs. keywords can only be specified for the primary here.
00726         //      The code will call a different constructor for the case where keywords are required for
00727         //      the extensions.
00728         FITS (const String &name, RWmode mode, const std::vector<String>& hduNames, bool readDataFlag = false, const std::vector<String>& primaryKey = std::vector<String>());
00729         //      Initialize a new FITS file object with the primary from a
00730         //      different file.
00731         FITS (const String& fileName, const FITS& source);
00732         //      Fully general FITS HDU reader. May read any part of fits file by
00733         //      supplying HDU names and version numbers, and optionally
00734         //      the data read flag.
00735         FITS (const String &name, RWmode mode, const std::vector<String>& hduNames, const std::vector<std::vector<String> >& hduKeys, bool readDataFlag = false, const std::vector<String>& primaryKeys = std::vector<String>(), const std::vector<int>& hduVersions = std::vector<int>());
00736         //      Writing constructor. Takes a name and information to create an empty
00737         //      Primary HDU which can then be filled with calls to HDU methods.
00738         FITS (const String& name, int bitpix, int naxis, long *naxes);
00739         //      Open a file and read a specified HDU.
00740         //
00741         //      Optional parameter allows the reading of specified primary HDU keys.
00742         FITS (const string &name, RWmode mode, int hduIndex, bool readDataFlag = false, const std::vector<String>& hduKeys = std::vector<String>(), const std::vector<String>& primaryKey = std::vector<String>());
00743         //      Open a file and read a HDU that contains  specified
00744         //      search keywords with [optional] specified values
00745         //      (sometimes one just wants to know that the keyword is present).
00746         //
00747         //      Optional parameters allows the reading of specified primary HDU keys and specified keywords in
00748         //      the HDU of interest.
00749         FITS (const String &name, RWmode mode, const std::vector<String>& searchKeys, const std::vector<String> &searchValues, bool readDataFlag = false, const std::vector<String>& hduKeys = std::vector<String>(), const std::vector<String>& primaryKey = std::vector<string>(), int version = 1);
00750         ~FITS();
00751 
00752         static void clearErrors ();
00753         void deleteExtension (const String& doomed, int version = 1);
00754         //      Read keys and data from a single ExtHDU in the file.
00755         void read (const String &hduName, bool readDataFlag = false, const std::vector<String> &keys = std::vector<String>(), int version = 1);
00756         //      Read multiple ExtHDUs. If the version number needs to be specified then one must call a
00757         //      different method.
00758         void read (const std::vector<String> &hduNames, bool readDataFlag = false);
00759         //      Read selected data from multiple ExtHDUs
00760         void read (const std::vector<String> &hduNames, const std::vector<std::vector<String> > &keys, bool readDataFlag = false, const std::vector<int>& hduVersions = std::vector<int>());
00761         //      Read keys and data from a single ExtHDU in the file.
00762         void read (int hduIndex,        // Construct and Read HDU specified by number. One can add further HDUs by number using
00763                 // the HDUCreator factory.
00764         bool readDataFlag = false, const std::vector<String> &keys = std::vector<String>());
00765         //      Open a file and read a HDU that contains  specified
00766         //      search keywords with [optional] specified values
00767         //      (sometimes one just wants to know that the keyword is present).
00768         //
00769         //      Optional parameters allows the reading of specified primary HDU keys and specified keywords in
00770         //      the HDU of interest.
00771         void read (const std::vector<String>& searchKeys, const std::vector<String> &searchValues, bool readDataFlag = false, const std::vector<String>& hduKeys = std::vector<String>(), int version = 1);
00772         const ExtHDU& extension (int i) const;
00773         fitsfile* fitsPointer () const;
00774         ExtHDU& extension (int i);
00775         const ExtHDU& extension (const String& hduName, int version = 1) const;
00776         const PHDU& pHDU () const;
00777         PHDU& pHDU ();
00778         ExtHDU& extension (const String& hduName, int version = 1);
00779         friend std::ostream& operator << (std::ostream& s, const FITS& right);
00780         //      ! add a new Table extension to a FITS object
00781         Table* addTable (const String& hduName, int rows,       // ! Number of rows in new table. Mandatory
00782         const std::vector<String>& columnName = std::vector<String>(),  // ! Optional set of column names for new table
00783         const std::vector<String>& columnFmt = std::vector<String>(),   // ! Column formats for column units. Mandatory if columnName is specified
00784         const std::vector<String>& columnUnit = std::vector<String>(),  // ! Column formats for column units. Optional
00785         HduType type = BinaryTbl, int version = 1);
00786         //      ! add a new ImageExt (image extension) to the FITS object. A "writing" method.
00787         ExtHDU* addImage (const String& hduName, int bpix, std::vector<long>& naxes, int version = 1);
00788         //      Force destruction of the FITS object. Essentially
00789         //      is a manual destructor call.
00790         void destroy () throw ();
00791         void flush ();
00792         const String& currentExtensionName () const;
00793         const ExtMap& extension () const;
00794         void resetPosition ();
00795         void currentExtensionName (const String& extName);
00796         const String& name () const;
00797         void copy (const HDU& source);
00798         Table& filter (const String& expression, ExtHDU& inputTable, bool overwrite = true, bool readData = false);
00799         ExtHDU& currentExtension ();
00800         void deleteExtension (int doomed);
00801         void setCompressionType (int compType);
00802         void setTileDimensions (const std::vector<long>& tileSizes);
00803         void setNoiseBits (int noiseBits);
00804         int getCompressionType () const;
00805         void getTileDimensions (std::vector<long>& tileSizes) const;
00806         int getNoiseBits () const;
00807         static bool verboseMode ();
00808         static void setVerboseMode (bool value);
00809 
00810     public:
00811       // Additional Public Declarations
00812 
00813     protected:
00814       // Additional Protected Declarations
00815 
00816     private:
00817         FITS(const FITS &right);
00818         FITS & operator=(const FITS &right);
00819 
00820         void unmapExtension (ExtHDU& doomed);
00821         int nextVersionNumber (const String& inputName) const;
00822         //      read the primary HDU. Read the image if
00823         //      readDataFlag is true.
00824         void read (bool readDataFlag = false, const std::vector<String>& keys = std::vector<String>());
00825         //      Returns index of current HDU where primary = 0.  (Extended file syntax may cause a shift to an
00826         //      extension.)
00827         int open (RWmode mode = Read);
00828         //      Create returns true if a new file was created or an
00829         //      existing file overwritten, false if appending.
00830         //
00831         //
00832         //      It throws exception CantCreate or CantOpen if either fails.
00833         bool create ();
00834         //      Close the fits file.
00835         //
00836         //      Called in destructors so must not throw.
00837         int close () throw ();
00838         std::ostream & put (std::ostream &s) const;
00839         ExtHDU& extbyVersion (const String& hduName, int version) const;
00840         void pHDU (PHDU* value);
00841         void readExtensions (bool readDataFlag = false);
00842         ExtHDU* addExtension (ExtHDU* ext);
00843         void swap (FITS& right);
00844         ExtMap& extensionMap ();
00845         String nameOfUnmapped (int hduNum) const;
00846         void cloneHeader (const ExtHDU& source);
00847 
00848         // Check if caller is requesting an already read ExtHDU (ie. one
00849         // that's already been added to ExtMap).  If hduIdx=0, check by
00850         // matching name and optional version.  Otherwise check by matching
00851         // hduIdx.  If found, returns pointer to the ExtHDU.  Otherwise
00852         // returns 0.  This will not throw.
00853         ExtHDU* checkAlreadyRead(const int hduIdx, 
00854                     const String& hduName = string(""), const int version=1) const throw();
00855 
00856       // Additional Private Declarations
00857 
00858     private: //## implementation
00859       // Data Members for Class Attributes
00860         static bool s_verboseMode;
00861 
00862       // Data Members for Associations
00863         FITSBase* m_FITSImpl;
00864 
00865       // Additional Implementation Declarations
00866       friend void HDU::makeThisCurrent() const;
00867   };
00868 
00869   // Class CCfits::FITS::NoSuchHDU 
00870 
00871   // Class CCfits::FITS::OperationNotSupported 
00872 
00873   // Class CCfits::FITS::CantOpen 
00874 
00875   // Class CCfits::FITS::CantCreate 
00876 
00877   // Class CCfits::FITS 
00878 
00879   inline ExtHDU& FITS::extension (const String& hduName, int version)
00880   {
00881 
00882     return extbyVersion(hduName,version);
00883   }
00884 
00885   inline std::ostream& operator << (std::ostream& s, const FITS& right)
00886   {
00887 
00888     return right.put(s);
00889   }
00890 
00891   inline bool FITS::verboseMode ()
00892   {
00893     return s_verboseMode;
00894   }
00895 
00896   inline void FITS::setVerboseMode (bool value)
00897   {
00898     s_verboseMode = value;
00899   }
00900 
00901 } // namespace CCfits
00902 
00903 
00904 #endif
CCfits/html/FITSBase_8h_source.html0000644000225700000360000002402711667502524016705 0ustar cagordonlhea CCfits: FITSBase.h Source File
CCfits  2.4
FITSBase.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef FITSBASE_H
00010 #define FITSBASE_H 1
00011 
00012 // fitsio
00013 #include "fitsio.h"
00014 // string
00015 #include <string>
00016 // map
00017 #include <map>
00018 // CCfitsHeader
00019 #include "CCfits.h"
00020 
00021 namespace CCfits {
00022   class PHDU;
00023   class ExtHDU;
00024 
00025 } // namespace CCfits
00026 using std::string;
00027 
00028 
00029 namespace CCfits {
00030 
00031 
00032 
00033   class FITSBase 
00034   {
00035 
00036     public:
00037         FITSBase (const String& fileName, RWmode rwmode);
00038         ~FITSBase();
00039 
00040         void destroyPrimary ();
00041         void destroyExtensions ();
00042         int currentCompressionTileDim () const;
00043         void currentCompressionTileDim (int value);
00044         RWmode mode ();
00045         std::string& currentExtensionName ();
00046         std::string& name ();
00047         PHDU*& pHDU ();
00048         ExtMap& extension ();
00049 
00050         const ExtMap& extension() const;
00051         fitsfile*& fptr ();
00052 
00053       // Additional Public Declarations
00054 
00055     protected:
00056       // Additional Protected Declarations
00057 
00058     private:
00059         FITSBase(const FITSBase &right);
00060         FITSBase & operator=(const FITSBase &right);
00061 
00062       // Additional Private Declarations
00063 
00064     private: //## implementation
00065       // Data Members for Class Attributes
00066         int m_currentCompressionTileDim;
00067 
00068       // Data Members for Associations
00069         RWmode m_mode;
00070         std::string m_currentExtensionName;
00071         std::string m_name;
00072         PHDU* m_pHDU;
00073         ExtMap m_extension;
00074         fitsfile* m_fptr;
00075 
00076       // Additional Implementation Declarations
00077 
00078   };
00079 
00080   // Class CCfits::FITSBase 
00081 
00082   inline int FITSBase::currentCompressionTileDim () const
00083   {
00084     return m_currentCompressionTileDim;
00085   }
00086 
00087   inline void FITSBase::currentCompressionTileDim (int value)
00088   {
00089     m_currentCompressionTileDim = value;
00090   }
00091 
00092   inline RWmode FITSBase::mode ()
00093   {
00094     return m_mode;
00095   }
00096 
00097   inline std::string& FITSBase::currentExtensionName ()
00098   {
00099     return m_currentExtensionName;
00100   }
00101 
00102   inline std::string& FITSBase::name ()
00103   {
00104     return m_name;
00105   }
00106 
00107   inline PHDU*& FITSBase::pHDU ()
00108   {
00109     return m_pHDU;
00110   }
00111 
00112   inline ExtMap& FITSBase::extension ()
00113   {
00114     return m_extension;
00115   }
00116 
00117   inline const ExtMap& FITSBase::extension() const
00118   {
00119      return m_extension;
00120   }
00121 
00122   inline fitsfile*& FITSBase::fptr ()
00123   {
00124     return m_fptr;
00125   }
00126 
00127 } // namespace CCfits
00128 
00129 
00130 #endif
CCfits/html/FitsError_8h_source.html0000644000225700000360000002227711667502524017271 0ustar cagordonlhea CCfits: FitsError.h Source File
CCfits  2.4
FitsError.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef FITSERROR_H
00010 #define FITSERROR_H 1
00011 #include <exception>
00012 #include <iostream>
00013 //#include <exception>
00014 //#include <iostream>
00015 //#include <stl.h>
00016 #include <string>
00017 using std::string;
00018 
00019 
00020 namespace CCfits {
00021 
00088   //    Base class for exceptions generated by CCfits that don't
00089   //    return FITS error codes (for example, array errors or seek errors).
00090 
00091 
00092 
00093   class FitsException 
00094   {
00095     public:
00096         FitsException (const string& msg, bool& silent);
00097 
00098         const string& message () const;
00099 
00100     protected:
00101         void addToMessage (const string& msgQual);
00102 
00103     private:
00104     private: //## implementation
00105       // Data Members for Class Attributes
00106         string m_message;
00107 
00108   };
00109 
00110 
00111 
00112   class FitsError : public FitsException  //## Inherits: <unnamed>%399170BD017D
00113   {
00114     public:
00115         FitsError (int errornum, bool silent = true);
00116 
00117     protected:
00118     private:
00119         void printMsg (int error);
00120 
00121     private: //## implementation
00122   };
00123 
00124 
00125 
00126   class FitsFatal 
00127   {
00128     public:
00129         FitsFatal (const string& diag);
00130 
00131     protected:
00132     private:
00133     private: //## implementation
00134   };
00135 
00136   // Class CCfits::FitsException 
00137 
00138   inline const string& FitsException::message () const
00139   {
00140      return m_message;
00141   }
00142 
00143   // Class CCfits::FitsError 
00144 
00145   // Class CCfits::FitsFatal 
00146 
00147 } // namespace CCfits
00148 
00149 
00150 #endif
CCfits/html/FITSUtil_8h_source.html0000644000225700000360000022412111667502524016745 0ustar cagordonlhea CCfits: FITSUtil.h Source File
CCfits  2.4
FITSUtil.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef FITSUTIL_H
00010 #define FITSUTIL_H 1
00011 #include "CCfits.h"
00012 
00013 // functional
00014 #include <functional>
00015 // complex
00016 #include <complex>
00017 // valarray
00018 #include <valarray>
00019 // vector
00020 #include <vector>
00021 // string
00022 #include <string>
00023 // FitsError
00024 #include "FitsError.h"
00025 #include <typeinfo>
00026 
00027 
00028 namespace CCfits {
00029 
00030   namespace FITSUtil {
00031 
00280 #ifdef _MSC_VER
00281 #include "MSconfig.h" // for truncation double to float warning
00282 #endif
00283 
00284      template <typename T>
00285     void swap(T& left,T& right);
00286 
00287     template <typename T>
00288     void swap(std::vector<T>& left, std::vector<T>& right);
00289 
00290     string lowerCase(const string& inputString);
00291 
00292     string upperCase(const string& inputString);
00293 
00294   // Check if a file name includes an image compression specifier,
00295   // and return its location if it exists.
00296     string::size_type checkForCompressString(const string& fileName);
00297 
00298   struct InvalidConversion : public FitsException
00299   {
00300                 InvalidConversion(const string& diag, bool silent=false);
00301 
00302   };
00303 
00304   struct MatchStem : public std::binary_function<string,string,bool>
00305   {
00306           bool operator()(const string& left, const string& right) const;
00307   };
00308 
00309   static const  double d1(0);
00310   static const  float  f1(0);
00311   static const  std::complex<float> c1(0.);
00312   static const  std::complex<double> d2(0.);
00313   static const  string s1("");
00314   static const  int    i1(0);
00315   static const  unsigned int  u1(0);        
00316   static const  long l1(0);
00317   static const  unsigned long ul1(0);
00318   static const  LONGLONG ll1(0);
00319   static const  short s2(0);
00320   static const  unsigned short us1(0); 
00321   static const  bool b1(false);
00322   static const  unsigned char b2(0);  
00323 
00324   char** CharArray(const std::vector<string>& inArray);
00325 
00326   string FITSType2String( int typeInt );
00327 
00328 
00329   template <typename S, typename T> 
00330   void fill(std::vector<S>& outArray, const std::vector<T>& inArray,size_t first, size_t last);
00331 
00332   template <typename S, typename T> 
00333   void fill(std::valarray<S>& outArray, const std::valarray<T>& inArray);
00334 
00335   template <typename S, typename T> 
00336   void fill(std::valarray<S>& outArray, const std::vector<T>& inArray,size_t first, size_t last);
00337 
00338 
00339   template <typename S, typename T> 
00340   void fill(std::vector<S>& outArray, const std::valarray<T>& inArray);
00341 
00342   // VF<-AF
00343    void fill(std::vector<std::complex<float> >& outArray, 
00344                   const std::valarray<std::complex<float> >& inArray);
00345 
00346   // VF<-AD
00347   void fill(std::vector<std::complex<float> >& outArray, 
00348                   const std::valarray<std::complex<double> >& inArray);
00349 
00350   // VD<-AD
00351   void fill(std::vector<std::complex<double> >& outArray, 
00352                   const std::valarray<std::complex<double> >& inArray);
00353 
00354 
00355   // VD<-AF
00356   void fill(std::vector<std::complex<double> >& outArray, 
00357                   const std::valarray<std::complex<float> >& inArray);
00358 
00359   template <typename T>
00360   void fill(std::vector<string>& outArray, const std::vector<T>& inArray, size_t first, size_t last);
00361 
00362   template <typename T>
00363   void fill(std::vector<T>& outArray, const std::vector<string>& inArray, size_t first, size_t last);
00364 
00365   template <typename S> 
00366   void fill(std::valarray<S>& outArray, const std::vector<string>& inArray,size_t first, size_t last);
00367 
00368 //  template <typename S, typename T>
00369 //  void fill(std::valarray<std::complex<S> >& outArray, const std::valarray<std::complex<T> >& inArray);            
00370   // seems no other way of doing this.
00371 
00372   // VF<-VF
00373 #ifdef TEMPLATE_AMBIG_DEFECT
00374   void fillMSvfvf(std::vector<std::complex<float> >& outArray, 
00375                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00376 #endif
00377 
00378   void fill(std::vector<std::complex<float> >& outArray, 
00379                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00380 
00381   // VF<-VD
00382 #ifdef TEMPLATE_AMBIG_DEFECT
00383     void fillMSvfvd(std::vector<std::complex<float> >& outArray, 
00384                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00385 #endif
00386 
00387    void fill(std::vector<std::complex<float> >& outArray, 
00388                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00389 
00390    // VD<-VD
00391 #ifdef TEMPLATE_AMBIG_DEFECT
00392  void fillMSvdvd(std::vector<std::complex<double> >& outArray, 
00393                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00394 #endif
00395 
00396    void fill(std::vector<std::complex<double> >& outArray, 
00397                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00398 
00399 #ifdef TEMPLATE_AMBIG_DEFECT
00400   void fillMSvdvf(std::vector<std::complex<double> >& outArray, 
00401                                 const std::vector<std::complex<float> >& inArray, 
00402                         size_t first, size_t last);
00403 #else
00404   void fill(std::vector<std::complex<double> >& outArray, 
00405                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00406 #endif
00407 
00408   // AF<-VD
00409   void fill(std::valarray<std::complex<float> >& outArray, 
00410                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00411 
00412   // AF<-VF
00413 #ifdef TEMPLATE_AMBIG_DEFECT
00414  void fillMSafvf(std::valarray<std::complex<float> >& outArray, 
00415                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00416 #else
00417  void fill(std::valarray<std::complex<float> >& outArray, 
00418                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00419 #endif
00420 
00421  // AD<-VF
00422 #ifdef TEMPLATE_AMBIG_DEFECT
00423   void fillMSadvf(std::valarray<std::complex<double> >& outArray, 
00424                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00425 #else
00426   void fill(std::valarray<std::complex<double> >& outArray, 
00427                   const std::vector<std::complex<float> >& inArray, size_t first, size_t last);
00428 #endif
00429 
00430   // AD<-VD
00431 #ifdef TEMPLATE_AMBIG_DEFECT
00432   void fillMSadvd(std::valarray<std::complex<double> >& outArray, 
00433                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00434 #else
00435   void fill(std::valarray<std::complex<double> >& outArray, 
00436                   const std::vector<std::complex<double> >& inArray, size_t first, size_t last);
00437 #endif
00438 
00439   // AF<-AF
00440   void fill(std::valarray<std::complex<float> >& outArray,  
00441                   const std::valarray<std::complex<float> >& inArray);
00442   // AD<-AD
00443   void fill(std::valarray<std::complex<double> >& outArray,  
00444                   const std::valarray<std::complex<double> >& inArray);
00445   // AF<-AD
00446   void fill(std::valarray<std::complex<float> >& outArray, 
00447                   const std::valarray<std::complex<double> >& inArray);
00448   // AD<-AF
00449   void fill(std::valarray<std::complex<double> >& outArray,  
00450                   const std::valarray<std::complex<float> >& inArray);
00451 
00452 #if TEMPLATE_AMBIG_DEFECT || TEMPLATE_AMBIG7_DEFECT
00453   void fillMSvsvs(std::vector<string>& outArray, const std::vector<string>& inArray, size_t first, size_t last);
00454 #endif
00455 
00456 
00457   void fill(std::vector<string>& outArray, const std::vector<string>& inArray, size_t first, size_t last);
00458 
00459   template <typename S, typename T>
00460   string errorMessage(const S& out, const T& in);
00461 
00462 
00463 
00464     template <class T>
00465     struct MatchPtrName : public std::binary_function<T,std::string,bool>  //## Inherits: <unnamed>%39491BC9025D
00466     {
00467           //    Parameterized Class MatchPtrName
00468           bool operator () (const T& left, const string& right) const;
00469 
00470       public:
00471       protected:
00472       private:
00473       private: //## implementation
00474     };
00475 
00476 
00477 
00478     template <class T>
00479     struct MatchName : public std::binary_function<T,std::string,bool>  //## Inherits: <unnamed>%39491BC50121
00480     {
00481           bool operator () (const T& left, const string& right) const;
00482 
00483       public:
00484       protected:
00485       private:
00486       private: //## implementation
00487     };
00488 
00489 
00490 
00491     template <class T>
00492     struct MatchNum : public std::binary_function<T,int,bool>  //## Inherits: <unnamed>%39491BCE01C0
00493     {
00494           bool operator () (const T& left, const int& right) const;
00495 
00496       public:
00497       protected:
00498       private:
00499       private: //## implementation
00500     };
00501 
00502 
00503 
00504     template <typename T>
00505     struct MatchType 
00506     {
00507           ValueType operator () ();
00508 
00509       public:
00510       protected:
00511       private:
00512       private: //## implementation
00513     };
00514 
00515 
00516 
00517     template <typename T>
00518     struct CVarray 
00519     {
00520           T* operator () (const std::vector<T>& inArray);
00521 
00522       public:
00523       protected:
00524       private:
00525       private: //## implementation
00526     };
00527 
00528 
00529 
00530     template <typename T>
00531     struct FitsNullValue 
00532     {
00533           T operator () ();
00534 
00535       public:
00536       protected:
00537       private:
00538       private: //## implementation
00539     };
00540 
00541 
00542 
00543     template <typename T>
00544     struct MatchImageType 
00545     {
00546           ImageType operator () ();
00547 
00548       public:
00549       protected:
00550       private:
00551       private: //## implementation
00552     };
00553 
00554 
00555 
00556     template <class T>
00557     struct MatchPtrNum : public std::binary_function<T,int,bool>  //## Inherits: <unnamed>%39491BD3034B
00558     {
00559           bool operator () (const T& left, const int& right) const;
00560 
00561       public:
00562       protected:
00563       private:
00564       private: //## implementation
00565     };
00566     //  auto_ptr analogue for arrays.
00567 
00568 
00569 
00570     template <typename X>
00571     class auto_array_ptr 
00572     {
00573       public:
00574           explicit auto_array_ptr (X* p = 0) throw ();
00575           explicit auto_array_ptr (auto_array_ptr<X>& right) throw ();
00576           ~auto_array_ptr();
00577 
00578           void operator = (auto_array_ptr<X>& right);
00579           X& operator * () throw ();
00580           X& operator [] (size_t i) throw ();
00581           X operator [] (size_t i) const throw ();
00582           X* get () const;
00583           X* release () throw ();
00584           X* reset (X* p) throw ();
00585           static void remove (X*& x);
00586 
00587       protected:
00588       private:
00589       private: //## implementation
00590         // Data Members for Class Attributes
00591           X* m_p;
00592 
00593     };
00594 
00595 
00596 
00597     template <typename T>
00598     struct ComparePtrIndex : public std::binary_function<T,T,bool>  //## Inherits: <unnamed>%3B24DB930299
00599     {
00600           bool operator () (const T* left, const T* right);
00601 
00602       public:
00603       protected:
00604       private:
00605       private: //## implementation
00606     };
00607 
00608 
00609 
00610     template <typename T>
00611     struct CAarray 
00612     {
00613           T* operator () (const std::valarray<T>& inArray);
00614 
00615       public:
00616       protected:
00617       private:
00618       private: //## implementation
00619     };
00620 
00621 
00622 
00623     template <typename T>
00624     struct CVAarray 
00625     {
00626           T* operator () (const std::vector< std::valarray<T> >& inArray);
00627 
00628       public:
00629       protected:
00630       private:
00631       private: //## implementation
00632     };
00633 
00634 
00635 
00636     class UnrecognizedType : public FitsException  //## Inherits: <unnamed>%3CE143AB00C6
00637     {
00638       public:
00639           UnrecognizedType (string diag, bool silent = true);
00640 
00641       protected:
00642       private:
00643       private: //## implementation
00644     };
00645 
00646     // Parameterized Class CCfits::FITSUtil::MatchPtrName 
00647 
00648     template <class T>
00649     inline bool MatchPtrName<T>::operator () (const T& left, const string& right) const
00650     {
00651        return left->name() == right;
00652     }
00653 
00654     // Parameterized Class CCfits::FITSUtil::MatchName 
00655 
00656     template <class T>
00657     inline bool MatchName<T>::operator () (const T& left, const string& right) const
00658     {
00659        return left.name() == right;
00660     }
00661 
00662     // Parameterized Class CCfits::FITSUtil::MatchNum 
00663 
00664     template <class T>
00665     inline bool MatchNum<T>::operator () (const T& left, const int& right) const
00666     {
00667     return left.index() == right;
00668     }
00669 
00670     // Parameterized Class CCfits::FITSUtil::MatchType 
00671 
00672     // Parameterized Class CCfits::FITSUtil::CVarray 
00673 
00674     template <typename T>
00675     inline T* CVarray<T>::operator () (const std::vector<T>& inArray)
00676     {
00677 
00678       // convert std containers used commonly in FITS to C arrays in an exception
00679       // safe manner that is also clear about resource ownership.      
00680       auto_array_ptr<T> pC(new T[inArray.size()]);
00681       T* c = pC.get();
00682       std::copy(inArray.begin(),inArray.end(),&c[0]);
00683       return pC.release();
00684     }
00685 
00686     // Parameterized Class CCfits::FITSUtil::FitsNullValue 
00687 
00688     template <typename T>
00689     inline T FitsNullValue<T>::operator () ()
00690     {
00691        // This works for int types.  Float, complex, and string types 
00692        //   are handled below with specialized templates.
00693        return 0;
00694     }
00695 
00696     // Parameterized Class CCfits::FITSUtil::MatchImageType 
00697 
00698     // Parameterized Class CCfits::FITSUtil::MatchPtrNum 
00699 
00700     template <class T>
00701     inline bool MatchPtrNum<T>::operator () (const T& left, const int& right) const
00702     {
00703     return left->index() == right;
00704     }
00705 
00706     // Parameterized Class CCfits::FITSUtil::auto_array_ptr 
00707 
00708     // Parameterized Class CCfits::FITSUtil::ComparePtrIndex 
00709 
00710     // Parameterized Class CCfits::FITSUtil::CAarray 
00711 
00712     // Parameterized Class CCfits::FITSUtil::CVAarray 
00713 
00714     // Class CCfits::FITSUtil::UnrecognizedType 
00715 
00716     // Parameterized Class CCfits::FITSUtil::MatchPtrName 
00717 
00718     // Parameterized Class CCfits::FITSUtil::MatchName 
00719 
00720     // Parameterized Class CCfits::FITSUtil::MatchNum 
00721 
00722     // Parameterized Class CCfits::FITSUtil::MatchType 
00723 
00724     template <typename T>
00725     ValueType MatchType<T>::operator () ()
00726     {
00727 
00728     if ( typeid(T) == typeid(d1) ) return Tdouble;
00729     if ( typeid(T) == typeid(f1) ) return Tfloat;
00730     if ( typeid(T) == typeid(c1) ) return Tcomplex;
00731     if ( typeid(T) == typeid(d2) ) return Tdblcomplex;
00732     if ( typeid(T) == typeid(s1) ) return Tstring;
00733     if ( typeid(T) == typeid(i1) ) return Tint;
00734     if ( typeid(T) == typeid(u1) ) return Tuint;
00735     if ( typeid(T) == typeid(s2) ) return Tshort;
00736     if ( typeid(T) == typeid(us1) ) return Tushort;
00737     if ( typeid(T) == typeid(b1) ) return Tlogical;
00738     if ( typeid(T) == typeid(b2) ) return Tbyte;
00739     if ( typeid(T) == typeid(l1) ) return Tlong;
00740     if ( typeid(T) == typeid(ul1) ) return Tulong;
00741     // Carefull, on some compilers LONGLONG == long,
00742     // so this should go after test for long.
00743     if ( typeid(T) == typeid(ll1) ) return Tlonglong;
00744     throw UnrecognizedType("Invalid data type for FITS Data I/O\n");    
00745     }
00746 
00747     // Parameterized Class CCfits::FITSUtil::CVarray 
00748 
00749     // Parameterized Class CCfits::FITSUtil::MatchImageType 
00750 
00751     template <typename T>
00752     ImageType MatchImageType<T>::operator () ()
00753     {
00754     if ( typeid(T) == typeid(b2) ) return Ibyte;    
00755     if ( typeid(T) == typeid(s2) ) return Ishort;
00756     if ( typeid(T) == typeid(l1) ) return Ilong;
00757     if ( typeid(T) == typeid(f1) ) return Ifloat;
00758     if ( typeid(T) == typeid(d1) ) return Idouble;
00759     if ( typeid(T) == typeid(us1) ) return Iushort;
00760     if ( typeid(T) == typeid(ul1) ) return Iulong;
00761     MatchType<T> errType;
00762     string diag ("Image: ");
00763     diag += FITSType2String(errType());
00764     throw UnrecognizedType(diag);        
00765     }
00766 
00767     // Parameterized Class CCfits::FITSUtil::MatchPtrNum 
00768 
00769     // Parameterized Class CCfits::FITSUtil::auto_array_ptr 
00770 
00771     template <typename X>
00772     auto_array_ptr<X>::auto_array_ptr (X* p) throw ()
00773           : m_p(p)
00774     {
00775     }
00776 
00777     template <typename X>
00778     auto_array_ptr<X>::auto_array_ptr (auto_array_ptr<X>& right) throw ()
00779           : m_p(right.release())
00780     {
00781     }
00782 
00783 
00784     template <typename X>
00785     auto_array_ptr<X>::~auto_array_ptr()
00786     {
00787       delete [] m_p;
00788     }
00789 
00790 
00791     template <typename X>
00792     void auto_array_ptr<X>::operator = (auto_array_ptr<X>& right)
00793     {
00794       if (this != &right)
00795       {
00796                 remove(m_p);
00797                 m_p = right.release();       
00798       }
00799     }
00800 
00801     template <typename X>
00802     X& auto_array_ptr<X>::operator * () throw ()
00803     {
00804       return *m_p;
00805     }
00806 
00807     template <typename X>
00808     X& auto_array_ptr<X>::operator [] (size_t i) throw ()
00809     {
00810       return m_p[i];
00811     }
00812 
00813     template <typename X>
00814     X auto_array_ptr<X>::operator [] (size_t i) const throw ()
00815     {
00816       return m_p[i];
00817     }
00818 
00819     template <typename X>
00820     X* auto_array_ptr<X>::get () const
00821     {
00822       return m_p;
00823     }
00824 
00825     template <typename X>
00826     X* auto_array_ptr<X>::release () throw ()
00827     {
00828       return reset(0);
00829     }
00830 
00831     template <typename X>
00832     X* auto_array_ptr<X>::reset (X* p) throw ()
00833     {
00834       // set the auto_ptr to manage p and return the old pointer it was managing.
00835       X* __tmp = m_p; 
00836       m_p = p;
00837       return __tmp;
00838     }
00839 
00840     template <typename X>
00841     void auto_array_ptr<X>::remove (X*& x)
00842     {
00843       X* __tmp(x);
00844       x = 0;
00845       delete [] __tmp;
00846     }
00847 
00848     // Parameterized Class CCfits::FITSUtil::ComparePtrIndex 
00849 
00850     template <typename T>
00851     bool ComparePtrIndex<T>::operator () (const T* left, const T* right)
00852     {
00853       return (left->index() < right->index());
00854     }
00855 
00856     // Parameterized Class CCfits::FITSUtil::CAarray 
00857 
00858     template <typename T>
00859     T* CAarray<T>::operator () (const std::valarray<T>& inArray)
00860     {
00861       size_t n(inArray.size());
00862       auto_array_ptr<T> pC(new T[n]);
00863       T* c= pC.get();
00864       for (size_t j = 0; j < n; ++j) c[j] = inArray[j];
00865       return pC.release();      
00866     }
00867 
00868     // Parameterized Class CCfits::FITSUtil::CVAarray 
00869 
00870     template <typename T>
00871     T* CVAarray<T>::operator () (const std::vector< std::valarray<T> >& inArray)
00872     {
00873       size_t  sz(0);
00874       size_t  n(inArray.size());
00875 
00876       std::vector<size_t> nr(n);
00877 
00878       size_t i = 0; // for MS VC++ bug
00879       for ( i = 0; i < n; ++i)
00880       {
00881          nr[i] = inArray[i].size();
00882          sz += nr[i];
00883 
00884       }
00885       auto_array_ptr<T> pC(new T[sz]);
00886       T* c = pC.get();
00887 
00888       size_t k(0);
00889       for ( i = 0; i < n; ++i)
00890       {
00891          size_t& m = nr[i];
00892          const std::valarray<T>& current = inArray[i];
00893          for (size_t j=0; j < m ; ++j) c[k++] = current[j];
00894       }
00895 
00896       return pC.release();      
00897     }
00898 
00899   } // namespace FITSUtil
00900 } // namespace CCfits
00901 
00902 namespace CCfits
00903 {
00904 
00905    namespace FITSUtil
00906    {                
00907 
00908       template <typename T>
00909       void swap(T& left, T& right)
00910       {
00911               T temp(left);
00912               left = right;
00913               right = temp;                
00914       }
00915 
00916       template <typename T>
00917       void swap(std::vector<T>& left, std::vector<T>& right)
00918       {
00919               left.swap(right);        
00920       }
00921 
00922       template <>
00923       inline string FitsNullValue<string>::operator () ()
00924       {
00925          return string("");
00926       }
00927       
00928       template <>
00929       inline float FitsNullValue<float>::operator () ()
00930       {
00931          return FLOATNULLVALUE;
00932       }
00933 
00934       template <>
00935       inline double FitsNullValue<double>::operator () ()
00936       {
00937          return DOUBLENULLVALUE;
00938       }
00939       
00940       template <>
00941       inline std::complex<float> FitsNullValue<std::complex<float> >::operator () ()
00942       {
00943          return std::complex<float>(FLOATNULLVALUE);
00944       }
00945 
00946       template <>
00947       inline std::complex<double> FitsNullValue<std::complex<double> >::operator () ()
00948       {
00949          return std::complex<double>(DOUBLENULLVALUE);
00950       }
00951       
00952    } // end namespace FITSUtil
00953 } // end namespace CCfits
00954 
00955 
00956 
00957 #endif
CCfits/html/FITSUtilT_8h_source.html0000644000225700000360000003555511667502524017104 0ustar cagordonlhea CCfits: FITSUtilT.h Source File
CCfits  2.4
FITSUtilT.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef FITSUTILT_H
00010 #define FITSUTILT_H
00011 
00012 #ifdef _MSC_VER
00013 #include "MSconfig.h" // for truncation warning
00014 #endif
00015 
00016 #ifdef HAVE_CONFIG_H
00017 #include "config.h"
00018 #endif
00019 
00020 #include "FITSUtil.h"
00021 
00022 #include<typeinfo>
00023 #include<iostream>
00024 
00025 #ifdef SSTREAM_DEFECT
00026 #include <strstream>
00027 #else
00028 #include<sstream>
00029 #endif
00030 
00031 namespace CCfits
00032 {
00033 
00034         namespace FITSUtil
00035         {
00036 
00037                 // vector to vector conversion.
00038 
00039                 template <typename S, typename T> 
00040                 void 
00041                 fill(std::vector<S>& outArray, const std::vector<T>& inArray, size_t first, size_t last)
00042                 {
00043                         // vector to vector assign. stdlib takes care of deletion.
00044                         int range = last - first + 1;
00045                         if (outArray.size() != static_cast<size_t>(range)) outArray.resize(range);
00046                         for (size_t j = first - 1; j < last; ++j)
00047                         {
00048                                 outArray[j - first + 1] = static_cast<S>(inArray[j]);
00049                         }
00050                 }  
00051 
00052                 // vector to valarray conversion. 
00053 
00054                 template <typename S, typename T> 
00055                 void fill(std::valarray<S>& outArray, const std::vector<T>& inArray, size_t first, size_t last)
00056                 {
00057                         // vector to valarray assign
00058                         int range = last - first + 1;
00059                         if (outArray.size() != static_cast<size_t>(range)) outArray.resize(range); 
00060                         for (size_t j = first - 1; j < last; ++j)
00061                         {
00062                                 outArray[j - first + 1] = static_cast<S>(inArray[j]);
00063                         }
00064                 }
00065                 // valarray to valarray conversion.
00066 
00067 
00068                 template <typename S, typename T> 
00069                 void fill(std::valarray<S>& outArray, const std::valarray<T>& inArray)
00070                 {
00071                          size_t n = inArray.size();
00072                          if (outArray.size() !=  n) outArray.resize(n);           
00073                          for (size_t j = 0;j < n; ++j) outArray[j] 
00074                                  = static_cast<S>(inArray[j]);
00075                 }
00076 
00077 #ifdef TEMPLATE_AMBIG7_DEFECT
00078                 template <typename S, typename T> 
00079                 void fillMSva(std::vector<S>& outArray, const std::valarray<T>& inArray)
00080                 {
00081                          size_t n = inArray.size();
00082                          if (outArray.size() !=  n) outArray.resize(n);           
00083                          for (size_t j = 0;j < n; ++j) outArray[j] 
00084                                  = static_cast<S>(inArray[j]);
00085                 }
00086 
00087 #else
00088                 template <typename S, typename T> 
00089                 void fill(std::vector<S>& outArray, const std::valarray<T>& inArray)
00090                 {
00091                          size_t n = inArray.size();
00092                          if (outArray.size() !=  n) outArray.resize(n);           
00093                          for (size_t j = 0;j < n; ++j) outArray[j] 
00094                                  = static_cast<S>(inArray[j]);
00095                 }
00096 #endif
00097 
00098                 // throw exceptions for string conversions to anything other than string.
00099 
00100 
00101                 template <typename T> 
00102                 void 
00103                 fill(std::vector<string>& outArray, const std::vector<T>& inArray, size_t first, size_t last)
00104                 {
00105                         first = 0;
00106                         last  = 0;
00107                         throw InvalidConversion(errorMessage(outArray,inArray),false);
00108 
00109                 } 
00110 
00111                 template <typename T> 
00112                 void fill(std::vector<T>& outArray, const std::vector<string>& inArray, size_t first, size_t last)
00113                 {
00114                         first = 0;
00115                         last  = 0;
00116                         throw InvalidConversion(errorMessage(outArray,inArray),false);
00117                 }  
00118 
00119 
00120 
00121 
00122                 template<typename S, typename T>
00123                 string errorMessage( const S& out, const T& in)
00124                 {
00125 #ifdef SSTREAM_DEFECT
00126                         std::ostrstream errMsg;
00127 #else
00128                         std::ostringstream errMsg;
00129 #endif
00130                         errMsg << " Error: no conversion from " << typeid(in).name() << " to "
00131                                << typeid(out).name() << std::endl;
00132                         return errMsg.str();
00133 
00134                 }
00135 
00136         }
00137 
00138 } // namespace CCfits
00139 
00140 
00141 #endif
CCfits/html/HDU_8h_source.html0000644000225700000360000020323411667502524015764 0ustar cagordonlhea CCfits: HDU.h Source File
CCfits  2.4
HDU.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef HDU_H
00010 #define HDU_H 1
00011 #include <map>
00012 
00013 // vector
00014 #include <vector>
00015 #include <list>
00016 // CCfitsHeader
00017 #include "CCfits.h"
00018 // Keyword
00019 #include "Keyword.h"
00020 // NewKeyword
00021 #include "NewKeyword.h"
00022 // FitsError
00023 #include "FitsError.h"
00024 // FITSUtil
00025 #include "FITSUtil.h"
00026 
00027 namespace CCfits {
00028   class FITS;
00029   class FITSBase;
00030 
00031 } // namespace CCfits
00032 namespace CCfits {
00033    class HDUCreator; // Needed for friend declaration
00034 }
00035 
00036 #ifdef _MSC_VER
00037 #include "MSconfig.h" // for truncation warning
00038 #endif
00039 #include "KeywordT.h"
00040 
00041 
00042 namespace CCfits {
00543   class HDU 
00544   {
00545 
00546     public:
00547 
00548 
00549 
00550       class InvalidImageDataType : public FitsException  //## Inherits: <unnamed>%394FBA12005C
00551       {
00552         public:
00553             InvalidImageDataType (const string& diag, bool silent = true);
00554 
00555         protected:
00556         private:
00557         private: //## implementation
00558       };
00559 
00560 
00561 
00562       class InvalidExtensionType : public FitsException  //## Inherits: <unnamed>%3964C1D00352
00563       {
00564         public:
00565             InvalidExtensionType (const string& diag, bool silent = true);
00566 
00567         protected:
00568         private:
00569         private: //## implementation
00570       };
00571 
00572 
00573 
00574       class NoSuchKeyword : public FitsException  //## Inherits: <unnamed>%398865D10264
00575       {
00576         public:
00577             NoSuchKeyword (const string& diag, bool silent = true);
00578 
00579         protected:
00580         private:
00581         private: //## implementation
00582       };
00583 
00584 
00585 
00586       class NoNullValue : public FitsException  //## Inherits: <unnamed>%3B0D58CE0306
00587       {
00588         public:
00589             NoNullValue (const string& diag, bool silent = true);
00590 
00591         protected:
00592         private:
00593         private: //## implementation
00594       };
00595         HDU(const HDU &right);
00596         bool operator==(const HDU &right) const;
00597 
00598         bool operator!=(const HDU &right) const;
00599 
00600         virtual HDU * clone (FITSBase* p) const = 0;
00601         fitsfile* fitsPointer () const;
00602         FITSBase* parent () const;
00603         //      By all means necessary, set the fitsfile pointer so that
00604         //      this HDU is the current HDU.
00605         //
00606         //      This would appear to be a good candidate for the public
00607         //      interface.
00608         virtual void makeThisCurrent () const;
00609         const String& getComments ();
00610         const string& comment () const;
00611         //      Write a history string. A default value for the string is given
00612         //      "GenericComment" so users can put a placeholder call
00613         //      to this function in their code before knowing quite what should go in it.
00614         void writeComment (const String& comment = "Generic Comment");
00615         const String& getHistory ();
00616         const string& history () const;
00617         //      Write a history string. A default value for the string is given
00618         //      "Generic History String" so users can put a placeholder call
00619         //      to this function in their code before knowing quite what should go in it.
00620         void writeHistory (const String& history = "Generic History String");
00621         //      Write a date card.
00622         void writeDate ();
00623         friend std::ostream& operator << (std::ostream& s, const CCfits::HDU& right);
00624         long axes () const;
00625         long axis (size_t index) const;
00626         void index (int value);
00627         int index () const;
00628         long bitpix () const;
00629         virtual double scale () const;
00630         virtual void scale (double value);
00631         virtual double zero () const;
00632         virtual void zero (double value);
00633         void suppressScaling (bool toggle = true);
00634         void writeChecksum ();
00635         void updateChecksum ();
00636         std::pair<int,int> verifyChecksum () const;
00637         std::pair<unsigned long,unsigned long> getChecksum () const;
00638         void deleteKey (const String& doomed);
00639         void readAllKeys ();
00640         void copyAllKeys (const HDU* inHdu);
00641         std::map<String, Keyword*>& keyWord ();
00642         Keyword& keyWord (const String& keyName);
00643         static std::vector<int> keywordCategories ();
00644         const std::map<string,Keyword*>& keyWord () const;
00645         const Keyword& keyWord (const string& keyname) const;
00646 
00647     public:
00648       // Additional Public Declarations
00649       template <typename T>
00650       void readKey(const String& keyName, T& val);
00651 
00652       template <typename T>
00653       void readKeys(std::vector<String>& keyNames, std::vector<T>& vals);
00654 
00655       template <typename T>
00656       Keyword& addKey(const String& name, T val,  const String& comment);
00657 
00658       // This non-template function could be entered with Rose, but
00659       // it's instead placed with the other addKey function to
00660       // simplify the Doxygen generated doc file output.
00661       Keyword* addKey(const Keyword* inKeyword);
00662 
00663       Keyword& addKey(const String& name, const char* charString, const String& comment);
00664 
00665 #ifdef TEMPLATE_AMBIG_DEFECT
00666       inline void readKeyMS(const String& keyName, int & val);
00667       inline void readKeys(std::vector<String>& keyNames, std::vector<String>& vals);
00668 
00669 #endif
00670     protected:
00671         //      Functions as the default constructor, which is required for
00672         //      the map container class.
00673         HDU (FITSBase* p = 0);
00674         HDU (FITSBase* p, int bitpix, int naxis, const std::vector<long>& axes);
00675         virtual ~HDU();
00676 
00677         Keyword& readKeyword (const String &keyname);
00678         void readKeywords (std::list<String>& keynames);
00679         virtual std::ostream & put (std::ostream &s) const = 0;
00680         void bitpix (long value);
00681         bool checkImgDataTypeChange (double zero, double scale) const;
00682         long& naxis ();
00683         void naxis (const long& value);
00684         //      Flags whether there were any null values found in the
00685         //      last read operation.
00686         bool& anynul ();
00687         void anynul (const bool& value);
00688         FITSBase*& parent ();
00689         std::vector< long >& naxes ();
00690         long& naxes (size_t index);
00691         void naxes (size_t index, const long& value);
00692 
00693       // Additional Protected Declarations
00694 
00695     private:
00696         //      clear the FITS Keyword map. To be called by
00697         //      the dtor and the copy/assignment operations.
00698         void clearKeys ();
00699         virtual void initRead () = 0;
00700         void readHduInfo ();
00701         Keyword* addKeyword (Keyword* newKey);
00702         virtual bool compare (const HDU &right) const;
00703         //      clear the FITS Keyword map. To be called by
00704         //      the dtor and the copy/assignment operations.
00705         void copyKeys (const HDU& right);
00706         String getNamedLines (const String& name);
00707         //      save keyword found by read all keys into the array of keywords that have been read.
00708         //      Similar to addKeyword except there's no write and no returned value. For use by readAllKeys()
00709         void saveReadKeyword (Keyword* newKey);
00710         void zeroInit (double value);
00711         void scaleInit (double value);
00712 
00713       // Additional Private Declarations
00714 
00715     private: //## implementation
00716       // Data Members for Class Attributes
00717         long m_naxis;
00718         long m_bitpix;
00719         int m_index;
00720         bool m_anynul;
00721         string m_history;
00722         string m_comment;
00723         double m_zero;
00724         //      Floating point scale factor for image data that takes
00725         //      the value of the BSCALE parameter.
00726         double m_scale;
00727 
00728       // Data Members for Associations
00729         std::map<string,Keyword*> m_keyWord;
00730         FITSBase* m_parent;
00731         std::vector< long > m_naxes;
00732 
00733       // Additional Implementation Declarations
00734         static const size_t s_nCategories;
00735         static const int s_iKeywordCategories[];
00736 
00737       friend class HDUCreator;        
00738       friend Keyword* KeywordCreator::getKeyword(const String& keyname, HDU* p);
00739       friend Keyword* KeywordCreator::getKeyword(const String& keyname, ValueType keyType, HDU* p);
00740   };
00741   template <typename T>
00742   Keyword& HDU::addKey(const String& name, T value,  const String& comment)
00743   {
00744               makeThisCurrent();
00745               NewKeyword<T> keyCreator(this,value);
00746               Keyword& newKey = *(addKeyword(keyCreator.createKeyword(name,comment)));
00747               return newKey;
00748   } 
00749 
00750   template <typename T>
00751   void HDU::readKey(const String& keyName, T& val)
00752   {
00753           makeThisCurrent();
00754           Keyword& key = readKeyword(keyName);
00755           key.value(val);
00756   }
00757 
00758 
00759   template <typename T>
00760   void HDU::readKeys(std::vector<String>& keyNames, std::vector<T>& vals)
00761   {
00762           size_t nRead = keyNames.size();
00763 
00764           std::list<String> valKeys;
00765           std::list<T>      valList;
00766           for (size_t i = 0; i < nRead; i++) valKeys.push_back(keyNames[i]);
00767           // read all the keys requested, rejecting those that don't exist.
00768 
00769           readKeywords(valKeys);
00770 
00771           // get the values of all of the requested keys, rejecting those of the
00772           // wrong type.
00773 
00774           T current;
00775           std::list<String>::iterator it = valKeys.begin(); 
00776           while (it != valKeys.end())
00777           {
00778                   try
00779                   {
00780                           m_keyWord[*it]->value(current);
00781                           valList.push_back(current);       
00782                           ++it;
00783                   }
00784                   catch ( Keyword::WrongKeywordValueType )
00785                   {
00786                           it = valKeys.erase(it);                         
00787                   }
00788           }
00789 
00790           keyNames.erase(keyNames.begin(),keyNames.end());       
00791 
00792           if (!valList.empty())
00793           {
00794                   if (valList.size() != vals.size()) vals.resize(valList.size());
00795 
00796                   size_t i=0;
00797                   for (typename std::list<T>::const_iterator it1 
00798                                   = valList.begin(); it1 != valList.end(); ++it1,++i)
00799                   {
00800                           vals[i] = *it1;
00801                   }
00802                   for (std::list<String>::const_iterator it1= valKeys.begin(); it1 != valKeys.end(); ++it1)
00803                   {
00804                           keyNames.push_back(*it1);
00805                   }
00806           }
00807 
00808   }
00809 
00810   // Class CCfits::HDU::InvalidImageDataType 
00811 
00812   // Class CCfits::HDU::InvalidExtensionType 
00813 
00814   // Class CCfits::HDU::NoSuchKeyword 
00815 
00816   // Class CCfits::HDU::NoNullValue 
00817 
00818   // Class CCfits::HDU 
00819 
00820   inline const string& HDU::comment () const
00821   {
00822     return m_comment;
00823   }
00824 
00825   inline const string& HDU::history () const
00826   {
00827     return m_history;
00828   }
00829 
00830   inline std::ostream& operator << (std::ostream& s, const CCfits::HDU& right)
00831   {
00832      return right.put(s);
00833   }
00834 
00835   inline long HDU::axes () const
00836   {
00837 
00838     return m_naxis;
00839   }
00840 
00841   inline long HDU::axis (size_t index) const
00842   {
00843 
00844     return m_naxes[index];
00845   }
00846 
00847   inline void HDU::index (int value)
00848   {
00849 
00850     m_index = value;
00851   }
00852 
00853   inline int HDU::index () const
00854   {
00855     return m_index;
00856   }
00857 
00858   inline long HDU::bitpix () const
00859   {
00860     return m_bitpix;
00861   }
00862 
00863   inline void HDU::bitpix (long value)
00864   {
00865     m_bitpix = value;
00866   }
00867 
00868   inline double HDU::scale () const
00869   {
00870     return m_scale;
00871   }
00872 
00873   inline void HDU::scale (double value)
00874   {
00875     m_scale = value;
00876   }
00877 
00878   inline double HDU::zero () const
00879   {
00880     return m_zero;
00881   }
00882 
00883   inline void HDU::zero (double value)
00884   {
00885     m_zero = value;
00886   }
00887 
00888   inline void HDU::saveReadKeyword (Keyword* newKey)
00889   {
00890     m_keyWord.insert(std::map<String,Keyword*>::value_type(newKey->name(),newKey->clone()));
00891   }
00892 
00893   inline std::map<String, Keyword*>& HDU::keyWord ()
00894   {
00895 
00896     return m_keyWord;
00897   }
00898 
00899   inline Keyword& HDU::keyWord (const String& keyName)
00900   {
00901   std::map<String,Keyword*>::iterator key = m_keyWord.find(keyName);
00902   if (key == m_keyWord.end()) throw HDU::NoSuchKeyword(keyName);
00903   return *((*key).second);
00904   }
00905 
00906   inline long& HDU::naxis ()
00907   {
00908     return m_naxis;
00909   }
00910 
00911   inline void HDU::naxis (const long& value)
00912   {
00913     m_naxis = value;
00914   }
00915 
00916   inline bool& HDU::anynul ()
00917   {
00918     return m_anynul;
00919   }
00920 
00921   inline void HDU::anynul (const bool& value)
00922   {
00923     m_anynul = value;
00924   }
00925 
00926   inline const std::map<string,Keyword*>& HDU::keyWord () const
00927   {
00928     return m_keyWord;
00929   }
00930 
00931   inline const Keyword& HDU::keyWord (const string& keyname) const
00932   {
00933   std::map<String,Keyword*>::const_iterator key = m_keyWord.find(keyname);
00934   if (key == m_keyWord.end()) throw HDU::NoSuchKeyword(keyname);
00935   return *((*key).second);
00936   }
00937 
00938   inline FITSBase*& HDU::parent ()
00939   {
00940     return m_parent;
00941   }
00942 
00943   inline std::vector< long >& HDU::naxes ()
00944   {
00945     return m_naxes;
00946   }
00947 
00948   inline long& HDU::naxes (size_t index)
00949   {
00950     return m_naxes[index];
00951   }
00952 
00953   inline void HDU::naxes (size_t index, const long& value)
00954   {
00955     m_naxes[index] = value;
00956   }
00957 
00958 } // namespace CCfits
00959 #ifdef SPEC_TEMPLATE_IMP_DEFECT
00960 namespace CCfits {
00961 
00962   inline void HDU::readKeyMS(const String& keyName, int & val)
00963   {
00964           makeThisCurrent();
00965           Keyword& key = readKeyword(keyName);
00966           key.value(val);
00967   }
00968 
00969   inline void HDU::readKeys(std::vector<String>& keyNames, std::vector<String>& vals)
00970   {
00971           size_t nRead = keyNames.size();
00972 
00973           std::list<String> valKeys;
00974           std::list<String>      valList;
00975           for (size_t i = 0; i < nRead; i++) valKeys.push_back(keyNames[i]);
00976           // read all the keys requested, rejecting those that don't exist.
00977 
00978           readKeywords(valKeys);
00979 
00980           // get the values of all of the requested keys, rejecting those of the
00981           // wrong type.
00982 
00983           String current;
00984           std::list<String>::iterator it = valKeys.begin(); 
00985           while (it != valKeys.end())
00986           {
00987                   try
00988                   {
00989                           m_keyWord[*it]->value(current);
00990                           valList.push_back(current);       
00991                           ++it;
00992                   }
00993                   catch ( Keyword::WrongKeywordValueType )
00994                   {
00995                           it = valKeys.erase(it);                         
00996                   }
00997           }
00998 
00999           keyNames.erase(keyNames.begin(),keyNames.end());       
01000 
01001           if (!valList.empty())
01002           {
01003                   if (valList.size() != vals.size()) vals.resize(valList.size());
01004 
01005                   size_t i=0;
01006                                   std::list<String>::const_iterator it1 = valList.begin();
01007                   for ( ; it1 != valList.end(); ++it1,++i)
01008                   {
01009                           vals[i] = *it1;
01010                   }
01011                   for ( it1= valKeys.begin(); it1 != valKeys.end(); ++it1)
01012                   {
01013                           keyNames.push_back(*it1);
01014                   }
01015           }
01016 
01017   }
01018 }
01019  #endif
01020 
01021 
01022 #endif
CCfits/html/HDUCreator_8h_source.html0000644000225700000360000003243611667502524017310 0ustar cagordonlhea CCfits: HDUCreator.h Source File
CCfits  2.4
HDUCreator.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef HDUCREATOR_H
00010 #define HDUCREATOR_H 1
00011 
00012 // valarray
00013 #include <valarray>
00014 // typeinfo
00015 #include <typeinfo>
00016 // vector
00017 #include <vector>
00018 // string
00019 #include <string>
00020 // CCfitsHeader
00021 #include "CCfits.h"
00022 // FitsError
00023 #include "FitsError.h"
00024 
00025 namespace CCfits {
00026   class FITSBase;
00027   class HDU;
00028   class PHDU;
00029   class ExtHDU;
00030 
00031 } // namespace CCfits
00032 
00033 
00034 namespace CCfits {
00035 
00036 
00037 
00038   class HDUCreator 
00039   {
00040 
00041     public:
00042         HDUCreator (FITSBase* p);
00043         ~HDUCreator();
00044 
00045         //      Read a specified HDU from given fitsfile and
00046         //      return a pointer to it.
00047         HDU * getHdu (const String& hduName, bool readDataFlag = false, const std::vector<String> &keys = std::vector<String>(), bool primary = false, int version = 1);
00048         PHDU * createImage (int bitpix, long naxis, const std::vector<long>& naxes);
00049         void reset ();
00050         HDU * Make (const String& hduName, bool readDataFlag, const std::vector<String> &keys, bool primary, int version);
00051         HDU* createTable (const String &name, HduType xtype, int rows, const std::vector<String>& colName, const std::vector<String> colFmt, const std::vector<String> colUnit, int version);
00052         //      Read a specified HDU from given fitsfile and
00053         //      return a pointer to it.
00054         //
00055         //      With no arguments this reads the PrimaryHDU.
00056         HDU * getHdu (int index = 0, bool readDataFlag = false, const std::vector<String> &keys = std::vector<String>());
00057         ExtHDU * createImage (const String &name, int bitpix, long naxis, const std::vector<long>& naxes, int version);
00058 
00059       // Additional Public Declarations
00060 
00061     protected:
00062       // Additional Protected Declarations
00063 
00064     private:
00065         PHDU * MakeImage (int bpix, int naxis, const std::vector<long>& naxes);
00066         HDU* MakeTable (const String &name, HduType xtype, int rows, const std::vector<String>& colName, const std::vector<String>& colFmt, const std::vector<String>& colUnit, int version);
00067         HDU * Make (int index, bool readDataFlag, const std::vector<String> &keys);
00068         ExtHDU * MakeImage (const String &name, int bpix, long naxis, const std::vector<long>& naxes, int version);
00069         void getScaling (long& type, double& zero, double& scale) const;
00070         void parent (FITSBase* value);
00071         
00072         // Utility function to implement both of the Make() function interfaces.
00073         HDU* commonMake(const String& hduName, bool readDataFlag, const std::vector<String> &keys, bool primary, int version);
00074 
00075       // Data Members for Class Attributes
00076         HDU *m_hdu;
00077 
00078       // Additional Private Declarations
00079 
00080     private: //## implementation
00081       // Data Members for Associations
00082         FITSBase* m_parent;
00083 
00084       // Additional Implementation Declarations
00085 
00086   };
00087 
00088   // Class CCfits::HDUCreator 
00089 
00090   inline HDU * HDUCreator::getHdu (const String& hduName, bool readDataFlag, const std::vector<String> &keys, bool primary, int version)
00091   {
00093   if ( m_hdu == 0 ) m_hdu = Make(hduName,readDataFlag,keys,primary,version);
00094   return m_hdu;
00095   }
00096 
00097   inline void HDUCreator::reset ()
00098   {
00099   m_hdu = 0;
00100   }
00101 
00102   inline HDU* HDUCreator::createTable (const String &name, HduType xtype, int rows, const std::vector<String>& colName, const std::vector<String> colFmt, const std::vector<String> colUnit, int version)
00103   {
00105         if (m_hdu == 0) m_hdu = MakeTable(name,xtype,rows,colName,colFmt,colUnit,version);
00106         return m_hdu;
00107   }
00108 
00109   inline HDU * HDUCreator::getHdu (int index, bool readDataFlag, const std::vector<String> &keys)
00110   {
00112   if ( m_hdu == 0 ) m_hdu = Make(index,readDataFlag,keys);
00113   return m_hdu;
00114   }
00115 
00116   inline void HDUCreator::parent (FITSBase* value)
00117   {
00118     m_parent = value;
00119   }
00120 
00121 } // namespace CCfits
00122 
00123 
00124 #endif
CCfits/html/Image_8h_source.html0000644000225700000360000012141411667502524016365 0ustar cagordonlhea CCfits: Image.h Source File
CCfits  2.4
Image.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef IMAGE_H
00010 #define IMAGE_H 1
00011 
00012 // functional
00013 #include <functional>
00014 // valarray
00015 #include <valarray>
00016 // vector
00017 #include <vector>
00018 // numeric
00019 #include <numeric>
00020 #ifdef _MSC_VER
00021 #include "MSconfig.h" //form std::min
00022 #endif
00023 #include "CCfits.h"
00024 #include "FitsError.h"
00025 #include "FITSUtil.h"
00026 
00027 
00028 namespace CCfits {
00029 
00030 
00031 
00032   template <typename T>
00033   class Image 
00034   {
00035 
00036     public:
00037         Image(const Image< T > &right);
00038         Image (const std::valarray<T>& imageArray = std::valarray<T>());
00039         ~Image();
00040         Image< T > & operator=(const Image< T > &right);
00041 
00042         //      Read data reads the image if readFlag is true and
00043         //      optional keywords if supplied. Thus, with no arguments,
00044         //      readData() does nothing.
00045         const std::valarray<T>& readImage (fitsfile* fPtr, long first, long nElements, T* nullValue, const std::vector<long>& naxes, bool& nulls);
00046         //      Read data reads the image if readFlag is true and
00047         //      optional keywords if supplied. Thus, with no arguments,
00048         //      readData() does nothing.
00049         const std::valarray<T>& readImage (fitsfile* fPtr, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, T* nullValue, const std::vector<long>& naxes, bool& nulls);
00050         //      Read data reads the image if readFlag is true and
00051         //      optional keywords if supplied. Thus, with no arguments,
00052         //      readData() does nothing.
00053         void writeImage (fitsfile* fPtr, long first, long nElements, const std::valarray<T>& inData, const std::vector<long>& naxes, T* nullValue = 0);
00054         //      Read data reads the image if readFlag is true and
00055         //      optional keywords if supplied. Thus, with no arguments,
00056         //      readData() does nothing.
00057         void writeImage (fitsfile* fPtr, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, const std::valarray<T>& inData, const std::vector<long>& naxes);
00058         void writeImage (fitsfile* fPtr, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::valarray<T>& inData, const std::vector<long>& naxes);
00059         bool isRead () const;
00060         void isRead (bool value);
00061         const std::valarray< T >& image () const;
00062         void setImage (const std::valarray< T >& value);
00063         const T image (size_t index) const;
00064         void setImage (size_t index, T value);
00065 
00066       // Additional Public Declarations
00067 
00068     protected:
00069       // Additional Protected Declarations
00070 
00071     private:
00072         std::valarray<T>& image ();
00073         void prepareForSubset (const std::vector<long>& naxes, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, const std::valarray<T>& inData, std::valarray<T>& subset);
00074         void loop (size_t iDim, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, size_t iPos, const std::vector<size_t>& incr, const std::valarray<T>& inData, size_t& iDat, const std::vector<size_t>& subIncr, std::valarray<T>& subset, size_t iSub);
00075 
00076       // Additional Private Declarations
00077 
00078     private: //## implementation
00079       // Data Members for Class Attributes
00080         bool m_isRead;
00081 
00082       // Data Members for Associations
00083         std::valarray< T > m_image;
00084 
00085       // Additional Implementation Declarations
00086 
00087   };
00088 
00089   // Parameterized Class CCfits::Image 
00090 
00091   template <typename T>
00092   inline bool Image<T>::isRead () const
00093   {
00094     return m_isRead;
00095   }
00096 
00097   template <typename T>
00098   inline void Image<T>::isRead (bool value)
00099   {
00100     m_isRead = value;
00101   }
00102 
00103   template <typename T>
00104   inline const std::valarray< T >& Image<T>::image () const
00105   {
00106     return m_image;
00107   }
00108 
00109   template <typename T>
00110   inline void Image<T>::setImage (const std::valarray< T >& value)
00111   {
00112     m_image.resize(value.size());
00113     m_image = value;
00114   }
00115 
00116   template <typename T>
00117   inline const T Image<T>::image (size_t index) const
00118   {
00119     return m_image[index];
00120   }
00121 
00122   template <typename T>
00123   inline void Image<T>::setImage (size_t index, T value)
00124   {
00125     m_image[index]  = value;
00126   }
00127 
00128   // Parameterized Class CCfits::Image 
00129 
00130   template <typename T>
00131   Image<T>::Image(const Image<T> &right)
00132         : m_isRead(right.m_isRead),
00133           m_image(right.m_image)
00134   {
00135   }
00136 
00137   template <typename T>
00138   Image<T>::Image (const std::valarray<T>& imageArray)
00139         : m_isRead(false),
00140           m_image(imageArray)
00141   {
00142   }
00143 
00144 
00145   template <typename T>
00146   Image<T>::~Image()
00147   {
00148   }
00149 
00150 
00151   template <typename T>
00152   Image<T> & Image<T>::operator=(const Image<T> &right)
00153   {
00154       // all stack allocated.
00155      m_isRead = right.m_isRead;
00156      m_image.resize(right.m_image.size());
00157      m_image = right.m_image;
00158      return *this;
00159   }
00160 
00161 
00162   template <typename T>
00163   const std::valarray<T>& Image<T>::readImage (fitsfile* fPtr, long first, long nElements, T* nullValue, const std::vector<long>& naxes, bool& nulls)
00164   {
00165         const size_t N(naxes.size());
00166         if (N > 0)
00167         {
00168                 int status(0);
00169                 int any (0);
00170                 FITSUtil::MatchType<T> imageType;
00171                 unsigned long init(1);
00172                 unsigned long nelements(std::accumulate(naxes.begin(),naxes.end(),init,
00173                                 std::multiplies<long>()));
00174 
00175                 // truncate to valid array size if too much data asked for.
00176                 // note first is 1-based index)
00177                 long elementsToRead(std::min(static_cast<unsigned long>(nElements),
00178                                 nelements - first + 1));
00179                 if ( elementsToRead < nElements)
00180                 {
00181                         std::cerr << 
00182                                 "***CCfits Warning: data request exceeds image size, truncating\n"; 
00183                 }
00184                 FITSUtil::FitsNullValue<T> null;
00185                 // initialize m_image to nullValue. resize if necessary.
00186                 if (m_image.size() != static_cast<size_t>(elementsToRead)) 
00187                 {
00188                         m_image.resize(elementsToRead,null());
00189                 }
00190                 if (fits_read_img(fPtr,imageType(),first,elementsToRead,
00191                        nullValue,&m_image[0],&any,&status) != 0) throw FitsError(status);
00192 
00193                 nulls = (any != 0);
00194                 m_isRead = (first == 1 && nelements == static_cast<unsigned long>(nElements)); 
00195         }
00196         else
00197         {
00198                 m_isRead = true;
00199                 m_image.resize(0);
00200         }
00201         return m_image;
00202   }
00203 
00204   template <typename T>
00205   const std::valarray<T>& Image<T>::readImage (fitsfile* fPtr, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, T* nullValue, const std::vector<long>& naxes, bool& nulls)
00206   {
00207 
00208 
00209 
00210      FITSUtil::CVarray<long> carray;
00211 
00212 
00213      int any(0);
00214      int status(0);
00215      const size_t N(naxes.size());
00216 
00217      size_t arraySize(1);
00218 
00219      for (size_t j = 0; j < N; ++j)
00220      {
00221              arraySize *= (lastVertex[j] - firstVertex[j] + 1);       
00222      }
00223 
00224      FITSUtil::auto_array_ptr<long> pFpixel(carray(firstVertex));
00225      FITSUtil::auto_array_ptr<long> pLpixel(carray(lastVertex));
00226      FITSUtil::auto_array_ptr<long> pStride(carray(stride));
00227 
00228      FITSUtil::MatchType<T> imageType;
00229 
00230      size_t n(m_image.size());
00231      if (n != arraySize)  m_image.resize(arraySize);
00232      if (fits_read_subset(fPtr,imageType(),
00233                              pFpixel.get(),pLpixel.get(),
00234                              pStride.get(),nullValue,&m_image[0],&any,&status) != 0)
00235      {
00236                 throw FitsError(status);        
00237 
00238      }
00239 
00240      nulls = (any != 0);
00241      return m_image;    
00242   }
00243 
00244   template <typename T>
00245   void Image<T>::writeImage (fitsfile* fPtr, long first, long nElements, const std::valarray<T>& inData, const std::vector<long>& naxes, T* nullValue)
00246   {
00247 
00248 
00249      int status(0);
00250      size_t init(1);   
00251      size_t totalSize= static_cast<size_t>(std::accumulate(naxes.begin(),naxes.end(),init,std::multiplies<long>() ));
00252      FITSUtil::FitsNullValue<T> null;
00253      if (m_image.size() != totalSize) m_image.resize(totalSize,null());
00254      FITSUtil::CAarray<T> convert;
00255      FITSUtil::auto_array_ptr<T>    pArray(convert(inData));                     
00256      T* array = pArray.get();
00257 
00258 
00259      FITSUtil::MatchType<T> imageType;
00260      long type(imageType());
00261 
00262      if (fits_write_imgnull(fPtr,type,first,nElements,array,
00263                      nullValue,&status) || fits_flush_file(fPtr,&status) != 0)
00264      {
00265                 throw FitsError(status);        
00266 
00267      }
00268 
00269 
00270 
00271      m_image[std::slice(first-1,nElements,1)]  = inData;
00272   }
00273 
00274   template <typename T>
00275   void Image<T>::writeImage (fitsfile* fPtr, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, const std::valarray<T>& inData, const std::vector<long>& naxes)
00276   {
00277         // input vectors' size equality will be verified in prepareForSubset.
00278         const size_t nDim = naxes.size();
00279         FITSUtil::auto_array_ptr<long> pFPixel(new long[nDim]);
00280         FITSUtil::auto_array_ptr<long> pLPixel(new long[nDim]);
00281         std::valarray<T> subset;
00282         prepareForSubset(naxes,firstVertex,lastVertex,stride,inData,subset);
00283 
00284         long* fPixel = pFPixel.get();
00285         long* lPixel = pLPixel.get();
00286         for (size_t i=0; i<nDim; ++i)
00287         {
00288            fPixel[i] = firstVertex[i];
00289            lPixel[i] = lastVertex[i];
00290         }
00291 
00292         FITSUtil::CAarray<T> convert;
00293         FITSUtil::auto_array_ptr<T> pArray(convert(subset));
00294         T* array = pArray.get();
00295         FITSUtil::MatchType<T> imageType;        
00296         int status(0);
00297 
00298         if ( fits_write_subset(fPtr,imageType(),fPixel,lPixel,array,&status) 
00299                         || fits_flush_file(fPtr,&status)  != 0) throw FitsError(status);
00300   }
00301 
00302   template <typename T>
00303   std::valarray<T>& Image<T>::image ()
00304   {
00305 
00306     return m_image;
00307   }
00308 
00309   template <typename T>
00310   void Image<T>::prepareForSubset (const std::vector<long>& naxes, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, const std::valarray<T>& inData, std::valarray<T>& subset)
00311   {
00312 
00313     // naxes, firstVertex, lastVertex, and stride must all be the same size.
00314     const size_t N = naxes.size();
00315     if (N != firstVertex.size() || N != lastVertex.size() || N != stride.size())
00316     {
00317        string errMsg("*** CCfits Error: Image write function requires that naxes, firstVertex,");
00318        errMsg += "       \nlastVertex, and stride vectors all be the same size.\n";
00319        bool silent = false;
00320        throw FitsException(errMsg, silent);
00321     }
00322     for (size_t i=0; i<N; ++i)
00323     {
00324        if (naxes[i] < 1)
00325        {
00326           bool silent = false;
00327           throw FitsException("*** CCfits Error: Invalid naxes value sent to image write function.\n", silent);
00328        }
00329        string rangeErrMsg("*** CCfits Error: Out-of-range value sent to image write function in arg: ");
00330        if (firstVertex[i] < 1 || firstVertex[i] > naxes[i]) 
00331        {
00332           bool silent = false;
00333           rangeErrMsg += "firstVertex\n";
00334           throw FitsException(rangeErrMsg, silent);
00335        }
00336        if (lastVertex[i] < firstVertex[i] || lastVertex[i] > naxes[i])
00337        {
00338           bool silent = false;
00339           rangeErrMsg += "lastVertex\n";
00340           throw FitsException(rangeErrMsg, silent);
00341        }
00342        if (stride[i] < 1)
00343        {
00344           bool silent = false;
00345           rangeErrMsg += "stride\n";
00346           throw FitsException(rangeErrMsg, silent);
00347        }
00348     }
00349 
00350     // nPoints refers to the subset of m_image INCLUDING the zero'ed elements 
00351     // resulting from the stride parameter.  
00352     // subSizeWithStride refers to the same subset, not counting the zeros.
00353     size_t subSizeWithStride = 1;
00354     size_t nPoints = 1;
00355     std::vector<size_t> subIncr(N);
00356     for (size_t i=0; i<N; ++i)
00357     {
00358        subIncr[i] = nPoints;
00359        nPoints *= static_cast<size_t>(1+lastVertex[i]-firstVertex[i]);
00360        subSizeWithStride *= static_cast<size_t>(1+(lastVertex[i]-firstVertex[i])/stride[i]);
00361     }
00362     FITSUtil::FitsNullValue<T> null;
00363     subset.resize(nPoints, null());
00364 
00365     // Trying to avoid at all costs an assignment between 2 valarrays of 
00366     // different sizes when m_image gets set below.
00367     if (subSizeWithStride != inData.size())
00368     {
00369        bool silent = false;
00370        string errMsg("*** CCfits Error: Data array size is not consistent with the values");
00371        errMsg += "\n      in range and stride vectors sent to the image write function.\n";
00372        throw FitsException(errMsg, silent);
00373     }
00374 
00375     size_t startPoint = 0;
00376     size_t dimMult = 1;
00377     std::vector<size_t> incr(N);
00378     for (size_t j = 0; j < N; ++j)
00379     {
00380        startPoint += dimMult*(firstVertex[j]-1);
00381        incr[j] = dimMult;
00382        dimMult *= static_cast<size_t>(naxes[j]);
00383     }
00384     const size_t imageSize = dimMult;
00385     m_image.resize(imageSize,null());
00386 
00387     size_t inDataPos = 0;
00388     size_t iSub = 0;
00389     loop(N-1, firstVertex, lastVertex, stride, startPoint, incr, inData, inDataPos, subIncr, subset, iSub);           
00390   }
00391 
00392   template <typename T>
00393   void Image<T>::loop (size_t iDim, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, size_t iPos, const std::vector<size_t>& incr, const std::valarray<T>& inData, size_t& iDat, const std::vector<size_t>& subIncr, std::valarray<T>& subset, size_t iSub)
00394   {
00395      size_t start = static_cast<size_t>(firstVertex[iDim]);
00396      size_t stop = static_cast<size_t>(lastVertex[iDim]);
00397      size_t skip = static_cast<size_t>(stride[iDim]);
00398      if (iDim == 0)
00399      {
00400         size_t length = stop - start + 1;
00401         for (size_t i=0; i<length; i+=skip)
00402         {
00403            m_image[i+iPos] = inData[iDat];
00404            subset[i+iSub] = inData[iDat++];
00405         }
00406      }
00407      else
00408      {
00409         size_t jump = incr[iDim]*skip;
00410         size_t subJump = subIncr[iDim]*skip;
00411         for (size_t i=start; i<=stop; i+=skip)
00412         {
00413            loop(iDim-1, firstVertex, lastVertex, stride, iPos, incr, inData, iDat, subIncr, subset, iSub);
00414            iPos += jump;
00415            iSub += subJump;
00416         }
00417      }
00418   }
00419 
00420   template <typename T>
00421   void Image<T>::writeImage (fitsfile* fPtr, const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::valarray<T>& inData, const std::vector<long>& naxes)
00422   {
00423      std::vector<long> stride(firstVertex.size(), 1);
00424      writeImage(fPtr, firstVertex, lastVertex, stride, inData, naxes);
00425   }
00426 
00427   // Additional Declarations
00428 
00429 } // namespace CCfits
00430 
00431 
00432 #endif
CCfits/html/ImageExt_8h_source.html0000644000225700000360000011165011667502524017047 0ustar cagordonlhea CCfits: ImageExt.h Source File
CCfits  2.4
ImageExt.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef IMAGEEXT_H
00010 #define IMAGEEXT_H 1
00011 
00012 // ExtHDU
00013 #include "ExtHDU.h"
00014 // HDUCreator
00015 #include "HDUCreator.h"
00016 // Image
00017 #include "Image.h"
00018 // FITSUtil
00019 #include "FITSUtil.h"
00020 #ifdef _MSC_VER
00021 #include "MSconfig.h" // for truncation warning
00022 #endif
00023 
00024 
00025 namespace CCfits {
00026 
00055   template <typename T>
00056   class ImageExt : public ExtHDU  //## Inherits: <unnamed>%3804A11121D8
00057   {
00058 
00059     public:
00060         virtual ~ImageExt();
00061 
00062         virtual ImageExt<T> * clone (FITSBase* p) const;
00063         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00064         const std::valarray<T>& image () const;
00065         virtual void zero (double value);
00066         virtual void scale (double value);
00067         virtual double zero () const;
00068         virtual double scale () const;
00069 
00070       // Additional Public Declarations
00071 
00072     protected:
00073         ImageExt (FITSBase* p, const String &hduName, bool readDataFlag = false, const std::vector<String>& keys = std::vector<String>(), int version = 1);
00074         ImageExt (FITSBase* p, const String &hduName, int bpix, int naxis, const std::vector<long>& naxes, int version = 1);
00075 
00076       // Additional Protected Declarations
00077         virtual void checkExtensionType() const;
00078     private:
00079         ImageExt(const ImageExt< T > &right);
00080         ImageExt< T > & operator=(const ImageExt< T > &right);
00081 
00082         virtual void initRead ();
00083         virtual std::ostream & put (std::ostream &s) const;
00084         //      Read data reads the image if readFlag is true and
00085         //      optional keywords if supplied. Thus, with no arguments,
00086         //      readData() does nothing.
00087         virtual const std::valarray<T>& readImage (long first, long nElements, T* nullValue);
00088         //      Read data reads the image if readFlag is true and
00089         //      optional keywords if supplied. Thus, with no arguments,
00090         //      readData() does nothing.
00091         virtual const std::valarray<T>& readImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, T* nullValue);
00092         //      Read data reads the image if readFlag is true and
00093         //      optional keywords if supplied. Thus, with no arguments,
00094         //      readData() does nothing.
00095         virtual void writeImage (long first, long nElements, const std::valarray<T>& inData, T* nullValue = 0);
00096         //      Read data reads the image if readFlag is true and
00097         //      optional keywords if supplied. Thus, with no arguments,
00098         //      readData() does nothing.
00099         virtual void writeImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::valarray<T>& inData);
00100         const Image<T>& data () const;
00101 
00102       // Additional Private Declarations
00103 
00104     private: //## implementation
00105       // Data Members for Associations
00106         Image<T> m_data;
00107 
00108       // Additional Implementation Declarations
00109       friend class ExtHDU;
00110       friend class HDUCreator;
00111   };
00112 
00113   // Parameterized Class CCfits::ImageExt 
00114 
00115   template <typename T>
00116   inline std::ostream & ImageExt<T>::put (std::ostream &s) const
00117   {
00118   s << "Image Extension::  "  <<  " Name: " << name() << " Extension: " << xtension() 
00119           << " BITPIX "<< bitpix() << '\n';
00120 
00121   s <<  " Axis Lengths: \n";
00122   for (size_t j =1; j < static_cast<size_t>( axes() ) ; j++)
00123   {
00124         s << " Axis: " << j << "  " << axis(j-1) << '\n';  
00125   }
00126 
00127 
00128 
00129   s << "Image Extension:: Version: " << version() << " HDU number: " <<  index() << '\n';
00130 
00131   s << " HISTORY: " << history() << '\n';
00132   s << " COMMENTS: " <<comment() << '\n';
00133 
00134   s << "BinTable:: nKeywords: " << keyWord().size() << '\n';
00135 
00136     return s;
00137   }
00138 
00139   template <typename T>
00140   inline const Image<T>& ImageExt<T>::data () const
00141   {
00142     return m_data;
00143   }
00144 
00145   // Parameterized Class CCfits::ImageExt 
00146 
00147   template <typename T>
00148   ImageExt<T>::ImageExt(const ImageExt<T> &right)
00149       : ExtHDU(right), m_data(right.m_data)
00150   {
00151   }
00152 
00153   template <typename T>
00154   ImageExt<T>::ImageExt (FITSBase* p, const String &hduName, bool readDataFlag, const std::vector<String>& keys, int version)
00155       : ExtHDU(p,ImageHdu,hduName,version),  m_data()
00156   {
00157   initRead();
00158   if (readDataFlag || keys.size() ) readData(readDataFlag,keys);  
00159   }
00160 
00161   template <typename T>
00162   ImageExt<T>::ImageExt (FITSBase* p, const String &hduName, int bpix, int naxis, const std::vector<long>& naxes, int version)
00163       : ExtHDU(p,ImageHdu,hduName,bpix,naxis,naxes,version), m_data()
00164   {
00165   // resize m_image according to naxes, and data according to m_image,
00166   // and equate them. Valarray = must be performed on items of the same
00167   // size according to the standard.
00168   int status (0);
00169   FITSUtil::CVarray<long> convert;
00170   FITSUtil::auto_array_ptr<long> axis(convert(naxes));
00171   static char EXTNAME[] = "EXTNAME";
00172   static char HDUVERS[] = "HDUVERS";
00173 
00174           if ( fits_create_img(fitsPointer(), bpix, naxis, axis.get(), &status) )
00175           {
00176 
00177                 throw FitsError(status);
00178           } 
00179           else
00180           {
00181                 char * comment = 0;
00182                 if (fits_write_key(fitsPointer(),Tstring,EXTNAME,
00183                                 const_cast<char*>(hduName.c_str()), comment,&status)) 
00184                 {
00185                         throw FitsError(status);
00186                 }                
00187                 if (version != 0 && fits_write_key(fitsPointer(),Tint,HDUVERS,&version,
00188                                         comment,&status)) throw FitsError(status);     
00189           }      
00190   }
00191 
00192 
00193   template <typename T>
00194   ImageExt<T>::~ImageExt()
00195   {
00196   }
00197 
00198 
00199   template <typename T>
00200   void ImageExt<T>::initRead ()
00201   {
00202   }
00203 
00204   template <typename T>
00205   ImageExt<T> * ImageExt<T>::clone (FITSBase* p) const
00206   {
00207   ImageExt<T>* cloned = new ImageExt<T>(*this);
00208   cloned->parent() = p;
00209   return cloned;
00210   }
00211 
00212   template <typename T>
00213   void ImageExt<T>::readData (bool readFlag, const std::vector<String>& keys)
00214   {
00215   // Default reading mode. Read everything if readFlag is true.
00216   // this is identical to the equivalent method for PrimaryHDU<T>,
00217   // so will one day turn this into a simple call that shares the code.
00218   makeThisCurrent();
00219 
00220   if ( keys.size() > 0) 
00221   {
00222         std::list<string> keyList;
00223         // keys is converted to a list so that any keys not in the header
00224         // can be easily erased. internally an exception will be thrown,
00225         // on a missing key, and its catch clause will print a message.
00226         for (std::vector<string>::const_iterator j = keys.begin(); j != keys.end(); ++j)
00227         {
00228                 keyList.push_back(*j);
00229         } 
00230         readKeywords(keyList);
00231   }
00232 
00233   if ( readFlag)  // read the entire image, setting null values to FLT_MIN.
00234   {
00235 
00236         FITSUtil::FitsNullValue<T> null;
00237         T nulval = null();
00238         long first(1);
00239         long nelements(1);
00240         for (size_t i = 0; i < naxes().size(); i++) nelements *= naxes(i);
00241         m_data.readImage(fitsPointer(),first,nelements,&nulval,naxes(),anynul());
00242 
00243     }
00244   }
00245 
00246   template <typename T>
00247   const std::valarray<T>& ImageExt<T>::image () const
00248   {
00249 
00250     return m_data.image();
00251   }
00252 
00253   template <typename T>
00254   const std::valarray<T>& ImageExt<T>::readImage (long first, long nElements, T* nullValue)
00255   {
00256     checkExtensionType();
00257     return m_data.readImage(fitsPointer(),first,nElements,nullValue,naxes(),anynul());
00258   }
00259 
00260   template <typename T>
00261   const std::valarray<T>& ImageExt<T>::readImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, T* nullValue)
00262   {
00263     checkExtensionType();
00264     return m_data.readImage(fitsPointer(),firstVertex,lastVertex,stride,nullValue,naxes(),anynul());
00265   }
00266 
00267   template <typename T>
00268   void ImageExt<T>::writeImage (long first, long nElements, const std::valarray<T>& inData, T* nullValue)
00269   {
00270     checkExtensionType();
00271     m_data.writeImage(fitsPointer(),first,nElements,inData,naxes(),nullValue);
00272   }
00273 
00274   template <typename T>
00275   void ImageExt<T>::writeImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::valarray<T>& inData)
00276   {
00277     checkExtensionType();
00278     m_data.writeImage(fitsPointer(),firstVertex,lastVertex,inData,naxes());
00279   }
00280 
00281   template <typename T>
00282   void ImageExt<T>::zero (double value)
00283   {
00284     makeThisCurrent();
00285     if (checkImgDataTypeChange(value, scale()))
00286     {
00287        if (naxis())
00288        {
00289            int status(0);
00290            if (fits_update_key(fitsPointer(), Tdouble, BZERO, &value, 0, &status))
00291               throw FitsError(status);
00292            fits_flush_file(fitsPointer(), &status);
00293            HDU::zero(value);
00294        }
00295     }
00296     else
00297     {
00298        bool silent=false;
00299        string msg("CCfits Error: Cannot set BZERO to a value which will change image data\n");
00300            msg += "              from integer type to floating point type.";
00301        throw FitsException(msg,silent);
00302     }
00303   }
00304 
00305   template <typename T>
00306   void ImageExt<T>::scale (double value)
00307   {
00308     makeThisCurrent();
00309     if (checkImgDataTypeChange(zero(), value))
00310     {
00311        if (naxis())
00312        {
00313            int status(0);
00314            if (fits_update_key(fitsPointer(), Tdouble, BSCALE, &value, 0, &status))
00315               throw FitsError(status);
00316            fits_flush_file(fitsPointer(), &status);
00317            HDU::scale(value);
00318        } 
00319     }
00320     else
00321     {
00322        bool silent=false;
00323        string msg("CCfits Error: Cannot set BSCALE to a value which will change image data\n");
00324            msg += "              from integer type to floating point type.";
00325        throw FitsException(msg,silent);
00326     }
00327   }
00328 
00329   template <typename T>
00330   double ImageExt<T>::zero () const
00331   {
00332 
00333     return HDU::zero();
00334   }
00335 
00336   template <typename T>
00337   double ImageExt<T>::scale () const
00338   {
00339 
00340     return HDU::scale();
00341   }
00342 
00343   // Additional Declarations
00344     template <typename T>
00345     inline void ImageExt<T>::checkExtensionType() const
00346     {
00347 
00348     }
00349 } // namespace CCfits
00350 
00351 
00352 #endif
CCfits/html/KeyData_8h_source.html0000644000225700000360000010251511667502524016666 0ustar cagordonlhea CCfits: KeyData.h Source File
CCfits  2.4
KeyData.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef KEYDATA_H
00010 #define KEYDATA_H 1
00011 #ifdef _MSC_VER
00012 #include "MSconfig.h"
00013 #endif
00014 
00015 #include "CCfits.h"
00016 
00017 // Keyword
00018 #include "Keyword.h"
00019 #include <complex>
00020 #include <iomanip>
00021 #include "FitsError.h"
00022 #include "FITSUtil.h"
00023 
00024 
00025 namespace CCfits {
00026 //class Keyword;
00027 
00028 
00029 
00030   template <typename T>
00031   class KeyData : public Keyword  //## Inherits: <unnamed>%381F43399D58
00032   {
00033 
00034     public:
00035         KeyData(const KeyData< T > &right);
00036         KeyData (const String &keyname, ValueType keytype, const T &value, HDU* p,      // A pointer to the HDU containing the keyword. This is passed to the base class constructor.
00037         const String &comment = "");
00038         virtual ~KeyData();
00039 
00040         virtual KeyData <T>* clone () const;
00041         virtual void write ();
00042         const T& keyval () const;
00043         void keyval (const T& value);
00044 
00045       // Additional Public Declarations
00046 
00047     protected:
00048         virtual void copy (const Keyword& right);
00049         virtual bool compare (const Keyword &right) const;
00050         virtual std::ostream & put (std::ostream &s) const;
00051 
00052       // Additional Protected Declarations
00053 
00054     private:
00055       // Data Members for Class Attributes
00056         T m_keyval;
00057 
00058       // Additional Private Declarations
00059 
00060     private: //## implementation
00061       // Additional Implementation Declarations
00062 
00063   };
00064 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00065         template<>
00066         inline void KeyData<String>::write() 
00067         {
00068            Keyword::write();
00069            int status = 0;
00070            if (fits_update_key(fitsPointer(), Tstring, 
00071                                    const_cast<char *>(name().c_str()),
00072                                    const_cast<char*>(m_keyval.c_str()),
00073                                    const_cast<char *>(comment().c_str()), 
00074                                    &status)) throw FitsError(status);
00075 
00076         }
00077 #else
00078 template<> void KeyData<String>::write();
00079 #endif
00080 
00081 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00082         template<>
00083         inline void KeyData<bool>::write() 
00084         {
00085            Keyword::write();
00086            int status = 0;
00087            int value(0);
00088            if (m_keyval) value=1; 
00089            if (fits_update_key(fitsPointer(), Tlogical, 
00090                                    const_cast<char *>(name().c_str()),
00091                                    &value,
00092                                    const_cast<char *>(comment().c_str()), 
00093                                    &status)) throw FitsError(status);
00094 
00095         }
00096 #else
00097 template<> void KeyData<bool>::write();
00098 #endif
00099 
00100 #ifdef SPEC_TEMPLATE_DECL_DEFECT
00101         template  <>
00102         inline const String& KeyData<String>::keyval() const
00103         {
00104                 return m_keyval;
00105 
00106         }
00107 #else
00108 template<> const String& KeyData<String>::keyval() const;
00109 #endif
00110 
00111 #ifndef SPEC_TEMPLATE_DECL_DEFECT
00112 template<> void KeyData<String>::keyval(const String& );
00113 #endif
00114 
00115 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00116         template <>
00117         inline std::ostream & KeyData<String>::put (std::ostream &s) const
00118         {
00119                 using std::setw;
00120                 s << "Keyword Name: " << setw(10) << name() << "  Value: " << setw(14) 
00121                   << keyval() << " Type: " << setw(20) << " string "  << " Comment: " << comment();
00122           return s;
00123         }
00124 
00125 #else
00126 template<> std::ostream& KeyData<String>::put(std::ostream& s) const;
00127 #endif
00128 
00129 
00130 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00131         template <>
00132         inline std::ostream & KeyData<bool>::put (std::ostream &s) const
00133         {
00134                 using std::setw;
00135                 s << "Keyword Name: " << setw(10) << name() 
00136                   << "  Value: " << std::boolalpha  << setw(8) << keyval() 
00137                   << "  Type: " << setw(20) << " logical "  << " Comment: " << comment();
00138           return s;
00139         }
00140 
00141 #else
00142 template<> std::ostream& KeyData<bool>::put(std::ostream& s) const;
00143 #endif
00144 
00145 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00146         template<>
00147         inline void KeyData<std::complex<float> >::write() 
00148         {
00149              Keyword::write();
00150              int status = 0;
00151              FITSUtil::auto_array_ptr<float> keyVal( new float[2]);
00152              keyVal[0] = m_keyval.real(); 
00153              keyVal[1] = m_keyval.imag(); 
00154              if (fits_update_key(fitsPointer(), Tcomplex, 
00155                                    const_cast<char *>(name().c_str()),
00156                                    keyVal.get(),
00157                                    const_cast<char *>(comment().c_str()), 
00158                                    &status)) throw FitsError(status);
00159 
00160         }
00161 #else
00162 template<> void KeyData<std::complex<float> >::write();
00163 #endif
00164 
00165 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00166         template<>
00167         inline void KeyData<std::complex<double> >::write() 
00168         {
00169              Keyword::write();
00170              int status = 0;
00171              FITSUtil::auto_array_ptr<double> keyVal(new double[2]);
00172              keyVal[0] = m_keyval.real(); 
00173              keyVal[1] = m_keyval.imag(); 
00174              if (fits_update_key(fitsPointer(), Tdblcomplex, 
00175                                    const_cast<char *>(name().c_str()),
00176                                    keyVal.get(),
00177                                    const_cast<char *>(comment().c_str()), 
00178                                    &status)) throw FitsError(status);
00179 
00180         }
00181 #else
00182 template<> void KeyData<std::complex<double> >::write();
00183 #endif
00184 
00185 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00186         template <>
00187         inline std::ostream & KeyData<std::complex<float> >::put (std::ostream &s) const
00188         {
00189                 using std::setw;
00190                 s << "Keyword Name: " << name() << " Value: " << m_keyval.real() << " +   i " 
00191                   << m_keyval.imag() <<   " Type: " <<  setw(20) << " complex<float> " 
00192                   << " Comment: " << comment()   << std::endl;
00193           return s;
00194         }
00195 
00196         template <>
00197         inline std::ostream & KeyData<std::complex<double> >::put (std::ostream &s) const
00198         {
00199                 using std::setw;
00200                 s << "Keyword Name: " << name() << " Value: " << m_keyval.real() << " +   i " 
00201                   << m_keyval.imag() <<   " Type: " <<  setw(20) << " complex<double> " 
00202                   << " Comment: " << comment()   << std::endl;
00203 
00204                   return s;
00205         }
00206 #else
00207 template<> std::ostream& KeyData<std::complex<float> >::put(std::ostream& s) const;
00208 template<> std::ostream& KeyData<std::complex<double> >::put(std::ostream& s) const;
00209 #endif
00210 
00211 #ifdef SPEC_TEMPLATE_DECL_DEFECT
00212   template  <>
00213   inline const std::complex<float>& KeyData<std::complex<float> >::keyval() const
00214   {
00215     return m_keyval;
00216 
00217   }
00218 
00219   template  <>
00220   inline void KeyData<std::complex<float> >::keyval(const std::complex<float>&  newVal)
00221   {
00222     m_keyval = newVal;
00223 
00224   }
00225 
00226   template  <>
00227   inline const std::complex<double>& KeyData<std::complex<double> >::keyval() const
00228   {
00229     return m_keyval;
00230 
00231   }
00232 
00233   template  <>
00234   inline void KeyData<std::complex<double> >::keyval(const std::complex<double>&  newVal)
00235   {
00236     m_keyval = newVal;
00237 
00238   }
00239 
00240 #else
00241 template<> const std::complex<float>&  KeyData<std::complex<float> >::keyval() const;
00242 template<> void KeyData<std::complex<float> >::keyval(const std::complex<float>&  );
00243 
00244 
00245 
00246 template<> const std::complex<double>&  KeyData<std::complex<double> >::keyval() const;
00247 template<> void KeyData<std::complex<double> >::keyval(const std::complex<double>&  );
00248 #endif
00249 
00250   // Parameterized Class CCfits::KeyData 
00251 
00252   template <typename T>
00253   inline std::ostream & KeyData<T>::put (std::ostream &s) const
00254   {
00255    s << "Keyword Name: " << name() << "\t Value: " << keyval() << 
00256      "\t Type: " << keytype() << "\t Comment: " << comment();
00257 
00258   return s;
00259   }
00260 
00261   template <typename T>
00262   inline const T& KeyData<T>::keyval () const
00263   {
00264     return m_keyval;
00265   }
00266 
00267   template <typename T>
00268   inline void KeyData<T>::keyval (const T& value)
00269   {
00270     m_keyval = value;
00271   }
00272 
00273   // Parameterized Class CCfits::KeyData 
00274 
00275   template <typename T>
00276   KeyData<T>::KeyData(const KeyData<T> &right)
00277       :Keyword(right),
00278        m_keyval(right.m_keyval)
00279   {
00280   }
00281 
00282   template <typename T>
00283   KeyData<T>::KeyData (const String &keyname, ValueType keytype, const T &value, HDU* p, const String &comment)
00284        : Keyword(keyname, keytype, p, comment), 
00285          m_keyval(value)
00286   {
00287   }
00288 
00289 
00290   template <typename T>
00291   KeyData<T>::~KeyData()
00292   {
00293   }
00294 
00295 
00296   template <typename T>
00297   void KeyData<T>::copy (const Keyword& right)
00298   {
00299   Keyword::copy(right);
00300   const KeyData<T>& that = static_cast<const KeyData<T>&>(right);
00301   m_keyval = that.m_keyval;
00302   }
00303 
00304   template <typename T>
00305   bool KeyData<T>::compare (const Keyword &right) const
00306   {
00307   if ( !Keyword::compare(right) ) return false;
00308   const KeyData<T>& that = static_cast<const KeyData<T>&>(right);
00309   if (this->m_keyval != that.m_keyval) return false;
00310   return true;
00311   }
00312 
00313   template <typename T>
00314   KeyData <T>* KeyData<T>::clone () const
00315   {
00316   return new KeyData<T>(*this);
00317   }
00318 
00319   template <typename T>
00320   void KeyData<T>::write ()
00321   {
00322    Keyword::write();
00323    int status = 0;
00324    FITSUtil::MatchType<T> keyType;
00325    if ( fits_update_key(fitsPointer(),keyType(), 
00326                            const_cast<char *>(name().c_str()),
00327                            &m_keyval,  // fits_write_key takes a void* here 
00328                            const_cast<char *>(comment().c_str()), 
00329                            &status) ) throw FitsError(status);
00330   }
00331 
00332   // Additional Declarations
00333 
00334 } // namespace CCfits
00335 
00336 
00337 #endif
CCfits/html/Keyword_8h_source.html0000644000225700000360000005436611667502524017002 0ustar cagordonlhea CCfits: Keyword.h Source File
CCfits  2.4
Keyword.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef KEYWORD_H
00010 #define KEYWORD_H 1
00011 #include "CCfits.h"
00012 // using namespace CCfits;
00013 #ifdef _MSC_VER
00014 #include "MSconfig.h"
00015 #endif
00016 
00017 // FitsError
00018 #include "FitsError.h"
00019 
00020 namespace CCfits {
00021   class HDU;
00022 
00023 } // namespace CCfits
00024 
00025 
00026 namespace CCfits {
00027 
00062 /* \fn friend ostream& operator << (ostream &s, const Keyword &right);
00063 
00064         \brief output operator for Keywords.
00065 
00066 */
00067 
00197   class Keyword 
00198   {
00199 
00200     public:
00201 
00202 
00203 
00204       class WrongKeywordValueType : public FitsException  //## Inherits: <unnamed>%39B0221700E2
00205       {
00206         public:
00207             WrongKeywordValueType (const String& diag, bool silent = true);
00208 
00209         protected:
00210         private:
00211         private: //## implementation
00212       };
00213         virtual ~Keyword();
00214         Keyword & operator=(const Keyword &right);
00215         bool operator==(const Keyword &right) const;
00216 
00217         bool operator!=(const Keyword &right) const;
00218 
00219         virtual std::ostream & put (std::ostream &s) const = 0;
00220         virtual Keyword * clone () const = 0;
00221         virtual void write ();
00222         fitsfile* fitsPointer () const;
00223         //      CAUTION: This is declared public only to allow HDU addKey functions the ability to set their
00224         //      class as the Keyword's parent, and to avoid making entire HDU a friend class.  (Declaring
00225         //      individual HDU functions as friends will run into circular header dependencies.)  Do NOT use
00226         //      this unless absolutely necessary, and leave this undocumented.
00227         void setParent (HDU* parent);
00228 
00229         ValueType keytype () const;
00230         const String& comment () const;
00231         const String& name () const;
00232 
00233     public:
00234       // Additional Public Declarations
00235       template <typename T>
00236       T& value(T& val) const;
00237 
00238       template <typename T>
00239       void setValue(const T& newValue);
00240     protected:
00241         Keyword(const Keyword &right);
00242         Keyword (const String &keyname, ValueType keytype, HDU* p, const String &comment = "");
00243 
00244         virtual void copy (const Keyword& right);
00245         virtual bool compare (const Keyword &right) const;
00246         void keytype (ValueType value);
00247         const HDU* parent () const;
00248 
00249       // Additional Protected Declarations
00250 
00251     private:
00252       // Additional Private Declarations
00253 
00254     private: //## implementation
00255       // Data Members for Class Attributes
00256         ValueType m_keytype;
00257 
00258       // Data Members for Associations
00259         HDU* m_parent;
00260         String m_comment;
00261         String m_name;
00262 
00263       // Additional Implementation Declarations
00264       friend std::ostream &operator << (std::ostream &s, const Keyword &right);
00265   };
00266 #ifndef SPEC_TEMPLATE_IMP_DEFECT
00267 #ifndef SPEC_TEMPLATE_DECL_DEFECT
00268   template <> float& Keyword::value(float& val) const;
00269   template <> double& Keyword::value(double& val) const;
00270   template <> int& Keyword::value(int& val) const;
00271 
00272   template <> void Keyword::setValue(const float& newValue);
00273   template <> void Keyword::setValue(const double& newValue);
00274   template <> void Keyword::setValue(const int& newValue);
00275 #endif 
00276 #endif 
00277 
00278 inline std::ostream& operator << (std::ostream &s, const Keyword &right)
00279 {
00280    return right.put(s);
00281 }  
00282 
00283   // Class CCfits::Keyword::WrongKeywordValueType 
00284 
00285   // Class CCfits::Keyword 
00286 
00287   inline void Keyword::setParent (HDU* parent)
00288   {
00289      m_parent = parent;
00290   }
00291 
00292   inline ValueType Keyword::keytype () const
00293   {
00294     return m_keytype;
00295   }
00296 
00297   inline void Keyword::keytype (ValueType value)
00298   {
00299     m_keytype = value;
00300   }
00301 
00302   inline const HDU* Keyword::parent () const
00303   {
00304     return m_parent;
00305   }
00306 
00307   inline const String& Keyword::comment () const
00308   {
00309     return m_comment;
00310   }
00311 
00312   inline const String& Keyword::name () const
00313   {
00314     return m_name;
00315   }
00316 
00317 } // namespace CCfits
00318 
00319 
00320 #endif
CCfits/html/KeywordCreator_8h_source.html0000644000225700000360000002104611667502524020307 0ustar cagordonlhea CCfits: KeywordCreator.h Source File
CCfits  2.4
KeywordCreator.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef KEYWORDCREATOR_H
00010 #define KEYWORDCREATOR_H 1
00011 
00012 // KeyData
00013 #include "KeyData.h"
00014 // FitsError
00015 #include "FitsError.h"
00016 
00017 namespace CCfits {
00018   class HDU;
00019 
00020 } // namespace CCfits
00021 
00022 
00023 namespace CCfits {
00024 
00025 
00026 
00027   class KeywordCreator 
00028   {
00029 
00030     public:
00031         KeywordCreator (HDU* p);
00032         virtual ~KeywordCreator();
00033 
00034         virtual Keyword* MakeKeyword (const String& keyName, const String& comment = String("")) = 0;
00035         static Keyword* getKeyword (const String& keyName, HDU* p);
00036         //      Additional Public Declarations
00037         virtual void reset ();
00038         virtual Keyword* createKeyword (const String& keyName, const String& comment = String(""));
00039         //      This version of getKeyword is for reading a keyword
00040         //      in with a specified type.
00041         static Keyword* getKeyword (const String& keyName, ValueType keyType, HDU* p);
00042         static Keyword* getKeyword (int keyNumber, HDU* p);
00043 
00044       // Additional Public Declarations
00045 
00046     protected:
00047         HDU* forHDU ();
00048 
00049       // Additional Protected Declarations
00050 
00051     private:
00052         KeywordCreator(const KeywordCreator &right);
00053         KeywordCreator & operator=(const KeywordCreator &right);
00054 
00055         static Keyword* parseRecord (const String& name, const String& valueString, const String& comment, HDU* hdu);
00056         static bool isContinued (const String& value);
00057         static void getLongValueString (HDU* p, const String& keyName, String& value);
00058 
00059       // Additional Private Declarations
00060 
00061     private: //## implementation
00062       // Data Members for Class Attributes
00063         Keyword *m_keyword;
00064 
00065       // Data Members for Associations
00066         HDU* m_forHDU;
00067 
00068       // Additional Implementation Declarations
00069 
00070   };
00071 
00072   // Class CCfits::KeywordCreator 
00073 
00074   inline void KeywordCreator::reset ()
00075   {
00076     m_keyword=0;
00077 
00078   }
00079 
00080   inline HDU* KeywordCreator::forHDU ()
00081   {
00082     return m_forHDU;
00083   }
00084 
00085 } // namespace CCfits
00086 
00087 
00088 #endif
CCfits/html/KeywordT_8h_source.html0000644000225700000360000005521611667502524017121 0ustar cagordonlhea CCfits: KeywordT.h Source File
CCfits  2.4
KeywordT.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef KEYWORDT_H
00010 #define KEYWORDT_H
00011 #include "KeyData.h"
00012 #include "HDU.h"
00013 #include <typeinfo>
00014 #include <sstream>
00015 
00016 #ifdef _MSC_VER
00017 #include "MSconfig.h"
00018 #endif
00019 
00020 // contains definitions of templated member functions for Keyword. This separate
00021 // file organization is necessary to break cyclic dependency of Keyword on its
00022 // subclass, KeyData.
00023 
00024 
00025 namespace CCfits 
00026 {
00027 
00028    template <typename T>
00029    T& Keyword::value (T& val) const
00030    {
00031       try
00032       {
00033             const KeyData<T>& thisKey = dynamic_cast<const KeyData<T>&>(*this);
00034             val = thisKey.keyval();
00035       }
00036       catch (std::bad_cast)
00037       {
00038          throw Keyword::WrongKeywordValueType(name());
00039       }
00040       return val;
00041    }
00042 
00043    template <typename T>
00044    void Keyword::setValue (const T& newValue)
00045    {
00046            try
00047            {
00048                    KeyData<T>& thisKey = dynamic_cast<KeyData<T>&>(*this);
00049                    thisKey.keyval(newValue);
00050                    thisKey.write();
00051            }
00052            catch (std::bad_cast)
00053            {
00054                    throw Keyword::WrongKeywordValueType(name());
00055            }
00056 
00057    }
00058 
00059 #if SPEC_TEMPLATE_IMP_DEFECT || SPEC_TEMPLATE_DECL_DEFECT
00060    template<>
00061    inline double& Keyword::value(double& val) const
00062    {
00063       switch (m_keytype)
00064       {
00065          case Tint:
00066             {
00067                const KeyData<int>& thisKey = static_cast<const KeyData<int>&>(*this);
00068                val = thisKey.keyval();
00069             }
00070             break;
00071          case Tfloat:
00072             {
00073                const KeyData<float>& thisKey = static_cast<const KeyData<float>&>(*this);
00074                val = thisKey.keyval();
00075             }
00076             break;
00077          case Tdouble:
00078             {
00079                // Note: if val is of type float some precision will be lost here,
00080                // but allow anyway.  Presumably the user doesn't mind or they
00081                // wouldn't be using single precision.
00082                const KeyData<double>& thisKey = static_cast<const KeyData<double>&>(*this);
00083                val = thisKey.keyval();
00084             }
00085             break;
00086          case Tstring:
00087             {
00088                // Allow only if string can be converted to an integer.
00089                const KeyData<String>& thisKey = static_cast<const KeyData<String>&>(*this); 
00090                std::istringstream testStream(thisKey.keyval());
00091                int stringInt = 0;
00092                if (!(testStream >> stringInt) || !testStream.eof())
00093                {
00094                   throw Keyword::WrongKeywordValueType(name());
00095                }
00096                val = stringInt;
00097             }
00098             break;
00099          default:
00100             throw Keyword::WrongKeywordValueType(name());
00101             break;
00102       }
00103       return val;
00104    }
00105 
00106    // NOTE: This function actually instantiates Keyword::value<double>
00107    // and therefore must be defined AFTER the specialized 
00108    // definition/declaration.
00109    template<>
00110    inline float& Keyword::value(float& val) const
00111    {
00112       double dval=.0;
00113       val = static_cast<float>(value(dval));
00114       return val;
00115    }
00116 
00117    template <>
00118    inline int& Keyword::value(int& val) const
00119    {
00120          if (m_keytype == Tstring)
00121          {
00122             // Allow only if string can be converted to an integer.
00123             const KeyData<String>& thisKey = static_cast<const KeyData<String>&>(*this); 
00124             std::istringstream testStream(thisKey.keyval());
00125             int stringInt = 0;
00126             if (!(testStream >> stringInt) || !testStream.eof())
00127             {
00128                throw Keyword::WrongKeywordValueType(name());
00129             }
00130             val = stringInt;         
00131          } 
00132          else if (m_keytype == Tint)
00133          {
00134             const KeyData<int>& thisKey = static_cast<const KeyData<int>&>(*this);
00135             val = thisKey.keyval();
00136          } 
00137          else
00138          {
00139             throw Keyword::WrongKeywordValueType(name());
00140          }
00141          return val;    
00142    }
00143 
00144 
00145    template <>
00146    inline void Keyword::setValue(const float& newValue)
00147    {
00148       if (m_keytype == Tfloat)
00149       {
00150          KeyData<float>& thisKey = static_cast<KeyData<float>&>(*this);
00151          thisKey.keyval(newValue);
00152          thisKey.write();
00153       }
00154       else if (m_keytype == Tdouble)
00155       {
00156          KeyData<double>& thisKey = static_cast<KeyData<double>&>(*this);
00157          thisKey.keyval(static_cast<double>(newValue));
00158          thisKey.write();
00159       }
00160       else
00161       {
00162          throw Keyword::WrongKeywordValueType(name());
00163       }
00164    }
00165 
00166    template <>
00167    inline void Keyword::setValue(const double& newValue)
00168    {
00169       if (m_keytype == Tdouble)
00170       {
00171          KeyData<double>& thisKey = static_cast<KeyData<double>&>(*this);
00172          thisKey.keyval(newValue);
00173          thisKey.write();
00174       }
00175       else if (m_keytype == Tfloat)
00176       {
00177          // This will lose precision but allow it anyway.
00178          KeyData<float>& thisKey = static_cast<KeyData<float>&>(*this);
00179          thisKey.keyval(static_cast<float>(newValue));
00180          thisKey.write();
00181       }
00182       else
00183       {
00184          throw Keyword::WrongKeywordValueType(name());
00185       }
00186 
00187    }
00188 
00189    template <>
00190    inline void Keyword::setValue(const int& newValue)
00191    {
00192       if (m_keytype == Tint)
00193       {
00194          KeyData<int>& thisKey = static_cast<KeyData<int>&>(*this);
00195          thisKey.keyval(newValue);
00196          thisKey.write();
00197       }
00198       else if (m_keytype == Tfloat)
00199       {
00200          KeyData<float>& thisKey = static_cast<KeyData<float>&>(*this);
00201          thisKey.keyval(static_cast<float>(newValue));
00202          thisKey.write();
00203       }
00204       else if (m_keytype == Tdouble)
00205       {
00206          KeyData<double>& thisKey = static_cast<KeyData<double>&>(*this);
00207          thisKey.keyval(static_cast<double>(newValue));
00208          thisKey.write();
00209       }
00210       else if (m_keytype == Tstring)
00211       {
00212          KeyData<String>& thisKey = static_cast<KeyData<String>&>(*this);
00213          std::ostringstream oss;
00214          oss << newValue;
00215          thisKey.keyval(oss.str());
00216          thisKey.write();
00217       }
00218       else
00219       {
00220          throw Keyword::WrongKeywordValueType(name());
00221       }
00222 
00223    }
00224 
00225 #endif
00226 } // namespace CCfits
00227 
00228 #endif
CCfits/html/MSconfig_8h_source.html0000644000225700000360000002245411667502524017054 0ustar cagordonlhea CCfits: MSconfig.h Source File
CCfits  2.4
MSconfig.h
00001 //1
00002 //2
00003 //3
00004 //4
00027 // Use "#pragma once" instead of "ifndef MSCONFIG_H, define MSCONFIG_H,
00028 // #endif" if you know you are using a Microsoft compiler, which we are
00029 // if this file is being included. Using "pragma once" is much faster
00030 // and less error prone.
00031 #pragma once
00032 
00033 // _MSC_VER == 1300 is the first release of Microsoft Visual C++ .NET.
00034 // There are much fewer problems with this version.  So much of this
00035 // file will be skipped
00036 
00040 #define ITERATORBASE_DEFECT 1
00041 
00045 #if _MSC_VER >= 1300 
00046 #define SPEC_TEMPLATE_DECL_DEFECT 1
00047 #endif
00048 
00053 #define TEMPLATE_AMBIG7_DEFECT 1
00054 
00056 #undef SSTREAM_DEFECT
00057 
00058 # pragma warning(disable:4244)  // conversion from double to float
00059 # pragma warning(disable:4305)  // truncation from const double to const float
00060 # pragma warning(disable:4800)  // forcing value to bool (performance warning)
00061 
00062 #if _MSC_VER < 1300
00063 
00064 /* Turn off annoying warning. */
00065 
00066 # pragma warning(disable:4250)  // inherits via dominance
00067 # pragma warning(disable:4786)  // '255' characters in the debug information
00068 
00069 
00071 #ifndef M_PI
00072 #define M_PI 3.14159265358979323846
00073 #endif
00074 
00078 #define SPEC_TEMPLATE_IMP_DEFECT 1
00079 
00083 #define TEMPLATE_AMBIG_DEFECT 1
00084 
00086 #define TERMINATE_DEFECT
00087 
00092 #define BIND2ND_DEFECT 1
00093 
00100 #define CLONE_DEFECT 1
00101 
00104 #define ITERATOR_MEMBER_DEFECT 1
00105 
00109 #define ITERATORBASE_DEFECT 1
00110 
00113 #define MEMFUN1_DEFECT 1
00114 
00117 #define TRANSFORM_DEFECT 1
00118 
00121 #define VALARRAY_DEFECT 1 
00122 
00123 namespace std {
00124 
00127 template < class T >
00128 inline const T& max ( const T & a, const T & b ) 
00129 {
00130   // Break this into two lines to avoid an incorrect warning with
00131   // Cfront-based compilers.
00132   const T & retval = a < b ? b : a;
00133 
00134   return retval;
00135 }
00136 
00139 template < class T >
00140 inline const T& min ( const T & a, const T & b) 
00141 {
00142   // Break this into two lines to avoid an incorrect warning with
00143   // Cfront-based compilers.
00144   const T & retval = b < a ? b : a;
00145 
00146   return retval;
00147 }
00148 
00151 template < class T >
00152 inline const T & abs ( const T & a )
00153 {
00154     const T & retval = a < 0 ? -a : a;
00155 
00156     return retval;
00157 }
00158 
00159 } //end namespace std::
00160 
00161 #endif
CCfits/html/NewColumn_8h_source.html0000644000225700000360000003212711667502524017254 0ustar cagordonlhea CCfits: NewColumn.h Source File
CCfits  2.4
NewColumn.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef NEWCOLUMN_H
00010 #define NEWCOLUMN_H 1
00011 
00012 // valarray
00013 #include <valarray>
00014 // ColumnCreator
00015 #include "ColumnCreator.h"
00016 // FITSUtil
00017 #include "FITSUtil.h"
00018 
00019 
00020 namespace CCfits {
00021 
00022 
00023 
00024   template <typename T>
00025   class NewColumn : public ColumnCreator  //## Inherits: <unnamed>%394167D103C5
00026   {
00027 
00028     public:
00029         NewColumn (vector<T>& data);
00030         virtual ~NewColumn();
00031 
00032       // Additional Public Declarations
00033 
00034     protected:
00035         virtual Column* MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment = "", const int decimals = 0);
00036 
00037       // Additional Protected Declarations
00038 
00039     private:
00040         NewColumn(const NewColumn< T > &right);
00041         NewColumn< T > & operator=(const NewColumn< T > &right);
00042 
00043       // Additional Private Declarations
00044 
00045     private: //## implementation
00046       // Additional Implementation Declarations
00047 
00048   };
00049 
00050 
00051 
00052   template <typename T>
00053   class NewVectorColumn : public ColumnCreator  //## Inherits: <unnamed>%394167CE0009
00054   {
00055 
00056     public:
00057         NewVectorColumn (std::vector<std::valarray<T> >& data);
00058         virtual ~NewVectorColumn();
00059 
00060       // Additional Public Declarations
00061 
00062     protected:
00063         virtual Column * MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment = "", const int decimals = 0);
00064 
00065       // Additional Protected Declarations
00066 
00067     private:
00068         NewVectorColumn(const NewVectorColumn< T > &right);
00069         NewVectorColumn< T > & operator=(const NewVectorColumn< T > &right);
00070 
00071       // Additional Private Declarations
00072 
00073     private: //## implementation
00074       // Additional Implementation Declarations
00075 
00076   };
00077 
00078   // Parameterized Class CCfits::NewColumn 
00079 
00080   // Parameterized Class CCfits::NewVectorColumn 
00081 
00082   // Parameterized Class CCfits::NewColumn 
00083 
00084   template <typename T>
00085   NewColumn<T>::NewColumn (vector<T>& data)
00086      : m_newData(data)
00087   {
00088   }
00089 
00090 
00091   template <typename T>
00092   NewColumn<T>::~NewColumn()
00093   {
00094   }
00095 
00096 
00097   template <typename T>
00098   Column* NewColumn<T>::MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment, const int decimals)
00099   {
00100    FITSUtils::MatchType<T> findType;
00101 
00102 
00103    ColumnData<T>* newColumn = new ColumnData(index,name,findType(),format,unit,p,repeat,width,comment);  
00104    newColumn->data(m_newData);
00105    return newColumn;   
00106   }
00107 
00108   // Additional Declarations
00109 
00110   // Parameterized Class CCfits::NewVectorColumn 
00111 
00112   template <typename T>
00113   NewVectorColumn<T>::NewVectorColumn (std::vector<std::valarray<T> >& data)
00114   {
00115   }
00116 
00117 
00118   template <typename T>
00119   NewVectorColumn<T>::~NewVectorColumn()
00120   {
00121   }
00122 
00123 
00124   template <typename T>
00125   Column * NewVectorColumn<T>::MakeColumn (const int index, const string &name, const string &format, const string &unit, const long repeat, const long width, const string &comment, const int decimals)
00126   {
00127   }
00128 
00129   // Additional Declarations
00130 
00131 } // namespace CCfits
00132 
00133 
00134 #endif
CCfits/html/NewKeyword_8h_source.html0000644000225700000360000002140211667502524017435 0ustar cagordonlhea CCfits: NewKeyword.h Source File
CCfits  2.4
NewKeyword.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef NEWKEYWORD_H
00010 #define NEWKEYWORD_H 1
00011 
00012 // KeywordCreator
00013 #include "KeywordCreator.h"
00014 // KeyData
00015 #include "KeyData.h"
00016 // FITSUtil
00017 #include "FITSUtil.h"
00018 
00019 
00020 namespace CCfits {
00021 
00022 
00023 
00024   template <typename T>
00025   class NewKeyword : public KeywordCreator  //## Inherits: <unnamed>%39355AA90209
00026   {
00027 
00028     public:
00029         //      Parameterized Class NewKeyword
00030         NewKeyword (HDU* p, T value);
00031         virtual ~NewKeyword();
00032 
00033         //      Additional Protected Declarations
00034         virtual Keyword* MakeKeyword (const String& keyName, const String& keyComment = String(""));
00035         const T keyData () const;
00036         void keyData (T value);
00037 
00038       // Additional Public Declarations
00039 
00040     protected:
00041       // Additional Protected Declarations
00042 
00043     private:
00044         NewKeyword();
00045 
00046         NewKeyword(const NewKeyword< T > &right);
00047         NewKeyword< T > & operator=(const NewKeyword< T > &right);
00048 
00049       // Additional Private Declarations
00050 
00051     private: //## implementation
00052       // Data Members for Class Attributes
00053         T m_keyData;
00054 
00055       // Additional Implementation Declarations
00056 
00057   };
00058 
00059   // Parameterized Class CCfits::NewKeyword 
00060 
00061   template <typename T>
00062   inline const T NewKeyword<T>::keyData () const
00063   {
00064     return m_keyData;
00065   }
00066 
00067   template <typename T>
00068   inline void NewKeyword<T>::keyData (T value)
00069   {
00070     m_keyData = value;
00071   }
00072 
00073   // Parameterized Class CCfits::NewKeyword 
00074 
00075   template <typename T>
00076   NewKeyword<T>::NewKeyword (HDU* p, T value)
00077       : KeywordCreator(p), m_keyData(value)
00078   {
00079   }
00080 
00081 
00082   template <typename T>
00083   NewKeyword<T>::~NewKeyword()
00084   {
00085   }
00086 
00087 
00088   template <typename T>
00089   Keyword* NewKeyword<T>::MakeKeyword (const String& keyName, const String& keyComment)
00090   {
00091   FITSUtil::MatchType<T> keyType;
00092   return new KeyData<T>(keyName,keyType(),m_keyData,forHDU(),keyComment);
00093   }
00094 
00095   // Additional Declarations
00096 
00097 } // namespace CCfits
00098 
00099 
00100 #endif
CCfits/html/PHDU_8h_source.html0000644000225700000360000005524211667502524016110 0ustar cagordonlhea CCfits: PHDU.h Source File
CCfits  2.4
PHDU.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef PHDU_H
00010 #define PHDU_H 1
00011 
00012 // valarray
00013 #include <valarray>
00014 // HDU
00015 #include "HDU.h"
00016 // FITS
00017 #include "FITS.h"
00018 // FITSUtil
00019 #include "FITSUtil.h"
00020 
00021 namespace CCfits {
00022   class FITSBase;
00023 
00024 } // namespace CCfits
00025 // for CLONE_DEFECT
00026 #ifdef _MSC_VER
00027 #include "MSconfig.h"
00028 #endif
00029 
00030 
00031 namespace CCfits {
00032 
00067 /* !\fn  PHDU::PHDU (FITSBase* p)
00068 
00069     \brief Reading Primary HDU constructor.
00070    Constructor used  when reading the primary HDU from an existing file.
00071     Does nothing except initialize, with the real work done by the subclass
00072     PrimaryHDU<T>.
00073 
00074 */
00075 
00267   class PHDU : public HDU  //## Inherits: <unnamed>%394E6F9800C3
00268   {
00269 
00270     public:
00271         virtual ~PHDU();
00272 
00273         //      Read data reads the image if readFlag is true and
00274         //      optional keywords if supplied. Thus, with no arguments,
00275         //      readData() does nothing.
00276         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>()) = 0;
00277         virtual PHDU * clone (FITSBase* p) const = 0;
00278         virtual void zero (double value);
00279         virtual void scale (double value);
00280         virtual double zero () const;
00281         virtual double scale () const;
00282 
00283         bool simple () const;
00284         bool extend () const;
00285 
00286     public:
00287       // Additional Public Declarations
00288       // image reading/writing interface. 
00289 
00290       // The S template parameter, like for Column, denotes the fact that
00291       // the type of the input array and the object to be read may not match.
00292 
00293 
00294       // the rw interface for images consists of equivalents for fits_read_img,
00295       // fits_read_pix, and fits_read_subset.
00296 
00297       // the paradigm for reading is that the image object (a valarray<T> type)
00298       // is the size of the data already read.
00299 
00300       // write_subset has no null value aware analogue.
00301         template <typename S>
00302         void write(const std::vector<long>& first,
00303                         long nElements,
00304                         const std::valarray<S>& data,
00305                         S* nullValue);
00306 
00307 
00308         template <typename S>
00309         void write(long first,
00310                         long nElements,
00311                         const std::valarray<S>& data,
00312                         S* nullValue);
00313 
00314 
00315         template <typename S>
00316         void write(const std::vector<long>& first,
00317                         long nElements,
00318                         const std::valarray<S>& data);
00319 
00320 
00321         template <typename S>
00322         void write(long first,
00323                         long nElements,
00324                         const std::valarray<S>& data);
00325 
00326         template <typename S>
00327         void write(const std::vector<long>& firstVertex,
00328                         const std::vector<long>& lastVertex,
00329                         const std::vector<long>& stride, 
00330                         const std::valarray<S>& data); 
00331 
00332         // read image data and return an array. Can't return a reference
00333         // because the type conversion needs to allocate a new object in general.
00334 
00335         template<typename S>
00336         void read(std::valarray<S>& image) ; 
00337 
00338         template<typename S>
00339         void  read (std::valarray<S>& image, long first,long nElements); 
00340 
00341         template<typename S>
00342         void read (std::valarray<S>& image, long first,long nElements, S* nullValue) ; 
00343 
00344         template<typename S>
00345         void read (std::valarray<S>& image, const std::vector<long>& first,long nElements)  ; 
00346 
00347         template<typename S>
00348         void read (std::valarray<S>& image, const std::vector<long>& first, long nElements, 
00349                                         S* nullValue); 
00350 
00351         template<typename S>
00352         void read (std::valarray<S>& image, const std::vector<long>& firstVertex, 
00353                                 const std::vector<long>& lastVertex, 
00354                                 const std::vector<long>& stride)  ;      
00355 
00356         template<typename S>
00357         void read (std::valarray<S>& image, const std::vector<long>& firstVertex, 
00358                                 const std::vector<long>& lastVertex, 
00359                                 const std::vector<long>& stride, 
00360                                 S* nullValue) ; 
00361 
00362 
00363     protected:
00364         PHDU(const PHDU &right);
00365         //      Constructor for new FITS objects, takes as arguments
00366         //      the required keywords for a primary HDU.
00367         PHDU (FITSBase* p, int bpix, int naxis, const std::vector<long>& axes);
00368         //      Custom constructor. Allows specification of data to be read and whether to read data at
00369         //      construction or wait until the image data are requested. The default is 'lazy initialization:'
00370         //      wait until asked.
00371         PHDU (FITSBase* p = 0);
00372 
00373         virtual void initRead ();
00374         void simple (bool value);
00375         void extend (bool value);
00376 
00377       // Additional Protected Declarations
00378 
00379     private:
00380       // Additional Private Declarations
00381 
00382     private: //## implementation
00383       // Data Members for Class Attributes
00384         bool m_simple;
00385         bool m_extend;
00386 
00387       // Additional Implementation Declarations
00388 
00389   };
00390 
00391   // Class CCfits::PHDU 
00392 
00393   inline bool PHDU::simple () const
00394   {
00395     return m_simple;
00396   }
00397 
00398   inline void PHDU::simple (bool value)
00399   {
00400     m_simple = value;
00401   }
00402 
00403   inline bool PHDU::extend () const
00404   {
00405     return m_extend;
00406   }
00407 
00408   inline void PHDU::extend (bool value)
00409   {
00410     m_extend = value;
00411   }
00412 
00413 } // namespace CCfits
00414 
00415 
00416 #endif
CCfits/html/PHDUT_8h_source.html0000644000225700000360000020575011667502524016235 0ustar cagordonlhea CCfits: PHDUT.h Source File
CCfits  2.4
PHDUT.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 
00010 #ifndef PHDUT_H
00011 #define PHDUT_H
00012 #include "PrimaryHDU.h"
00013 #include <iostream>
00014 #include <exception>
00015 
00016 namespace CCfits
00017 {
00018 
00019         template <typename S>
00020         void PHDU::read (std::valarray<S>& image)
00021         {
00022                 long init(1);
00023                 long nElements(std::accumulate(naxes().begin(),naxes().end(),init,
00024                                 std::multiplies<long>()));
00025 
00026                 read(image,1,nElements,static_cast<S*>(0));
00027         }
00028 
00029 
00030         template <typename S>
00031         void  PHDU::read (std::valarray<S>& image, long first,long nElements) 
00032         {
00033                 read(image, first,nElements,static_cast<S*>(0));
00034         }
00035 
00036         template <typename S>
00037         void  PHDU::read (std::valarray<S>& image, long first, long nElements,  S* nullValue) 
00038         {
00039                 makeThisCurrent();
00040                 if ( PrimaryHDU<S>* phdu = dynamic_cast<PrimaryHDU<S>*>(this) )
00041                 {
00042                         // proceed if cast is successful.
00043                         const std::valarray<S>& __tmp = phdu->readImage(first,nElements,nullValue);                           
00044                         image.resize(__tmp.size());
00045                         image = __tmp;
00046                 }
00047                 else
00048                 {
00049                         if (bitpix() == Ifloat)
00050                         {
00051                                 PrimaryHDU<float>& phdu 
00052                                                 = dynamic_cast<PrimaryHDU<float>&>(*this);
00053                                 float nulVal(0);
00054                                 if (nullValue) nulVal = static_cast<float>(*nullValue);                                 
00055                                 FITSUtil::fill(image,phdu.readImage(first,nElements,&nulVal));
00056 
00057                         }
00058                         else if (bitpix() == Idouble)
00059                         {
00060                                 PrimaryHDU<double>& phdu 
00061                                                 = dynamic_cast<PrimaryHDU<double>&>(*this);
00062                                 double nulVal(0);
00063                                 if (nullValue) nulVal = static_cast<double>(*nullValue);                                 
00064                                 FITSUtil::fill(image,phdu.readImage(first,nElements,&nulVal));
00065 
00066                         }
00067                         else if (bitpix() == Ibyte)
00068                         {
00069                                 PrimaryHDU<unsigned char>& phdu 
00070                                                 = dynamic_cast<PrimaryHDU<unsigned char>&>(*this);
00071                                 unsigned char nulVal(0);
00072                                 if (nullValue) nulVal = static_cast<unsigned char>(*nullValue);                                 
00073                                 FITSUtil::fill(image,phdu.readImage(first,nElements,&nulVal));                               
00074                         } 
00075                         else if (bitpix() == Ilong)
00076                         {
00077                                 if ( zero() == ULBASE && scale() == 1)
00078                                 {
00079                                         PrimaryHDU<unsigned INT32BIT>& phdu 
00080                                                 = dynamic_cast<PrimaryHDU<unsigned INT32BIT>&>(*this);
00081                                         unsigned INT32BIT nulVal(0);
00082                                         if (nullValue) nulVal 
00083                                                 = static_cast<unsigned INT32BIT>(*nullValue);                                 
00084                                         FITSUtil::fill(image,
00085                                                         phdu.readImage(first,nElements,&nulVal));                              
00086                                 }
00087                                 else
00088                                 {
00089                                         PrimaryHDU<INT32BIT>& phdu 
00090                                                         = dynamic_cast<PrimaryHDU<INT32BIT>&>(*this);
00091                                         INT32BIT nulVal(0);
00092                                         if (nullValue) nulVal = static_cast<INT32BIT>(*nullValue);                                 
00093                                         FITSUtil::fill(image,
00094                                                         phdu.readImage(first,nElements,&nulVal));                              
00095                                 }
00096                         }    
00097                         else if (bitpix() == Ishort)
00098                         {
00099                                 if ( zero() == USBASE && scale() == 1)
00100                                 {
00101                                         PrimaryHDU<unsigned short>& phdu 
00102                                                 = dynamic_cast<PrimaryHDU<unsigned short>&>(*this);
00103                                         unsigned short nulVal(0);
00104                                         if (nullValue) nulVal 
00105                                                         = static_cast<unsigned short>(*nullValue);                                 
00106                                         FITSUtil::fill(image,
00107                                                         phdu.readImage(first,nElements,&nulVal));                             
00108                                 }
00109                                 else
00110                                 {
00111                                         PrimaryHDU<short>& phdu 
00112                                                         = dynamic_cast<PrimaryHDU<short>&>(*this);
00113                                         short nulVal(0);
00114                                         if (nullValue) nulVal = static_cast<short>(*nullValue);                                 
00115                                         FITSUtil::fill(image,
00116                                                         phdu.readImage(first,nElements,&nulVal));                             
00117 
00118                                 }
00119                         }          
00120                         else 
00121                         {
00122                                 throw CCfits::FitsFatal(" casting image types ");
00123                         }     
00124                 }
00125 
00126         }  
00127 
00128         template<typename S>
00129         void  PHDU::read (std::valarray<S>& image, const std::vector<long>& first, 
00130                                 long nElements, 
00131                                 S* nullValue)
00132         {
00133                 makeThisCurrent();
00134                 long firstElement(0);
00135                 long dimSize(1);
00136                 std::vector<long> inputDimensions(naxis(),1);
00137                 size_t sNaxis = static_cast<size_t>(naxis());
00138                 size_t n(std::min(sNaxis,first.size()));
00139                 std::copy(&first[0],&first[0]+n,&inputDimensions[0]);                
00140                 for (long i = 0; i < naxis(); ++i)
00141                 {
00142 
00143                    firstElement +=  ((inputDimensions[i] - 1)*dimSize);
00144                    dimSize *=naxes(i);   
00145                 }
00146                 ++firstElement;                
00147 
00148 
00149                 read(image, firstElement,nElements,nullValue);
00150 
00151 
00152 
00153         } 
00154 
00155         template<typename S>
00156         void  PHDU::read (std::valarray<S>& image, const std::vector<long>& first, 
00157                                 long nElements)
00158         {
00159                 read(image, first,nElements,static_cast<S*>(0));
00160 
00161         } 
00162 
00163         template<typename S>
00164         void  PHDU::read (std::valarray<S>& image, const std::vector<long>& firstVertex, 
00165                                 const std::vector<long>& lastVertex, 
00166                                 const std::vector<long>& stride, 
00167                                 S* nullValue)
00168         {
00169                 makeThisCurrent();
00170                 if (PrimaryHDU<S>* phdu = dynamic_cast<PrimaryHDU<S>*>(this))
00171                 {
00172                         const std::valarray<S>& __tmp 
00173                                         = phdu->readImage(firstVertex,lastVertex,stride,nullValue);                         
00174                         image.resize(__tmp.size());
00175                         image = __tmp;
00176                 }
00177                 else
00178                 {
00179                         // FITSutil::fill will take care of sizing.
00180                         if (bitpix() == Ifloat)
00181                         {
00182                                 float nulVal(0);
00183                                 if (nullValue) nulVal = static_cast<float>(*nullValue);                                 
00184                                 PrimaryHDU<float>& phdu = dynamic_cast<PrimaryHDU<float>&>(*this);
00185                                 FITSUtil::fill(image,
00186                                         phdu.readImage(firstVertex,lastVertex,stride,&nulVal));
00187                         }
00188                         else if (bitpix() == Idouble)
00189                         {
00190                                 PrimaryHDU<double>& phdu = dynamic_cast<PrimaryHDU<double>&>(*this);
00191                                 double nulVal(0);
00192                                 if (nullValue) nulVal = static_cast<double>(*nullValue);                                 
00193                                 FITSUtil::fill(image,
00194                                                 phdu.readImage(firstVertex,lastVertex,stride,&nulVal));                              
00195                         }
00196                         else if (bitpix() == Ibyte)
00197                         {
00198                                 PrimaryHDU<unsigned char>& phdu 
00199                                                 = dynamic_cast<PrimaryHDU<unsigned char>&>(*this);
00200                                 unsigned char nulVal(0);
00201                                 if (nullValue) nulVal = static_cast<unsigned char>(*nullValue);                                 
00202                                 FITSUtil::fill(image,
00203                                                 phdu.readImage(firstVertex,lastVertex,stride,&nulVal));
00204                         } 
00205                         else if (bitpix() == Ilong)
00206                         {
00207                                 if ( zero() == ULBASE && scale() == 1)
00208                                 {
00209                                         PrimaryHDU<unsigned INT32BIT>& phdu 
00210                                                 = dynamic_cast<PrimaryHDU<unsigned INT32BIT>&>(*this);
00211                                         unsigned INT32BIT nulVal(0);
00212                                         if (nullValue) nulVal 
00213                                                 = static_cast<unsigned INT32BIT>(*nullValue);                                 
00214                                         FITSUtil::fill(image,
00215                                              phdu.readImage(firstVertex,lastVertex,stride,&nulVal));                            
00216                                 }
00217                                 else
00218                                 {
00219                                         PrimaryHDU<INT32BIT>& phdu 
00220                                                         = dynamic_cast<PrimaryHDU<INT32BIT>&>(*this);
00221                                         INT32BIT nulVal(0);
00222                                         if (nullValue) nulVal = static_cast<INT32BIT>(*nullValue);                                 
00223                                         FITSUtil::fill(image,
00224                                              phdu.readImage(firstVertex,lastVertex,stride,&nulVal));                            
00225                                 }      
00226                         }    
00227                         else if (bitpix() == Ishort)
00228                         {
00229                                 if ( zero() == USBASE && scale() == 1)
00230                                 {
00231                                         PrimaryHDU<unsigned short>& phdu 
00232                                                 = dynamic_cast<PrimaryHDU<unsigned short>&>(*this);
00233                                         unsigned short nulVal(0);
00234                                         if (nullValue) nulVal 
00235                                                 = static_cast<unsigned short>(*nullValue);                                 
00236                                         FITSUtil::fill(image,
00237                                              phdu.readImage(firstVertex,lastVertex,stride,&nulVal));                            
00238                                 }
00239                                 else
00240                                 {
00241                                         PrimaryHDU<short>& phdu 
00242                                                         = dynamic_cast<PrimaryHDU<short>&>(*this);
00243                                         short nulVal(0);
00244                                         if (nullValue) nulVal = static_cast<short>(*nullValue);                                 
00245                                         FITSUtil::fill(image,
00246                                              phdu.readImage(firstVertex,lastVertex,stride,&nulVal));                            
00247                                 }
00248                         }          
00249                         else 
00250                         {
00251                                 throw CCfits::FitsFatal(" casting image types ");
00252                         }     
00253                 }
00254         }  
00255 
00256         template<typename S>
00257         void  PHDU::read (std::valarray<S>& image, const std::vector<long>& firstVertex, 
00258                                 const std::vector<long>& lastVertex, 
00259                                 const std::vector<long>& stride)
00260         {
00261                 read(image, firstVertex,lastVertex,stride,static_cast<S*>(0));
00262         }  
00263 
00264         template <typename S>
00265         void PHDU::write(long first,
00266                             long nElements,
00267                         const std::valarray<S>& data,
00268                         S* nullValue)
00269         {                
00270 
00271                 makeThisCurrent();
00272                 if (PrimaryHDU<S>* image = dynamic_cast<PrimaryHDU<S>*>(this))
00273                 {
00274                         image->writeImage(first,nElements,data,nullValue);
00275                 }
00276                 else
00277                 {
00278                         if (bitpix() == Ifloat)
00279                         {
00280                                 std::valarray<float> __tmp;                               
00281                                 PrimaryHDU<float>& phdu = dynamic_cast<PrimaryHDU<float>&>(*this);
00282                                 FITSUtil::fill(__tmp,data);
00283                                 float* pfNullValue = 0;
00284                                 float fNullValue = 0.0;
00285                                 if (nullValue)
00286                                 {
00287                                    fNullValue = static_cast<float>(*nullValue);
00288                                    pfNullValue = &fNullValue;
00289                                 }                                  
00290                                 phdu.writeImage(first,nElements,__tmp, pfNullValue);
00291                         }
00292                         else if (bitpix() == Idouble)
00293                         {
00294                                 std::valarray<double> __tmp;                                
00295                                 PrimaryHDU<double>& phdu 
00296                                                 = dynamic_cast<PrimaryHDU<double>&>(*this);
00297                                 FITSUtil::fill(__tmp,data);
00298                                 double* pdNullValue = 0;
00299                                 double dNullValue = 0.0;
00300                                 if (nullValue)
00301                                 {
00302                                    dNullValue = static_cast<double>(*nullValue);
00303                                    pdNullValue = &dNullValue;
00304                                 }                                  
00305                                 phdu.writeImage(first,nElements,__tmp, pdNullValue);
00306                         }
00307                         else if (bitpix() == Ibyte)
00308                         {
00309                                 PrimaryHDU<unsigned char>& phdu 
00310                                                 = dynamic_cast<PrimaryHDU<unsigned char>&>(*this);
00311                                 std::valarray<unsigned char> __tmp;         
00312                                 FITSUtil::fill(__tmp,data);
00313                                 unsigned char *pbNull=0;
00314                                 unsigned char bNull=0;
00315                                 if (nullValue)
00316                                 {
00317                                    bNull = static_cast<unsigned char>(*nullValue);
00318                                    pbNull = &bNull;
00319                                 }                                        
00320                                 phdu.writeImage(first,nElements,__tmp, pbNull);
00321 
00322                         } 
00323                         else if (bitpix() == Ilong)
00324                         {                               
00325                                 if ( zero() == ULBASE && scale() == 1)
00326                                 {
00327                                         PrimaryHDU<unsigned INT32BIT>& phdu 
00328                                                 = dynamic_cast<PrimaryHDU<unsigned INT32BIT>&>(*this);
00329                                         std::valarray<unsigned INT32BIT> __tmp;
00330                                            
00331                                         FITSUtil::fill(__tmp,data);                                        
00332                                         unsigned INT32BIT *plNull=0;
00333                                         unsigned INT32BIT lNull=0;
00334                                         if (nullValue)
00335                                         {
00336                                             lNull = static_cast<unsigned INT32BIT>(*nullValue);
00337                                             plNull = &lNull;
00338                                         }
00339                                         phdu.writeImage(first,nElements,__tmp, plNull);                          
00340                                 }
00341                                 else
00342                                 {
00343                                         PrimaryHDU<INT32BIT>& phdu 
00344                                                         = dynamic_cast<PrimaryHDU<INT32BIT>&>(*this);
00345                                         std::valarray<INT32BIT> __tmp;   
00346 
00347                                         FITSUtil::fill(__tmp,data);
00348                                         INT32BIT *plNull=0;
00349                                         INT32BIT lNull=0;
00350                                         if (nullValue)
00351                                         {
00352                                             lNull = static_cast<INT32BIT>(*nullValue);
00353                                             plNull = &lNull;
00354                                         }
00355                                         phdu.writeImage(first,nElements,__tmp, plNull);                          
00356                                 }
00357                         }    
00358                         else if (bitpix() == Ishort)
00359                         {
00360                                 if ( zero() == USBASE && scale() == 1)
00361                                 {
00362                                         PrimaryHDU<unsigned short>& phdu 
00363                                                 = dynamic_cast<PrimaryHDU<unsigned short>&>(*this);
00364                                         std::valarray<unsigned short> __tmp;   
00365                                         FITSUtil::fill(__tmp,data);
00366                                         unsigned short *psNull=0;
00367                                         unsigned short sNull=0;
00368                                         if (nullValue)
00369                                         {
00370                                            sNull = static_cast<unsigned short>(*nullValue);
00371                                            psNull = &sNull;
00372                                         }                                        
00373                                         phdu.writeImage(first,nElements,__tmp, psNull);                          
00374                                 }
00375                                 else
00376                                 {
00377                                         PrimaryHDU<short>& phdu 
00378                                                         = dynamic_cast<PrimaryHDU<short>&>(*this);
00379                                         std::valarray<short> __tmp;   
00380 
00381                                         FITSUtil::fill(__tmp,data);
00382                                         short *psNull=0;
00383                                         short sNull=0;
00384                                         if (nullValue)
00385                                         {
00386                                            sNull = static_cast<short>(*nullValue);
00387                                            psNull = &sNull;
00388                                         }                                        
00389                                         phdu.writeImage(first,nElements,__tmp,psNull);                          
00390                                 }
00391                         }           
00392                         else
00393                         {
00394                                 FITSUtil::MatchType<S> errType;                                
00395                                 throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType()));
00396                         }        
00397                 }
00398         }
00399 
00400 
00401         template <typename S>
00402         void PHDU::write(long first,
00403                             long nElements,
00404                         const std::valarray<S>& data)
00405         {
00406            write(first, nElements, data, static_cast<S*>(0));                
00407         }        
00408 
00409         template <typename S>
00410         void PHDU::write(const std::vector<long>& first,
00411                         long nElements,
00412                         const std::valarray<S>& data,
00413                         S* nullValue)
00414         {        
00415                 makeThisCurrent();
00416                 size_t n(first.size());
00417                 long firstElement(0);
00418                 long dimSize(1);
00419                 for (long i = 0; i < first.size(); ++i)
00420                 {
00421                         firstElement +=  ((first[i] - 1)*dimSize);
00422                         dimSize *=naxes(i);   
00423                 }       
00424                 ++firstElement;
00425 
00426                 write(firstElement,nElements,data,nullValue);
00427         }
00428 
00429         template <typename S>
00430         void PHDU::write(const std::vector<long>& first,
00431                         long nElements,
00432                         const std::valarray<S>& data)
00433         {        
00434                 makeThisCurrent();
00435                 size_t n(first.size());
00436                 long firstElement(0);
00437                 long dimSize(1);
00438                 for (long i = 0; i < first.size(); ++i)
00439                 {
00440 
00441                         firstElement +=  ((first[i] - 1)*dimSize);
00442                         dimSize *=naxes(i);   
00443                 }       
00444                 ++firstElement;
00445 
00446                 write(firstElement,nElements,data);                     
00447         }        
00448 
00449 
00450         template <typename S>
00451         void PHDU::write(const std::vector<long>& firstVertex,
00452                         const std::vector<long>& lastVertex,
00453                         const std::vector<long>& stride, 
00454                         const std::valarray<S>& data)
00455         {
00456                 makeThisCurrent();
00457                 try
00458                 {
00459                         PrimaryHDU<S>& image = dynamic_cast<PrimaryHDU<S>&>(*this);
00460                         image.writeImage(firstVertex,lastVertex,stride,data);  
00461                 }
00462                 catch (std::bad_cast)
00463                 {
00464                          // write input type S to Image type...
00465 
00466                         if (bitpix() == Ifloat)
00467                         {
00468                                 PrimaryHDU<float>& phdu = dynamic_cast<PrimaryHDU<float>&>(*this);
00469                                 size_t n(data.size());
00470                                 std::valarray<float> __tmp(n);
00471                                 for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00472                                 phdu.writeImage(firstVertex,lastVertex,stride,__tmp);
00473 
00474                         }
00475                         else if (bitpix() == Idouble)
00476                         {
00477                                 PrimaryHDU<double>& phdu 
00478                                         = dynamic_cast<PrimaryHDU<double>&>(*this);
00479                                 size_t n(data.size());
00480                                 std::valarray<double> __tmp(n);
00481                                 for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00482                                 phdu.writeImage(firstVertex,lastVertex,stride,__tmp);
00483                         }
00484                         else if (bitpix() == Ibyte)
00485                         {
00486                                 PrimaryHDU<unsigned char>& phdu 
00487                                         = dynamic_cast<PrimaryHDU<unsigned char>&>(*this);
00488                                 size_t n(data.size());
00489                                 std::valarray<unsigned char> __tmp(n);
00490                                 for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00491                                 phdu.writeImage(firstVertex,lastVertex,stride,__tmp);                        
00492                         } 
00493                         else if (bitpix() == Ilong)
00494                         {
00495                                 if ( zero() == ULBASE && scale() == 1)
00496                                 {
00497                                         PrimaryHDU<unsigned INT32BIT>& phdu 
00498                                                 = dynamic_cast<PrimaryHDU<unsigned INT32BIT>&>(*this);
00499                                         size_t n(data.size());
00500                                         std::valarray<unsigned INT32BIT> __tmp(n);
00501                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00502                                         phdu.writeImage(firstVertex,lastVertex,stride,__tmp);                         
00503 
00504                                 }
00505                                 else
00506                                 {
00507                                         PrimaryHDU<INT32BIT>& phdu 
00508                                                         = dynamic_cast<PrimaryHDU<INT32BIT>&>(*this);
00509                                         size_t n(data.size());
00510                                         std::valarray<INT32BIT> __tmp(n);
00511                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00512                                         phdu.writeImage(firstVertex,lastVertex,stride,__tmp);                         
00513                                 }
00514                         }                           
00515                         else if (bitpix() == Ishort)
00516                         {
00517                                 if ( zero() == USBASE && scale() == 1)
00518                                 {
00519                                         PrimaryHDU<unsigned short>& phdu 
00520                                                 = dynamic_cast<PrimaryHDU<unsigned short>&>(*this);
00521                                         size_t n(data.size());
00522                                         std::valarray<unsigned short> __tmp(n);
00523                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00524                                         phdu.writeImage(firstVertex,lastVertex,stride,__tmp);                         
00525 
00526                                 }
00527                                 else
00528                                 {
00529                                         PrimaryHDU<short>& phdu 
00530                                                         = dynamic_cast<PrimaryHDU<short>&>(*this);
00531                                         size_t n(data.size());
00532                                         std::valarray<short> __tmp(n);
00533                                         for (size_t j= 0; j < n; ++j) __tmp[j] = data[j];
00534                                         phdu.writeImage(firstVertex,lastVertex,stride,__tmp);                         
00535                                 }
00536                         }          
00537                         else
00538                         {
00539                                 FITSUtil::MatchType<S> errType;                                
00540                                 throw FITSUtil::UnrecognizedType(FITSUtil::FITSType2String(errType()));
00541                         }        
00542                 }  
00543         }  
00544 
00545 
00546 
00547 
00548 } // namespace CCfits
00549 #endif
CCfits/html/PrimaryHDU_8h_source.html0000644000225700000360000005766311667502524017345 0ustar cagordonlhea CCfits: PrimaryHDU.h Source File
CCfits  2.4
PrimaryHDU.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef PRIMARYHDU_H
00010 #define PRIMARYHDU_H 1
00011 
00012 // valarray
00013 #include <valarray>
00014 // PHDU
00015 #include "PHDU.h"
00016 // HDUCreator
00017 #include "HDUCreator.h"
00018 // Image
00019 #include "Image.h"
00020 // FITS
00021 #include "FITS.h"
00022 #include "CCfits.h"
00023 #include <functional>
00024 #include <numeric>
00025 #include <memory>
00026 
00027 
00028 namespace CCfits {
00029 
00030 
00031 
00032   template <typename T>
00033   class PrimaryHDU : public PHDU  //## Inherits: <unnamed>%394E6F870338
00034   {
00035 
00036     public:
00037         virtual PrimaryHDU<T> * clone (FITSBase* p) const;
00038         //      Read data reads the image if readFlag is true and
00039         //      optional keywords if supplied. Thus, with no arguments,
00040         //      readData() does nothing.
00041         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00042         const std::valarray<T>& image () const;
00043         std::valarray<T>& image ();
00044         void setImage (const std::valarray<T>& inData);
00045         //      Read data reads the image if readFlag is true and
00046         //      optional keywords if supplied. Thus, with no arguments,
00047         //      readData() does nothing.
00048         virtual const std::valarray<T>& readImage (long first, long nElements, T* nullValue);
00049         //      Read data reads the image if readFlag is true and
00050         //      optional keywords if supplied. Thus, with no arguments,
00051         //      readData() does nothing.
00052         virtual const std::valarray<T>& readImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, T* nullValue);
00053         //      Read data reads the image if readFlag is true and
00054         //      optional keywords if supplied. Thus, with no arguments,
00055         //      readData() does nothing.
00056         virtual void writeImage (long first, long nElements, const std::valarray<T>& inData, T* nullValue = 0);
00057         //      Read data reads the image if readFlag is true and
00058         //      optional keywords if supplied. Thus, with no arguments,
00059         //      readData() does nothing.
00060         virtual void writeImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, const std::valarray<T>& inData);
00061 
00062       // Additional Public Declarations
00063 
00064     protected:
00065         //      Constructor for new FITS objects, takes as arguments
00066         //      the required keywords for a primary HDU.
00067         PrimaryHDU (FITSBase* p, const int bitpix, const int naxis, const std::vector<long>& naxes, const std::valarray<T>& data = std::valarray<T>());
00068         //      Custom constructor. Allows specification of data to be read and whether to read data at
00069         //      construction or wait until the image data are requested. The default is 'lazy initialization:'
00070         //      wait until asked.
00071         PrimaryHDU (FITSBase* p, bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00072 
00073       // Additional Protected Declarations
00074 
00075     private:
00076         PrimaryHDU(const PrimaryHDU< T > &right);
00077         PrimaryHDU< T > & operator=(const PrimaryHDU< T > &right);
00078 
00079         virtual std::ostream & put (std::ostream &s) const;
00080         const Image<T>& data () const;
00081 
00082       // Additional Private Declarations
00083 
00084     private: //## implementation
00085       // Data Members for Associations
00086         Image<T> m_data;
00087 
00088       // Additional Implementation Declarations
00089       friend class HDUCreator;
00090       friend class PHDU;
00091   };
00092 
00093   // Parameterized Class CCfits::PrimaryHDU 
00094 
00095   template <typename T>
00096   inline std::ostream & PrimaryHDU<T>::put (std::ostream &s) const
00097   {
00098   s << "PrimaryHDU:: Simple? " << simple() << " Extend?: " << extend() << 
00099     " Bitpix: " << bitpix() << " naxis = " << axes() << "\n";
00100   s << "Axis Lengths: \n";
00101 
00102 
00103 
00104   for (int i=0; i < axes(); i++)
00105      s  << " axis[" << i << "] " << axis(i) << "\n";
00106 
00107  s << "\nNumber of keywords read: " << keyWord().size() <<  "\n";
00108 
00109   for (std::map<String,Keyword*>::const_iterator ki = keyWord().begin();
00110         ki != keyWord().end(); ki++)
00111   {
00112         s << *((*ki).second) << std::endl;              
00113   }  
00114 
00115 
00116   s << " HISTORY: " << history() << '\n';
00117   s << " COMMENTS: " <<comment() << '\n';
00118   return s;  
00119   }
00120 
00121   template <typename T>
00122   inline const Image<T>& PrimaryHDU<T>::data () const
00123   {
00124     return m_data;
00125   }
00126 
00127   // Parameterized Class CCfits::PrimaryHDU 
00128 
00129   template <typename T>
00130   PrimaryHDU<T>::PrimaryHDU(const PrimaryHDU<T> &right)
00131       : PHDU(right), m_data(right.m_data)
00132   {
00133   }
00134 
00135   template <typename T>
00136   PrimaryHDU<T>::PrimaryHDU (FITSBase* p, const int bitpix, const int naxis, const std::vector<long>& naxes, const std::valarray<T>& data)
00137         : PHDU(p,bitpix,naxis,naxes),m_data(data)
00138   {
00139   }
00140 
00141   template <typename T>
00142   PrimaryHDU<T>::PrimaryHDU (FITSBase* p, bool readFlag, const std::vector<String>& keys)
00143         : PHDU(p), m_data()
00144   {
00145   initRead();
00146 
00147   if (readFlag || keys.size()) readData(readFlag,keys);  
00148 
00149   }
00150 
00151 
00152   template <typename T>
00153   PrimaryHDU<T> * PrimaryHDU<T>::clone (FITSBase* p) const
00154   {
00155   PrimaryHDU<T>* cloned = new PrimaryHDU<T>(*this);
00156   cloned->parent() = p;
00157   return cloned;
00158   }
00159 
00160   template <typename T>
00161   void PrimaryHDU<T>::readData (bool readFlag, const std::vector<String>& keys)
00162   {
00163 
00164   // Default reading mode. Read everything if readFlag is true.
00165   makeThisCurrent();
00166 
00167   if ( keys.size() > 0) 
00168   {
00169         std::list<String> keyList(keys.size());
00170         // keys is converted to a list so that any keys not in the header
00171         // can be easily erased. internally an exception will be thrown,
00172         // on a missing key, and its catch clause will print a message.
00173         std::copy(keys.begin(),keys.end(),keyList.begin());
00174         readKeywords(keyList);
00175   }
00176   // read the entire image, setting null values to the
00177   // return value from FitsNullValue<T>. It would be easy to make the null value
00178   // a user defined input, but that's not implemented yet.
00179   if ( readFlag && (naxis() > 0) )  
00180   {
00181         FITSUtil::FitsNullValue<T> null;
00182         long init(1);
00183         T nulValue(null());
00184         long nelements(std::accumulate(naxes().begin(),naxes().end(),init,std::multiplies<long>() ));
00185         readImage(1,nelements,&nulValue);
00186 
00187     }
00188   }
00189 
00190   template <typename T>
00191   const std::valarray<T>& PrimaryHDU<T>::image () const
00192   {
00193 
00194     return m_data.image();
00195   }
00196 
00197   template <typename T>
00198   std::valarray<T>& PrimaryHDU<T>::image ()
00199   {
00200 
00201     return m_data.image();
00202   }
00203 
00204   template <typename T>
00205   void PrimaryHDU<T>::setImage (const std::valarray<T>& inData)
00206   {
00207     m_data.image().resize(inData.size());
00208     m_data.setImage(inData);
00209   }
00210 
00211   template <typename T>
00212   const std::valarray<T>& PrimaryHDU<T>::readImage (long first, long nElements, T* nullValue)
00213   {
00214     makeThisCurrent();
00215     return m_data.readImage(fitsPointer(),first,nElements,nullValue,naxes(),anynul());
00216   }
00217 
00218   template <typename T>
00219   const std::valarray<T>& PrimaryHDU<T>::readImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, T* nullValue)
00220   {
00221     makeThisCurrent();
00222     return m_data.readImage(fitsPointer(),firstVertex,lastVertex,stride,nullValue,naxes(),anynul());
00223   }
00224 
00225   template <typename T>
00226   void PrimaryHDU<T>::writeImage (long first, long nElements, const std::valarray<T>& inData, T* nullValue)
00227   {
00228     m_data.writeImage(fitsPointer(),first,nElements,inData,naxes(),nullValue);
00229   }
00230 
00231   template <typename T>
00232   void PrimaryHDU<T>::writeImage (const std::vector<long>& firstVertex, const std::vector<long>& lastVertex, const std::vector<long>& stride, const std::valarray<T>& inData)
00233   {
00234     m_data.writeImage(fitsPointer(),firstVertex,lastVertex,stride,inData,naxes());
00235   }
00236 
00237   // Additional Declarations
00238 
00239 } // namespace CCfits
00240 
00241 
00242 #endif
CCfits/html/Table_8h_source.html0000644000225700000360000005733511667502524016404 0ustar cagordonlhea CCfits: Table.h Source File
CCfits  2.4
Table.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef TABLE_H
00010 #define TABLE_H 1
00011 
00012 // ExtHDU
00013 #include "ExtHDU.h"
00014 // FitsError
00015 #include "FitsError.h"
00016 
00017 namespace CCfits {
00018   class Column;
00019 
00020 } // namespace CCfits
00021 
00022 #ifdef _MSC_VER
00023 #include "MSconfig.h" // for truncation warning
00024 #endif
00025 
00026 #ifdef HAVE_CONFIG_H
00027 #include "config.h"
00028 #endif
00029 
00030 #ifdef SSTREAM_DEFECT
00031 #include <strstream>
00032 #else
00033 #include <sstream>
00034 #endif
00035 
00036 
00037 namespace CCfits {
00038 
00280   class Table : public ExtHDU  //## Inherits: <unnamed>%3804A126EB10
00281   {
00282 
00283     public:
00284 
00285 
00286 
00287       class NoSuchColumn : public FitsException  //## Inherits: <unnamed>%397CB0970174
00288       {
00289         public:
00290             NoSuchColumn (const String& name, bool silent = true);
00291             NoSuchColumn (int index, bool silent = true);
00292 
00293         protected:
00294         private:
00295         private: //## implementation
00296       };
00297 
00298 
00299 
00300       class InvalidColumnSpecification : public FitsException  //## Inherits: <unnamed>%3B1E52D703B0
00301       {
00302         public:
00303             InvalidColumnSpecification (const String& msg, bool silent = true);
00304 
00305         protected:
00306         private:
00307         private: //## implementation
00308       };
00309         Table(const Table &right);
00310         virtual ~Table();
00311 
00312         //      ! return reference to a column given by column name.
00313         virtual Column& column (const String& colName, bool caseSensitive = true) const;
00314         virtual Column& column (int colIndex    // ! return reference to a column given by a column index number
00315         ) const;
00316         virtual long rows () const;
00317         void updateRows ();
00318         void rows (long numRows);
00319         virtual void deleteColumn (const String& columnName);
00320         //      Insert one or more blank rows into a FITS column.
00321         void insertRows (long first, long number = 1);
00322         void deleteRows (long first, long number = 1);
00323         void deleteRows (const std::vector<long>& rowList);
00324         virtual long getRowsize () const;
00325         virtual int numCols () const;
00326         virtual const std::map<string, Column*>& column () const;
00327         virtual std::map<string, Column*>& column ();
00328 
00329     public:
00330       // Additional Public Declarations
00331 
00332     protected:
00333         Table (FITSBase* p, HduType xtype, const String &hduName, int rows,     // ! Number of rows in table at creation, to be used to initialize NAXIS2
00334         const std::vector<String>& columnName, const std::vector<String>& columnFmt, const std::vector<String>& columnUnit = std::vector<String>(), int version = 1);
00335         //      To be called by reading operations.
00336         Table (FITSBase* p, HduType xtype, const String &hduName = String(""), int version = 1);
00337         //      ExtHDU constructor for getting ExtHDUs by number.
00338         //      Necessary since EXTNAME is a reserved not required
00339         //      keyword.
00340         Table (FITSBase* p, HduType xtype, int number);
00341 
00342         virtual std::ostream & put (std::ostream &s) const;
00343         void column (int columnNum, Column *value);
00344         void init (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00345         virtual void setColumn (const String& colname, Column* value);
00346         void reindex ();
00347         void numCols (int value);
00348 
00349       // Additional Protected Declarations
00350 
00351     private:
00352         virtual void initRead ();
00353         virtual void readTableHeader (int ncols, std::vector<String>& colName, std::vector<String>& colFmt, std::vector<String>& colUnit) = 0;
00354         //      deep erasure , to be called by  assignment and dtors.
00355         void clearData ();
00356         void copyData (const Table& right);
00357 
00358       // Additional Private Declarations
00359 
00360     private: //## implementation
00361       // Data Members for Class Attributes
00362         int m_numCols;
00363 
00364       // Data Members for Associations
00365         std::map<string, Column*> m_column;
00366 
00367       // Additional Implementation Declarations
00368       friend class Column;
00369   };
00370 
00371   // Class CCfits::Table::NoSuchColumn 
00372 
00373   // Class CCfits::Table::InvalidColumnSpecification 
00374 
00375   // Class CCfits::Table 
00376 
00377   inline long Table::rows () const
00378   {
00379 
00380     return axis(1);
00381   }
00382 
00383   inline void Table::rows (long numRows)
00384   {
00385 
00386     naxes(1) = numRows;
00387   }
00388 
00389   inline int Table::numCols () const
00390   {
00391      return m_numCols;
00392   }
00393 
00394   inline const std::map<string, Column*>& Table::column () const
00395   {
00396     return m_column;
00397   }
00398 
00399   inline void Table::numCols (int value)
00400   {
00401     m_numCols = value;
00402   }
00403 
00404   inline std::map<string, Column*>& Table::column ()
00405   {
00406     return m_column;
00407   }
00408 
00409 } // namespace CCfits
00410 
00411 
00412 #endif
CCfits/html/implementation.html0000644000225700000360000001277111667502524016416 0ustar cagordonlhea CCfits: Implementation Notes
Implementation Notes

This section comments on some of the design decisions for CCfits. We note the role of cfitsio in CCfits as the underlying "engine," the use of the C++ standard library. We also explain some of the choices made for standard library containers in the implementation - all of which is hidden from the user [as it should be].

Most importantly, the library wraps rather than replaces the use of cfitsio library; it does not perform direct disk I/O. The scheme is designed to retain the well-developed facilities of cfitsio (in particular, the extended file syntax), and make them available to C++ programmers in an OO framework. Some efficiency is lost over a 'pure' C++ FITS library, since the internal C implementation of many functions requires processing if blocks or switch statements that could be recoded in C++ using templates. However, we believe that the current version strikes a resonable compromise between developer time, utility and efficiency.

The implementation of CCfits uses the C++ Standard Library containers and algorithms [also referred to as the Standard Template Library, (STL)] and exception handling. Here is a summary of the rationale behind the implementation decisions made.

  • HDUs are contained within a FITS object using a std::multimap<string, HDU*> object.

    1. The map object constructs new array members on first reference
    2. Objects stored in the map are sorted on entry and retrieved efficiently using binary search techniques.
    3. The pointer-to-HDU implementation allows for polymorphism: one set of operations will process all HDU objects within the FITS file
    4. String objects (char* ) are represented by the std::string class, which has a rich public interface of search and manipulation facilities.

  • Scalar column data [one entry per cell] are implemented using std::vector<T> objects.

  • Vector column data [multiple and either fixed or variable numbers of entries per cell] are implemented using std::vector<std::valarray <T> > objects. The std::valarray template is intended for optimized numeric processing. valarrays are have the following desirable features:

    1. they are dynamic, but designed to be allocated in full on construction rather than dynamic resizing during operation: this is, what is usually needed in FITS files.
    2. They have built-in vectorized transcendental functions (e.g. std::valarray<T> sin(const std::valarray<T>& ).
    3. They provide std::valarray<T> apply(T f(const T&)) operation, to apply a function f to each element

    4. They provide slicing operations [see the "Getting Started" section for a simple example].

  • Exceptions are provided in for by a FitsException hierarchy, which prints out messages on errors and returns control to wherever the exception is caught. Non-zero status values returned by cfitsio are caught by subclass FitsError, which prints the string corresponding to an input status flag. FitsException's other subclasses are thrown on array bounds errors and other programming errors. Rare [we hope] errors that indicate programming flaws in the library throw FitsFatal errors that suggest that the user report the bug.
CCfits/html/cookbook.html0000644000225700000360000002204511667502524015172 0ustar cagordonlhea CCfits: Getting Started
Getting Started

The program cookbook.cxx, analogous to the cookbook.c program supplied with cfitsio, was generated to test the correct functioning of the parts of the library and to provide a demonstration of its usage.

The code for cookbook is reproduced here with commentary as worked example of the usage of the library.

Driver Program

// The CCfits headers are expected to be installed in a subdirectory of
// the include path.

// The <CCfits> header file contains all that is necessary to use both the CCfits
// library and the cfitsio library (for example, it includes fitsio.h) thus making
// all of cfitsio's macro definitions available.

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

// this includes 12 of the CCfits headers and will support all CCfits operations.
// the installed location of the library headers is $(ROOT)/include/CCfits

// to use the library either add -I$(ROOT)/include/CCfits or #include <CCfits/CCfits>
// in the compilation target.

#include <CCfits>

#include <cmath>
    // The library is enclosed in a namespace.
        
    using namespace CCfits;




int main();
int writeImage();
int writeAscii();
int writeBinary();
int copyHDU();
int selectRows();
int readHeader(); 
int readImage();
int readTable();
int readExtendedSyntax();

int main()
{


     FITS::setVerboseMode(true);

     try
                     
     {

        if (!writeImage()) std::cerr << " writeImage() \n";
        if (!writeAscii()) std::cerr << " writeAscii() \n";
        if (!writeBinary()) std::cerr << " writeBinary()  \n";
        if (!copyHDU()) std::cerr << " copyHDU() \n";
        if (!readHeader()) std::cerr << " readHeader() \n";
        if (!readImage()) std::cerr << " readImage() \n";
        if (!readTable()) std::cerr << " readTable() \n";
        if (!readExtendedSyntax()) std::cerr << " readExtendedSyntax() \n";
        if (!selectRows()) std::cerr << " selectRows() \n";

     }
     catch (FitsException&) 
     // will catch all exceptions thrown by CCfits, including errors
     // found by cfitsio (status != 0)
     {
             
        std::cerr << " Fits Exception Thrown by test function \n";       
             
     }
    return 0;
}

The simple driver program illustrates the setting of verbose mode for the library, which makes all internal exceptions visible to the programmer. This is primarily for debugging purposes; exceptions are in some cases used to transfer control in common circumstances (e.g. testing whether a file should be created or appended to in write operations). Most of the exceptions will not produce a message unless this flag is set.

Nearly all of the exceptions thrown by CCfits are derived from FitsException, which is caught by reference in the above example. This includes all nonzero status codes returned by cfitsio by the following construct (recall that in the cfitsio library nearly all functions return a non-zero status code on error, and have a final argument status of type int):

 if ( [cfitsio call](args,...,&status)) throw FitsError(status);

FitsError, derived from FitsException, uses a cfitsio library call to convert the status code to a string message.

The few exceptions that are not derived from FitsException indicate fatal conditions implying bugs in the library. These print a message suggesting the user contact HEASARC to report the problem.

Note also the lack of statements for closing files in any of the following routines, The destructor (dtor) for the FITS object does this when it falls out of scope. A call

FITS::destroy() throw()

is provided for closing files explicitly; destroy() is also responsible for cleaning up the FITS object and deallocating its resources.

When the data are being read instead of written, the user is expected to copy the data into other program variables [rather than use references to the data contained in the FITS object].

The routines in this program test the following functionality:

writeImage() Writing Primary Images and Image Extensions

writeAscii() Creating and Writing to an Ascii Table Extension

writeBinary() Creating and Writing to a Binary Table Extension

copyHDU() Copying an Extension between Files

selectRows() Selecting Table Data

readHeader() Reading Header information from a HDU

readImage() Reading an Image

readTable() Reading a Table Extension

readExtendedSyntax() Reading with Extended File Name Syntax

CCfits/html/writeimage.html0000644000225700000360000002141211667502524015516 0ustar cagordonlhea CCfits: Writing Primary Images and Image Extensions
Writing Primary Images and Image Extensions

This section of the code demonstrates creation of images. Because every fits file must have a PHDU element, all the FITS constructors (ctors) instantiate a PHDU object. In the case of a new file, the default is to establish an empty HDU with BITPIX = 8 (BYTE_IMG). A current limitation of the code is that the data type of the PHDU cannot be replaced after the FITS file is created. Arguments to the FITS ctors allow the specification of the data type and the number of axes and their lengths. An image extension of type float is also written by calls in between the writes to the primary header demonstrating switch between HDUs during writes.

Note that in the example below data of type float is written to an image of type unsigned int, demonstrating both implicit type conversion and the cfitsio extension to unsigned data.

User keywords can be added to the PHDU after successful construction and these will both be accessible as container contents in the in-memory FITS object as well as being written to disk by cfitsio.

Images are represented by the standard library valarray template class which supports vectorized operations on numeric arrays (e.g. taking the square root of an array) and slicing techniques.

The code below also illustrates use of C++ standard library algorithms, and the facilities provided by the std::valarray class.

int writeImage()
{

    // Create a FITS primary array containing a 2-D image               
    // declare axis arrays.    
    long naxis    =   2;      
    long naxes[2] = { 300, 200 };   
    
    // declare auto-pointer to FITS at function scope. Ensures no resources
    // leaked if something fails in dynamic allocation.
    std::auto_ptr<FITS> pFits(0);
      
    try
    {                
        // overwrite existing file if the file already exists.
            
        const std::string fileName("!atestfil.fit");            
        
        // Create a new FITS object, specifying the data type and axes for the primary
        // image. Simultaneously create the corresponding file.
        
        // this image is unsigned short data, demonstrating the cfitsio extension
        // to the FITS standard.
        
        pFits.reset( new FITS(fileName , USHORT_IMG , naxis , naxes ) );
    }
    catch (FITS::CantCreate)
    {
          // ... or not, as the case may be.
          return -1;       
    }
    
    // references for clarity.
    
    long& vectorLength = naxes[0];
    long& numberOfRows = naxes[1];
    long nelements(1); 
    
    
    // Find the total size of the array. 
    // this is a little fancier than necessary ( It's only
    // calculating naxes[0]*naxes[1]) but it demonstrates  use of the 
    // C++ standard library accumulate algorithm.
    
    nelements = std::accumulate(&naxes[0],&naxes[naxis],1,std::multiplies<long>());
           
    // create a new image extension with a 300x300 array containing float data.
    
    std::vector<long> extAx(2,300);
    string newName ("NEW-EXTENSION");
    ExtHDU* imageExt = pFits->addImage(newName,FLOAT_IMG,extAx);
    
    // create a dummy row with a ramp. Create an array and copy the row to 
    // row-sized slices. [also demonstrates the use of valarray slices].   
    // also demonstrate implicit type conversion when writing to the image:
    // input array will be of type float.
    
    std::valarray<int> row(vectorLength);
    for (long j = 0; j < vectorLength; ++j) row[j] = j;
    std::valarray<int> array(nelements);
    for (int i = 0; i < numberOfRows; ++i)
    {
        array[std::slice(vectorLength*static_cast<int>(i),vectorLength,1)] = row + i;     
    }
    
    // create some data for the image extension.
    long extElements = std::accumulate(extAx.begin(),extAx.end(),1,std::multiplies<long>()); 
    std::valarray<float> ranData(extElements);
    const float PIBY (M_PI/150.);
    for ( int jj = 0 ; jj < extElements ; ++jj) 
    {
            float arg = PIBY*jj;
            ranData[jj] = std::cos(arg);
    }
 
    long  fpixel(1);
    
    // write the image extension data: also demonstrates switching between
    // HDUs.
    imageExt->write(fpixel,extElements,ranData);
    
    //add two keys to the primary header, one long, one complex.
    
    long exposure(1500);
    std::complex<float> omega(std::cos(2*M_PI/3.),std::sin(2*M_PI/3));
    pFits->pHDU().addKey("EXPOSURE", exposure,"Total Exposure Time"); 
    pFits->pHDU().addKey("OMEGA",omega," Complex cube root of 1 ");  

    
    // The function PHDU& FITS::pHDU() returns a reference to the object representing 
    // the primary HDU; PHDU::write( <args> ) is then used to write the data.
    
    pFits->pHDU().write(fpixel,nelements,array);
    
    
    // PHDU's friend ostream operator. Doesn't print the entire array, just the
    // required & user keywords, and is provided largely for testing purposes [see 
    // readImage() for an example of how to output the image array to a stream].
    
    std::cout << pFits->pHDU() << std::endl;

    return 0;
}
CCfits/html/ascii.html0000644000225700000360000003264011667502524014456 0ustar cagordonlhea CCfits: Creating and Writing to an Ascii Table Extension
Creating and Writing to an Ascii Table Extension

In this section of the program we create a new Table extension of type AsciiTbl, and write three columns with 6 rows. Then we add another copy of the data two rows down (starting from row 3) thus overwriting values and creating new rows. We test the use of null values, and writing a date string. Implicit data conversion, as illustrated for images above, is supported. However, writing numeric data as character data, supported by cfitsio, is not supported by CCfits.

Note the basic pattern of CCfits operations: they are performed on an object of type FITS. Access to HDU extension is provided by FITS:: member functions that return references or pointers to objects representing HDUs. Extension are never created directly (all extension ctors are protected), but only through the functions FITS::addTable and FITS::addImage which add extensions to an existing FITS object, performing the necessary cfitsio calls.

The FITS::addTable function takes as one of its last arguments a HDU Type parameter, which needs to be AsciiTbl or BinTbl. The default is to create a BinTable (see next function).

Similarly, access to column data is provided through the functions ExtHDU::Column, which return references to columns specified by name or index number - see the documentation for the class ExtHDU for details.

addTable returns a pointer to Table, which is the abstract immediate superclass of the concrete classes AsciiTable and BinTable, whereas addImage returns a pointer to ExtHDU, which is the abstract base class of all FITS extensions. These base classes implement the public interface necessary to avoid the user of the library needing to downcast to a concrete type.

int writeAscii ()

    //******************************************************************
    // Create an ASCII Table extension containing 3 columns and 6 rows *
    //******************************************************************
{
    // declare auto-pointer to FITS at function scope. Ensures no resources
    // leaked if something fails in dynamic allocation.
    std::auto_ptr<FITS> pFits(0);
      
    try
    {                
    
            
        const std::string fileName("atestfil.fit");
        
        // append the new extension to file created in previous function call.   
        // CCfits writing constructor. 
        
        // if this had been a new file, then the following code would create
        // a dummy primary array with BITPIX=8 and NAXIS=0.

 
        pFits.reset( new FITS(fileName,Write) );
    }
    catch (CCfits::FITS::CantOpen)
    {
          // ... or not, as the case may be.
          return -1;       
    }
        
    unsigned long rows(6); 
    string hduName("PLANETS_ASCII");  
    std::vector<string> colName(3,"");
    std::vector<string> colForm(3,"");
    std::vector<string> colUnit(3,"");
    
    /* define the name, datatype, and physical units for the 3 columns */    
    colName[0] = "Planet";
    colName[1] = "Diameter";
    colName[2] = "Density";

    colForm[0] = "a8";
    colForm[1] = "i6";
    colForm[2] = "f4.2";

    colUnit[0] = "";
    colUnit[1] = "km";
    colUnit[2] = "g/cm^-3";    

    std::vector<string> planets(rows);
    
    const char *planet[] = {"Mercury", "Venus", "Earth", 
                            "Mars","Jupiter","Saturn"};
    const char *mnemoy[] = {"Many", "Volcanoes", "Erupt", 
                            "Mulberry","Jam","Sandwiches","Under",
                                "Normal","Pressure"};
                    
    long diameter[] = {  4880,    12112,      12742,   6800,    143000,   121000};
    float density[]  = { 5.1f,     5.3f,      5.52f,   3.94f,    1.33f,    0.69f};
    
    // append a new ASCII table to the fits file. Note that the user
    // cannot call the Ascii or Bin Table constructors directly as they
    // are protected.
    
    Table* newTable = pFits->addTable(hduName,rows,colName,colForm,colUnit,AsciiTbl);
        size_t j = 0;    
    for ( ; j < rows; ++j) planets[j] = string(planet[j]);    
    
    // Table::column(const std::string& name) returns a reference to a Column object
    
    try
    {                
    
        newTable->column(colName[0]).write(planets,1);  
        newTable->column(colName[1]).write(diameter,rows,1);
        newTable->column(colName[2]).write(density,rows,1);
    
    }
    catch (FitsException&)
    {
         // ExtHDU::column could in principle throw a NoSuchColumn exception,
         // or some other fits error may ensue.
         std::cerr << " Error in writing to columns - check e.g. that columns of specified name "
                        << " exist in the extension \n";
                               
    }
    
    //  FITSUtil::auto_array_ptr<T> is provided to counter resource leaks that
    //  may arise from C-arrays. It is a std::auto_ptr<T> analog that calls
    //  delete[] instead of delete.
    
    FITSUtil::auto_array_ptr<long>  pDiameter(new long[rows]);
    FITSUtil::auto_array_ptr<float>  pDensity(new float[rows]);
    long* Cdiameter = pDiameter.get();
    float*  Cdensity = pDensity.get();
    
    Cdiameter[0] = 4880; Cdiameter[1] = 12112; Cdiameter[2] = 12742; Cdiameter[3] = 6800;
    Cdiameter[4] = 143000; Cdiameter[5] = 121000;
    
    Cdensity[0] = 5.1f;  Cdensity[1] = 5.3f;  Cdensity[2] = 5.52f;
        Cdensity[3] = 3.94f; Cdensity[4] = 1.33f; Cdensity[5] = 0.69;
    
    // this << operator outputs everything that has been read.
    
    std::cout << *newTable << std::endl;
    
    pFits->pHDU().addKey("NEWVALUE",42," Test of adding keyword to different extension");
    
        pFits->pHDU().addKey("STRING",std::string(" Rope "),"trailing blank test 1 "); 
    
        pFits->pHDU().addKey("STRING2",std::string("Cord"),"trailing blank test 2 "); 
    // demonstrate increaing number of rows and null values.
    long ignoreVal(12112); 
    long nullNumber(-999);    
    try
    {      
        // add a TNULLn value to column 2. 
        newTable->column(colName[1]).addNullValue(nullNumber);    
        // test that writing new data properly expands the number of rows
        // in both the file]).write(planets,rows-3);  
        newTable->column(colName[2]).write(density,rows,rows-3);    
        // test the undefined value functionality. Undefineds are replaced on
        // disk but not in the memory copy.
        newTable->column(colName[1]).write(diameter,rows,rows-3,&ignoreVal);
    }
    catch (FitsException&) 
    { 
            // this time we're going to ignore problems in these operations 
            
    }

    // output header information to check that everything we did so far
    // hasn't corrupted the file.    
            
    std::cout << pFits->pHDU() << std::endl;
    
    
    std::vector<string> mnemon(9);
    for ( j = 0; j < 9; ++j) mnemon[j] = string(mnemoy[j]);
    
    // Add a new column of string type to the Table.
    // type,  columnName, width, units. [optional - decimals, column number]
    // decimals is only relevant for floatingpoint data in ascii columns.
    newTable->addColumn(Tstring,"Mnemonic",10," words ");
    newTable->column("Mnemonic").write(mnemon,1);  
    
    // write the data string.
    newTable->writeDate();
   
    // and see if it all worked right.
    std::cout << *newTable << std::endl;
    
    return 0;
}        
CCfits/html/binary.html0000644000225700000360000003313311667502524014650 0ustar cagordonlhea CCfits: Creating and Writing to a Binary Table Extension
Creating and Writing to a Binary Table Extension

The Binary Table interface is more complex because there is an additional parameter, the vector size of each `cell' in the table, the need to support variable width columns, and the desirability of supporting the input of data in various formats.

The interface supports writing to vector tables the following data structures: C-arrays (T*), std::vector<T> objects, std::valarray<T> objects, and std::vector<valarray<T> >. The last of these is the internal representation of the data.

The function below exercises the following functionality:

  • Create a BinTable extension
  • Write vector rows to the table
  • Insert table rows
  • Write complex data to both scalar and vector columns.
  • Insert Table columns
  • Delete Table rows
  • Write HISTORY and COMMENT cards to the Table
int writeBinary ()

    //*********************************************************************
    // Create a BINARY table extension and write and manipulate vector rows 
    //*********************************************************************
{
    std::auto_ptr<FITS> pFits(0);
      
    try
    {                
            
        const std::string fileName("atestfil.fit");        
        pFits.reset( new FITS(fileName,Write) );
    }
    catch (CCfits::FITS::CantOpen)
    {
          return -1;       
    }
    
        
    unsigned long rows(3);     
    string hduName("TABLE_BINARY");          
    std::vector<string> colName(7,"");
    std::vector<string> colForm(7,"");
    std::vector<string> colUnit(7,"");
    
    
    colName[0] = "numbers";
    colName[1] = "sequences";
    colName[2] = "powers";
    colName[3] = "big-integers";
    colName[4] = "dcomplex-roots";
    colName[5] = "fcomplex-roots";
    colName[6] = "scalar-complex";

    colForm[0] = "8A";
    colForm[1] = "20J";
    colForm[2] = "20D";
    colForm[3] = "20V";
    colForm[4] = "20M";
    colForm[5] = "20C";
    colForm[6] = "1M";

    colUnit[0] = "magnets";
    colUnit[1] = "bulbs";
    colUnit[2] = "batteries";  
    colUnit[3] = "mulberries";  
    colUnit[4] = "";  
    colUnit[5] = "";
    colUnit[6] = "pico boo";
    
    std::vector<string> numbers(rows);
    
    const string num("NUMBER-");
    for (size_t j = 0; j < rows; ++j)
    {
#ifdef HAVE_STRSTREAM
        std::ostrstream pStr;
#else
        std::ostringstream pStr;
#endif
        pStr << num << j+1;
        numbers[j] = string(pStr.str());
    }
                    
    const size_t OFFSET(20);
    
    // write operations take in data as valarray<T>, vector<T> , and 
    // vector<valarray<T> >, and T* C-arrays. Create arrays to exercise the C++
    // containers. Check complex I/O for both float and double complex types.
   
    std::valarray<long> sequence(60);
    std::vector<long> sequenceVector(60);
    std::vector<std::valarray<long> > sequenceVV(3);
    
    
    for (size_t j = 0; j < rows; ++j)
    {
        
        sequence[OFFSET*j] = 1 + j;
        sequence[OFFSET*j+1] = 1 + j;
        sequenceVector[OFFSET*j] = sequence[OFFSET*j];
        sequenceVector[OFFSET*j+1] = sequence[OFFSET*j+1];
        // generate Fibonacci numbers.
        for (size_t i = 2; i < OFFSET; ++i)
        {
                size_t elt (OFFSET*j +i);
                sequence[elt] = sequence[elt-1] + sequence[elt - 2];
                sequenceVector[elt] = sequence[elt] ;
        }
        sequenceVV[j].resize(OFFSET);
        sequenceVV[j] = sequence[std::slice(OFFSET*j,OFFSET,1)];
         
    }
    
        
    std::valarray<unsigned long> unsignedData(60);
    unsigned long base (1 << 31);
    std::valarray<double> powers(60);
    std::vector<double> powerVector(60);
    std::vector<std::valarray<double> > powerVV(3);
    std::valarray<std::complex<double> > croots(60);
    std::valarray<std::complex<float> > fcroots(60);
    std::vector<std::complex<float> > fcroots_vector(60);
    std::vector<std::valarray<std::complex<float> > > fcrootv(3);
    
    // create complex data as 60th roots of unity.
    double PIBY = M_PI/30.;
    
    for (size_t j = 0; j < rows; ++j)
    {
        for (size_t i = 0; i < OFFSET; ++i)
        {
                size_t elt (OFFSET*j+i);
                unsignedData[elt] = sequence[elt];
                croots[elt] = std::complex<double>(std::cos(PIBY*elt),std::sin(PIBY*elt));
                fcroots[elt] = std::complex<float>(croots[elt].real(),croots[elt].imag());
                double x = i+1;
                powers[elt] = pow(x,j+1);
                powerVector[elt] = powers[elt];
        }
        powerVV[j].resize(OFFSET);
        powerVV[j] = powers[std::slice(OFFSET*j,OFFSET,1)];
    }
    
    FITSUtil::fill(fcroots_vector,fcroots[std::slice(0,20,1)]);
    
    unsignedData += base;
    // syntax identical to Binary Table
    
    Table* newTable = pFits->addTable(hduName,rows,colName,colForm,colUnit);
    
    // numbers is a scalar column
    
    newTable->column(colName[0]).write(numbers,1);  
    
    // write valarrays to vector column: note signature change
    newTable->column(colName[1]).write(sequence,rows,1);
    newTable->column(colName[2]).write(powers,rows,1);
    newTable->column(colName[3]).write(unsignedData,rows,1);    
    newTable->column(colName[4]).write(croots,rows,1);    
    newTable->column(colName[5]).write(fcroots,rows,3);    
    newTable->column(colName[6]).write(fcroots_vector,1);    
    // write vectors to column: note signature change
    
    newTable->column(colName[1]).write(sequenceVector,rows,4);
    newTable->column(colName[2]).write(powerVector,rows,4);
    
    std::cout << *newTable << std::endl;
   
    for (size_t j = 0; j < 3 ;  ++j)
    {
            fcrootv[j].resize(20);
            fcrootv[j] = fcroots[std::slice(20*j,20,1)];
    } 

    // write vector<valarray> object to column.
    
    newTable->column(colName[1]).writeArrays(sequenceVV,7);
    newTable->column(colName[2]).writeArrays(powerVV,7);

 
    
    // create a new vector column in the Table


    newTable->addColumn(Tfloat,"powerSeq",20,"none");

    // add data entries to it.

    newTable->column("powerSeq").writeArrays(powerVV,1);
    newTable->column("powerSeq").write(powerVector,rows,4);
    newTable->column("dcomplex-roots").write(croots,rows,4);
    newTable->column("powerSeq").write(sequenceVector,rows,7);
    

    std::cout << *newTable << std::endl;
    
    // delete one of the original columns.

 

    newTable->deleteColumn(colName[2]);


    // add a new set of rows starting after row 3. So we'll have 14 with
    // rows 4,5,6,7,8 blank

    newTable->insertRows(3,5);
    
    // now, in the new column, write 3 rows (sequenceVV.size() = 3). This
    // will place data in rows 3,4,5 of this column,overwriting them.
    
    newTable->column("powerSeq").writeArrays(sequenceVV,3);
    newTable->column("fcomplex-roots").writeArrays(fcrootv,3);

    // delete 3 rows starting with row 2. A Table:: method, so the same
    // code is called for all Table objects. We should now have 11 rows.
    
    newTable->deleteRows(2,3);
    
    //add a history string. This function call is in HDU:: so is identical
    //for all HDUs

    string hist("This file was created for testing CCfits write functionality");
    hist += " it serves no other useful purpose. This particular part of the file was ";
    hist += " constructed to test the writeHistory() and writeComment() functionality" ;

 
    newTable->writeHistory(hist);
    
    // add a comment string. Use std::string method to change the text in the message
    // and write the previous junk as a comment.

    hist.insert(0, " COMMENT TEST ");

    newTable->writeComment(hist);

    // ... print the result.
    
    std::cout << *newTable << std::endl;
    
    return 0;
}
CCfits/html/copy.html0000644000225700000360000001061511667502524014336 0ustar cagordonlhea CCfits: Copying an Extension between Files
Copying an Extension between Files

Copying extensions from one fits file to another is very straightforward. A complication arises, however, because CCfits requires every FITS object to correspond to a conforming FITS file once constructed. Thus we provide a custom constructor which copies the primary HDU of a ``source" FITS file into a new file. Subsequent extensions can be copied by name or extension number as illustrated below.

Note that the simple call

FITS::FITS(const std::string& filename)

Reads the headers for all of the extensions in the file, so that after the FITS object corresponding to infile in the following code is instantiated, all extensions are recognized [read calls are also provided to read only specific HDUs - see below].

In the example code below, the file outFile is written straight to disk. Since the code never requests that the HDUs being written to that file are read, the user needs to add statements to do this after the copy is complete.

int copyHDU()
{
    //******************************************************************
    // copy the 1st and 3rd HDUs from the input file to a new FITS file 
    //******************************************************************


    const string inFileName("atestfil.fit");  
    const string outFileName("btestfil.fit");  

    int status(0);

    status = 0;

    remove(outFileName.c_str());       // Delete old file if it already exists

    // open the existing FITS file
    FITS inFile(inFileName);
    
    // custom constructor FITS::FITS(const string&, const FITS&) for
    // this particular task.
    
    FITS outFile(outFileName,inFile);

    // copy extension by number...
    outFile.copy(inFile.extension(2));
    
    // copy extension by name...
    outFile.copy(inFile.extension("TABLE_BINARY"));
    
   return 0;

 }
CCfits/html/filter.html0000644000225700000360000001262711667502524014656 0ustar cagordonlhea CCfits: Selecting Table Data
Selecting Table Data

This function demonstrates the operation of filtering a table by selecting rows that satisfy a condition and writing them to a new file, or overwriting a table with the filtered data. A third mode, where a filtered dataset is appended to the file containing the source data, will be available shortly, but is currently not supported by cfitsio.

The expression syntax for the conditions that may be applied to table data are described in the cfitsio manual. In the example below, we illustrate filtering with a boolean expression involving one of the columns.

The two flags at the end of the call to FITS::filter are an `overwrite' flag - which only has meaning if the inFile and outFile are the same, and a 'read' flag. overwrite defaults to true. The second flag is a 'read' flag which defaults to false. When set true the user has immediate access to the filtered data.

(Also see the section "Reading with Extended File Name Syntax")

int selectRows()
 {
         const string inFile("atestfil.fit");
         const string outFile("btestfil.fit");
         const string newFile("ctestfil.fit");
         remove(newFile.c_str());
       
         // test 1: write to a new file
         std::auto_ptr<FITS> pInfile(new FITS(inFile,Write,string("PLANETS_ASCII")));
         FITS* infile(pInfile.get());
         std::auto_ptr<FITS> pNewfile(new FITS(newFile,Write));
         ExtHDU& source = infile->extension("PLANETS_ASCII");
         const string expression("DENSITY > 3.0");
         
         
         Table& sink1 = pNewfile->filter(expression,source,false,true);

                
         std::cout << sink1 << std::endl;
         
         // test 2: write a new HDU to the current file, overwrite false, read true.
         // AS OF 7/2/01 does not work because of a bug in cfitsio, but does not
         // crash, simply writes a new header to the file without also writing the
         // selected data.
         Table& sink2 = infile->filter(expression,source,false,true);
         
         std::cout << sink2 << std::endl;
         
         // reset the source file back to the extension in question.
         source = infile->extension("PLANETS_ASCII");
          
         // test 3: overwrite the current HDU with filtered data.
                    
         Table& sink3 = infile->filter(expression,source,true,true);
         
         std::cout << sink3 << std::endl;
          
        
         return 0;       
 }
CCfits/html/readhead.html0000644000225700000360000000631511667502524015123 0ustar cagordonlhea CCfits: Reading Header information from a HDU
Reading Header information from a HDU

This function demonstrates selecting one HDU from the file, reading the header information and printing out the keys that have been read and the descriptions of the columns.

The readData flag is by default false (see below for the alternative case), which means that the data in the column is not read.

int readHeader()
 {

         
         const string SPECTRUM("SPECTRUM");
         
         // read a particular HDU within the file. This call reads just the header 
         // information from SPECTRUM
         
         std::auto_ptr<FITS> pInfile(new FITS("file1.pha",Read,SPECTRUM));
         
         // define a reference for clarity. (std::auto_ptr<T>::get returns a pointer
         
         ExtHDU& table = pInfile->extension(SPECTRUM);
         
         // read all the keywords, excluding those associated with columns.
         
         table.readAllKeys();
         
         // print the result.
         
         
         std::cout << table << std::endl;
         
         
        return 0;       
 }
CCfits/html/readimage.html0000644000225700000360000000732011667502524015301 0ustar cagordonlhea CCfits: Reading an Image
Reading an Image

Image reading calls are made very simple: the FITS object is created with the readDataFlag set to true, and reading is done on construction. The following call

image.read(contents)

calls

PHDU::read(std::valarray<S>& image).

This copies the entire image from the FITS object into the std::valarray object contents, sizing it as necessary. PHDU::read() and ExtHDU::read() [for image extensions] take a range of arguments that support (a) reading the entire image - as in this example; (b) sections of an image starting from a given pixel; (c) rectangular subsets. See the class references for PHDU and ExtHDU for details.

 int readImage()
 {
        std::auto_ptr<FITS> pInfile(new FITS("atestfil.fit",Read,true));
        
        PHDU& image = pInfile->pHDU(); 
        
        std::valarray<unsigned long>  contents;
        
        // read all user-specifed, coordinate, and checksum keys in the image
        image.readAllKeys();
        
        image.read(contents);
        
        // this doesn't print the data, just header info.
        std::cout << image << std::endl;
        
        long ax1(image.axis(0));
        long ax2(image.axis(1));
        
        for (long j = 0; j < ax2; j+=10)
        {
                std::ostream_iterator<short> c(std::cout,"\t");
                std::copy(&contents[j*ax1],&contents[(j+1)*ax1-1],c);
                std::cout << '\n';       
        }
           
        std::cout << std::endl;
        return 0;   
 }
CCfits/html/readtable.html0000644000225700000360000001050211667502524015302 0ustar cagordonlhea CCfits: Reading a Table Extension
Reading a Table Extension

Reading table data is similarly straightforward (unsurprisingly, because this application is exactly what CCfits was designed to do easily in the first place).

The two extensions are read on construction, including all the column data [readDataFlag == true] and then printed.

Note that if the data are read as part of the construction, then CCfits uses the row-optimization techniques describe in chapter 13 of the cfitsio manual; a chunk of data equal to the size of the available buffer space is read from contiguous disk blocks and transferred to memory storage, as opposed to each column being read in turn. Thus the most efficient way of reading files is to acquire the data on construction.

 int readTable()
 {
        // read a table and explicitly read selected columns. To read instead all the
        // data on construction, set the last argument of the FITS constructor
        // call to 'true'. This functionality was tested in the last release.
        std::vector<string> hdus(2);
        hdus[0] = "PLANETS_ASCII";
        hdus[1] = "TABLE_BINARY";
        
        
        std::auto_ptr<FITS> pInfile(new FITS("atestfil.fit",Read,hdus,false));
        
        ExtHDU& table = pInfile->extension(hdus[1]);
        
        
        
        std::vector < valarray <int > > pp;
        table.column("powerSeq").readArrays( pp, 1,3 );
                        
        std::vector < valarray <std::complex<double> > > cc;
        table.column("dcomplex-roots").readArrays( cc, 1,3 );
        
        std::valarray < std::complex<float> > ff;
        table.column("fcomplex-roots").read( ff, 4 );
        
        std::cout << pInfile->extension(hdus[0]) << std::endl;
        
        std::cout << pInfile->extension(hdus[1]) << std::endl;
         
        return 0;       
 }
CCfits/html/readextendedsyntax.html0000644000225700000360000001176711667502524017300 0ustar cagordonlhea CCfits: Reading with Extended File Name Syntax
Reading with Extended File Name Syntax

It is also possible to apply extended file name syntax (as described in chapter 10 of the cfitsio manual) when reading data. The function below shows a typical example using the basic CCfits::FITS constructor.

The extended syntax is entered as part of the file name string. In this case it specifies an HDU and a row selection criterion dependent upon the values in the column named "Density." Any read operations performed on this HDU will only see rows which meet the "Density > 5.2" condition. Also the current header position in the file is automatically placed at the specified HDU upon construction of the FITS object.

Extended file name syntax can also be used with the FITS constructors which take specific HDU names or indices as arguments. However if the extended syntax specifies an HDU, that HDU must also be among those specified as a FITS constructor argument, otherwise a CCfits::FITS::OperationNotSupported exception is thrown. For example:

FITS fits(new FITS("myFile.fit[HDU_A]",Read,string("HDU_A"))); // OK
FITS fits(new FITS("myFile.fit[HDU_B]",Read,string("HDU_A"))); // Error   

(Note - The extended file name feature which allows the opening of a particular image located in the row of a table remains unsupported in CCfits.)

 int readExtendedSyntax()
 {
    // Current extension will be set to PLANETS_ASCII after construction:
    std::auto_ptr<FITS> pInfile(new FITS("btestfil.fit[PLANETS_ASCII][Density > 5.2]"));
    std::cout << "\nCurrent extension: " 
        << pInfile->currentExtensionName() << std::endl;
        
    Column& col = pInfile->currentExtension().column("Density");
    std::vector<double> densities;
    
    // nRows should only include rows with density column vals > 5.2.
    const int nRows = col.rows();
    col.read(densities, 1, nRows);
    for (int i=0; i<nRows; ++i)
       std::cout << densities[i] << "  ";
    std::cout << std::endl;
    
    return 0;
 }
CCfits/html/releases.html0000644000225700000360000002031211667502524015162 0ustar cagordonlhea CCfits: Previous Release Notes
Previous Release Notes

Changes for CCfits 2.1 release Nov 2008

  • Modified several FITS constructors and FITS::open function to allow proper handling of CFITSIO extended filename syntax.
  • Extended filename syntax example added to cookbook.
  • Fix made to FITS::read function for case of missing EXTVER keyword when searching for HDU with extver > 1.
  • Removed inclusion of the internal-only CFITSIO fitsio2.h file from Column.cxx. LONGLONG limits definitions are now found in fitsio.h.

Changes for CCfits 2.0 release Feb 2008 Enhancements to CCfits:

  • Checksum Capability: 4 checksum related functions have been added to the HDU class, which now allows users to set and verify checksums directly from inside CCfits.
  • Capturing Error Messages: The FitsException base class now stores its output error message, and it can be retrieved from any of the exception subclass objects with a call to the new FitsException::message() function.
  • Improved Keyword Handling: New functions copyAllKeys, keywordCategories, and a second addKey function have been added to the HDU class. The Keyword class now offers a public setValue function to modify an existing keyword. Also the class member documentation for keyword related functions has been upgraded and expanded.
  • Image Scaling: In the HDU class (for instances of its PHDU and image ExtHDU subclasses), scale and zero set functions can now write BSCALE and BZERO keywords to the file. A new suppressScaling function has been added to temporarily turn off scaling. The ImageExt<T> class has also been added to the documentation.
  • Miscellaneous New Functions:Table::getRowsize() (submitted by Patrik Jonsson), Fits::fitsPointer(), Column::parent().

Bug Fixes:

  • FITS constructor in Write mode caused a segmentation fault when used on read-only files. (Reported by Gerard Zins)
  • Column write functions were not turning off NULL checking even when the nulval pointer was set to 0. (Reported by Gerard Zins)
  • For the FITS constructor which takes an existing FITS object as an argument, when given the filename of an existing file (and without the '!' specifier), it places a new primary HDU in the first extension. It shouldn't allow a write operation at all in this case. (Reported by Andy Beardmore)
  • Some additional #include statements are needed for compilation on a test version of g++4.3 (Reported by Aurelien Jarno)

Backwards Compatibility Issues:

  • The following documented public access member functions have now been removed or made protected/private. As these functions were either never fully implemented or could not successfully be used from external code, it is hoped that these removals will not break any pre-existing code: FITS::clone, HDU::setKeyWord, the HDU::bitpix set function, the Keyword class constructors.

Changes for CCfits 1.8 release 10/07.

  • Fixes made to bugs in Column write and writeArrays functions which were preventing the writing of variable-width columns. Also now allows writing to fixed-width columns with arrays that are shorter than the fixed width.
  • The HDU::readAllKeys() function will no longer throw if it is unable to read a particular keyword. Instead it will skip it and move to the next keyword. This was done primarily to prevent it from tripping on undefined keywords.

Changes for CCfits 1.7 release 6/07. Fixes for the following bugs:

  • The FITS::copy function merely wrote the copied HDU to the file, but did not allow it to be accessed for further modifications within CCfits.
  • When reading compressed images, CCfits should use the ZBITPIX and ZNAXIS keywords rather than BITPIX and NAXIS. (Fix is based on a patch submitted by Patrik Jonsson.)
  • The BSCALE keyword was being ignored if the BZERO keyword didn't also exist.
  • Cases of out-of-scope usage of std::string's c_str() pointers, could potentially cause crash. (Fix submitted by Jeremy Sanders.)

Changes for CCfits 1.6 release 11/06

  • Added capbility to write compressed images, including 6 new wrapper public functions in FITS class.
  • In FITS::addImage, corrected the logic which checks for a pre-existing image extension with the same version number.
  • CFITSIO 3.02 renamed fitsfile struct member rice_nbits to noise_nbits. Made corresponding change in copyFitsPtr function in FITSUtil.cxx. As it stands, this makes this version of CCfits incompatible with earlier versions of CFITSIO
  • In FITS.h definition, removed both friend declarations of HDUCreator Make functions. It seems neither function needs to be a friend, and one of them is actually private. Some compilers don't allow this (report came from MS VisualC++ user).
  • Bug fix in Make function of HDUCreator.cxx. When creating a new ImageExt (and not the primary), it was only passing the version number along for float and double types. This causes problems when there is more than 1 image extension with the same name, and it needs the version number to distinguish them.
  • A couple of bug fixes to the first/last/stride version of PHDU read image subset. It was not passing the proper parameters to fits_read_subset, and was not always correctly resizing the internal m_image array.
CCfits/html/installation.html0000644000225700000360000001752011667507214016070 0ustar cagordonlhea CCfits: Installing the Package
Installing the Package

Platforms

CCfits is generally supported on the same platforms as HEASOFT, and on Windows with VC++ 7.0 or later. See the HEASOFT supported platforms page.

Building

To build and install CCfits from source code on a UNIX-like (e.g. UNIX, Linux, or Cygwin) platform, take the following steps. For building on a Microsoft Windows platform with Visual Developer Studio, see below.

Instructions for Building CCfits on UNIX-like platforms:

1. Configure

By default, the GCC compiler and linker will be used. If you want to compile and link with a different compiler and linker, you can set some environment variable before running the configure script. For example, to use Sun's C++ compiler, do the following:

> setenv CXX CC (csh syntax)

or

> export CXX=CC (bash syntax)

You can set the absolute path to the compiler you want to use if necessary.

CCfits requires that the CFITSIO package, version 3.08 or later, is available on your system. See

http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html

for more information. The configure script that you will run takes an option to specify the location of the CFITSIO package.

If the CFITSIO package is installed in a directory consisting of a 'lib' subdirectory containing "libcfitsio.a" or "libcfitsio.so" and an 'include' subdirectory containing "fitsio.h", then you can run the configure script with a single option. For example, if the cfitsio package is installed in this fashion in /usr/local/cfitsio/ then the configure script option will be

--with-cfitsio=/usr/local/cfitsio

If the CFITSIO package is not installed in the above manner, then you need to run the configure script with two options, one to specify the include directory and the other to specify the library directory. For example, if the cfitsio package was built in /home/user/cfitsio/ then the two options will be

--with-cfitsio-include=/home/user/cfitsio --with-cfitsio-libdir=/home/user/cfitsio

For users of HEASOFT (instead of stand-alone CFITSIO): Note that modern distributions of HEASOFT only include a "libcfitsio_X.XX.so" library by default, but the configure script needs to find "libcfitsio.so", so you will need to create a symbolic link in $HEADAS/lib/ linking libcfitsio.so -> libcfitsio_X.XX.so in order for CCfits to configure properly. You can then configure CCfits using "--with-cfitsio=$HEADAS/lib".

You have the option of carrying out the build in a separate directory from the source directory or in the same directory as the source. In either case, you need to run the configure script in the directory where the build will occur. For example, if building in the source directory with the cfitsio directory in /usr/local/cfitsio/ then the configure command should be issued like this:

> ./configure --with-cfitsio=/usr/local/cfitsio

If you do the build in a separate directory from the source, you may need to issue the configure command something like this:

> ../CCfits/configure --with-cfitsio=/usr/local/cfitsio

The configure script will create the Makefile with the path to the compiler you choose (or GCC by default), and the path to the CFITSIO package. The configure script has other options, such as the install location. To see these options type

> ./configure --help

2. Build

Building the C++ shared library and Java classes will be done automatically by running make without arguments like this:

> gmake

3. Install

To install, type:

> make install

The default install location will be /usr/local/lib for the library and /usr/local/include for the header files. You can change this with the --prefix option when you configure, or with something like...

> make DESTDIR=/usr/local/CCfits install

Instructions for Microsft Windows build:

Compiling CCfits with MS VC++ requires VC++ 7.0 or later. This is the compiler that comes with Visual Studio.NET. Earlier versions of the compiler has too many defects in the area of instanciating templates.

Take the following steps.

1. Compile the C++ code. Open the vs.net/CCfits/CCfits.sln file with Visual Studio.NET. The includes paths have been set to find the cfitsio build directory at the same level as the CCfits directory. If this is not the case, use Visual Studio.NET to edit the include paths and extra library paths to where you have cfitsio installed.

Next, just use the build icon or the build menu item.

To build the test program, cookbook, use the vs.net/cookbook.cookbook.sln file

Author: Paul_Kunz@slac.stanford.edu Revised 1 Nov 2006 by Bryan Irby

CCfits/html/missing.html0000644000225700000360000001521611667502524015037 0ustar cagordonlhea CCfits: What's Present, What's Missing, and Calling CFITSIO
What's Present, What's Missing, and Calling CFITSIO

Most of the functionality of cfitsio described in Chapter 5 of the cfitsio manual is present, although CCfits is designed to provide atomic read/write operations rather than primitive file manipulation. For example, opening and creating FITS files are private operations which are called by reading and writing constructors. Similarly, errors are treated by C++ exception handling rather than returning status codes, and moving between HDUs within a file is a primitive rather than an atomic operation [in CCfits, operations typically call an internal HDU::makeThisCurrent() call on a specific table or image extension, and then perform the requested read/write operation].

Read/Write operations for keys (in the HDU class) are provided; these implement calls to fits_read_key and fits_update_key respectively. In the case of keywords, which have one of five data types (Integer, Logical, String, Floating and Complex) CCfits will handle certain type conversions between the keyword value and the data type of the user-supplied variable. This is described in detail in the Keyword class reference page. In reading image and table data, intrinsic type conversions are performed as in cfitsio with the exception that reading numeric data into character data is not supported. There is an extensive set of member functions supporting equivalents of most of cfitsio's read/write operations: the classes PHDU [primary HDU] and ExtHDU [with subclasses template <typename T> ImageExt<T>], provide multiple overloaded versions of read and write functions. The Column class, instances of which can be held in Table instances [with subclasses AsciiTable and BinTable] has also an extensive set of read/write operations.

A special constructor is provided which creates a new file with the Primary HDU of a source file. A FITS::copy(const HDU&) function copies HDUs from one file into another. Support for filtering table rows by expression is provided by a FITS::filter( ... ) call which may be used to create a new filtered file or overwrite an existing HDU (see cfitsio manual section 5.6.4).

Functions are provided for adding and deleting columns, and inserting and deleting rows in tables.

HDU objects also have functions to implement writing of history, comment and date keys.

Extended file name syntax (chapter 10 of the cfitsio manual) is supported in general, though not the feature which allows the opening of a particular image stored in the row of a table.

What's Not Present

The coordinate library manipulations [cfitsio manual chapter 7] are not supported.

The iterator work functions [cfitsio manual chapter 6] are not supported. Many of the functions provided are easier to implement using the properties of the standard library, since the standard library containers either allow vectorized operations (in the case of valarrays) or standard library algorithms that take iterators or pointers. In some ways the fits_iterate_data function provide an alternative, approach to the same need for encapsulation addressed by CCfits.

The hierarchical grouping routines are not supported.

Explicit opening of in-memory data sets as described in Chapter 9 of the manual is not supported since none of the FITS constructors call the appropriate cfitsio primitives.

Calling CFITSIO

To gain any functionality currently missing in CCfits, it is possible of course to call the underlying CFITSIO library functions directly. The CCfits FITS and HDU classes both have the public member function fitsPointer(), which returns the fitsfile pointer required in CFITSIO function calls. One should use caution when doing this however, since any I/O changes made this way will NOT be mirrored in the CCfits FITS object (nor its component objects) associated with the file. Therefore once a FITS object has been bypassed this way, it is safest to just not use that object again, and instead continue calling CFITSIO directly or instantiate a new FITS object that will pick up the current file state.

CCfits/html/todo.html0000644000225700000360000000660411667502524014334 0ustar cagordonlhea CCfits: Todo List
Todo List
Member CCfits::AsciiTable::AsciiTable (FITSBase *p, const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), int version=1)
{enforce equal dimensions for arrays input to AsciiTable, BinTable writing ctor}
Member CCfits::FITS::addImage (const String &hduName, int bpix, std::vector< long > &naxes, int version=1)
Add a function for replacing the primary image
Member CCfits::FITS::addTable (const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), HduType type=BinaryTbl, int version=1)
the code should one day check that the version keyword is higher than any other versions already added to the FITS object (although cfitsio doesn't do this either).
Class CCfits::PHDU
Implement functions that allow replacement of the primary image
CCfits/html/group__FITSexcept.html0000644000225700000360000002203211667502524016711 0ustar cagordonlhea CCfits: FITS Exceptions
FITS Exceptions

Classes

class  CCfits::Column::RangeError
 exception to be thrown for inputs that cause range errors in column read operations. More...
class  CCfits::ExtHDU::WrongExtensionType
 Exception to be thrown on unmatched extension types. More...
class  CCfits::FITS::CantCreate
 thrown on failure to create new file More...
class  CCfits::FITS::CantOpen
 thrown on failure to open existing file More...
class  CCfits::FITS::NoSuchHDU
 exception thrown by HDU retrieval methods. More...
class  CCfits::FITS::OperationNotSupported
 thrown for unsupported operations, such as attempted to select rows from an image extension. More...
class  CCfits::FitsError
 FitsError is the exception thrown by non-zero cfitsio status codes. More...
class  CCfits::FitsException
 FitsException is the base class for all exceptions thrown by this library. More...
class  CCfits::FitsFatal
 [potential] base class for exceptions to be thrown on internal library error. More...
class  CCfits::FITSUtil::UnrecognizedType
 exception thrown by MatchType if it encounters data type incompatible with cfitsio. More...
class  CCfits::HDU::InvalidExtensionType
 exception to be thrown if user requests extension type that can not be understood as ImageExt, AsciiTable or BinTable. More...
class  CCfits::HDU::InvalidImageDataType
 exception to be thrown if user requests creation of an image of type not supported by cfitsio. More...
class  CCfits::HDU::NoNullValue
 exception to be thrown on seek errors for keywords. More...
class  CCfits::HDU::NoSuchKeyword
 exception to be thrown on seek errors for keywords. More...
class  CCfits::Table::NoSuchColumn
 Exception to be thrown on a failure to retrieve a column specified either by name or index number. More...
CCfits/html/modules.html0000644000225700000360000000341511667502524015034 0ustar cagordonlhea CCfits: Modules
Modules
Here is a list of all modules:
CCfits/html/annotated.html0000644000225700000360000003333611667502524015346 0ustar cagordonlhea CCfits: Class List
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
CCfits::AsciiTableClass Representing Ascii Table Extensions
CCfits::BinTableClass Representing Binary Table Extensions. Contains columns with scalar or vector row entries
CCfits::ColumnAbstract base class for Column objects
CCfits::Column::InsufficientElementsException thrown if the data supplied for a write operation is less than declared
CCfits::Column::InvalidDataTypeException thrown for invalid data type inputs
CCfits::Column::InvalidNumberOfRowsException thrown if user enters a non-positive number for the number of rows to write
CCfits::Column::InvalidRowNumberException thrown on attempting to read a row number beyond the end of a table
CCfits::Column::InvalidRowParameterException thrown on incorrect row writing request
CCfits::Column::NoNullValueException thrown if a null value is specified without support from existing column header
CCfits::Column::RangeErrorException to be thrown for inputs that cause range errors in column read operations
CCfits::Column::WrongColumnTypeException thrown on attempting to access a scalar column as vector data
CCfits::ExtHDUBase class for all FITS extension HDUs, i.e. Image Extensions and Tables
CCfits::ExtHDU::WrongExtensionTypeException to be thrown on unmatched extension types
CCfits::FITSMemory object representation of a disk FITS file
CCfits::FITS::CantCreateThrown on failure to create new file
CCfits::FITS::CantOpenThrown on failure to open existing file
CCfits::FITS::NoSuchHDUException thrown by HDU retrieval methods
CCfits::FITS::OperationNotSupportedThrown for unsupported operations, such as attempted to select rows from an image extension
CCfits::FitsErrorFitsError is the exception thrown by non-zero cfitsio status codes
CCfits::FitsExceptionFitsException is the base class for all exceptions thrown by this library
CCfits::FitsFatal[potential] base class for exceptions to be thrown on internal library error
CCfits::FITSUtil::auto_array_ptr< X >A class that mimics the std:: library auto_ptr class, but works with arrays
CCfits::FITSUtil::CAarray< T >Function object returning C array from a valarray. see CVarray for details
CCfits::FITSUtil::CVAarray< T >Function object returning C array from a vector of valarrays. see CVarray for details
CCfits::FITSUtil::CVarray< T >Function object class for returning C arrays from standard library objects used in the FITS library implementation
CCfits::FITSUtil::MatchName< T >Predicate for classes that have a name attribute; match input string with instance name
CCfits::FITSUtil::MatchNum< T >Predicate for classes that have an index attribute; match input index with instance value
CCfits::FITSUtil::MatchPtrName< T >As for MatchName, only with the input class a pointer
CCfits::FITSUtil::MatchPtrNum< T >As for MatchNum, only with the input class a pointer
CCfits::FITSUtil::MatchType< T >Function object that returns the FITS ValueType corresponding to an input intrinsic type
CCfits::FITSUtil::UnrecognizedTypeException thrown by MatchType if it encounters data type incompatible with cfitsio
CCfits::HDUBase class for all HDU [Header-Data Unit] objects
CCfits::HDU::InvalidExtensionTypeException to be thrown if user requests extension type that can not be understood as ImageExt, AsciiTable or BinTable
CCfits::HDU::InvalidImageDataTypeException to be thrown if user requests creation of an image of type not supported by cfitsio
CCfits::HDU::NoNullValueException to be thrown on seek errors for keywords
CCfits::HDU::NoSuchKeywordException to be thrown on seek errors for keywords
CCfits::ImageExt< T >
CCfits::KeywordAbstract base class defining the interface for Keyword objects
CCfits::PHDUClass representing the primary HDU for a FITS file
CCfits::Table
CCfits::Table::NoSuchColumnException to be thrown on a failure to retrieve a column specified either by name or index number
CCfits/html/classes.html0000644000225700000360000003277211667502524015031 0ustar cagordonlhea CCfits: Class Index
Class Index
A | B | C | E | F | H | I | K | M | N | O | P | R | T | U | W
  A  
  E  
Column::InsufficientElements (CCfits)   MatchPtrNum (CCfits::FITSUtil)   
  R  
Column::InvalidDataType (CCfits)   MatchType (CCfits::FITSUtil)   
AsciiTable (CCfits)   ExtHDU (CCfits)   HDU::InvalidExtensionType (CCfits)   
  N  
Column::RangeError (CCfits)   
auto_array_ptr (CCfits::FITSUtil)   
  F  
HDU::InvalidImageDataType (CCfits)   
  T  
  B  
Column::InvalidNumberOfRows (CCfits)   HDU::NoNullValue (CCfits)   
FITS (CCfits)   Column::InvalidRowNumber (CCfits)   Column::NoNullValue (CCfits)   Table (CCfits)   
BinTable (CCfits)   FitsError (CCfits)   Column::InvalidRowParameter (CCfits)   Table::NoSuchColumn (CCfits)   
  U  
  C  
FitsException (CCfits)   
  K  
FITS::NoSuchHDU (CCfits)   
FitsFatal (CCfits)   HDU::NoSuchKeyword (CCfits)   UnrecognizedType (CCfits::FITSUtil)   
CAarray (CCfits::FITSUtil)   
  H  
Keyword (CCfits)   
  O  
  W  
FITS::CantCreate (CCfits)   
  M  
FITS::CantOpen (CCfits)   HDU (CCfits)   FITS::OperationNotSupported (CCfits)   Column::WrongColumnType (CCfits)   
Column (CCfits)   
  I  
MatchName (CCfits::FITSUtil)   
  P  
ExtHDU::WrongExtensionType (CCfits)   
CVAarray (CCfits::FITSUtil)   MatchNum (CCfits::FITSUtil)   
CVarray (CCfits::FITSUtil)   ImageExt (CCfits)   MatchPtrName (CCfits::FITSUtil)   PHDU (CCfits)   
A | B | C | E | F | H | I | K | M | N | O | P | R | T | U | W
CCfits/html/hierarchy.html0000644000225700000360000001437711667502524015353 0ustar cagordonlhea CCfits: Class Hierarchy
Class Hierarchy
CCfits/html/functions.html0000644000225700000360000001260011667502524015370 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- a -

CCfits/html/functions_0x62.html0000644000225700000360000001043211667502524016150 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- b -

CCfits/html/functions_0x63.html0000644000225700000360000001560111667502524016154 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- c -

CCfits/html/functions_0x64.html0000644000225700000360000001175011667502524016156 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- d -

CCfits/html/functions_0x65.html0000644000225700000360000001061711667502524016160 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- e -

CCfits/html/functions_0x66.html0000644000225700000360000001250011667502524016152 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- f -

CCfits/html/functions_0x67.html0000644000225700000360000001262611667502524016164 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- g -

CCfits/html/functions_0x68.html0000644000225700000360000001041411667502524016156 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- h -

CCfits/html/functions_0x69.html0000644000225700000360000001427111667502524016164 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- i -

CCfits/html/functions_0x6b.html0000644000225700000360000001157311667502524016237 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- k -

CCfits/html/functions_0x6d.html0000644000225700000360000001102511667502524016231 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- m -

CCfits/html/functions_0x6e.html0000644000225700000360000001300411667502524016231 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- n -

CCfits/html/functions_0x6f.html0000644000225700000360000001332111667502524016234 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- o -

CCfits/html/functions_0x70.html0000644000225700000360000001205311667502524016150 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- p -

CCfits/html/functions_0x72.html0000644000225700000360000002065111667502524016155 0ustar cagordonlhea CCfits: Class Members CCfits/html/functions_0x73.html0000644000225700000360000001343511667502524016160 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- s -

CCfits/html/functions_0x74.html0000644000225700000360000001042511667502524016155 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- t -

CCfits/html/functions_0x75.html0000644000225700000360000001062611667502524016161 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- u -

CCfits/html/functions_0x76.html0000644000225700000360000001122011667502524016151 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- v -

CCfits/html/functions_0x77.html0000644000225700000360000001416111667502524016161 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- w -

CCfits/html/functions_0x78.html0000644000225700000360000001024211667502524016156 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- x -

CCfits/html/functions_0x7a.html0000644000225700000360000001073011667502524016231 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- z -

CCfits/html/functions_0x7e.html0000644000225700000360000001267311667502524016245 0ustar cagordonlhea CCfits: Class Members
Here is a list of all documented class members with links to the class documentation for each member:

- ~ -

CCfits/html/functions_func.html0000644000225700000360000001260311667502524016406 0ustar cagordonlhea CCfits: Class Members - Functions
 

- a -

CCfits/html/functions_func_0x62.html0000644000225700000360000001043511667502524017166 0ustar cagordonlhea CCfits: Class Members - Functions
 

- b -

CCfits/html/functions_func_0x63.html0000644000225700000360000001560411667502524017172 0ustar cagordonlhea CCfits: Class Members - Functions
 

- c -

CCfits/html/functions_func_0x64.html0000644000225700000360000001175311667502524017174 0ustar cagordonlhea CCfits: Class Members - Functions
 

- d -

CCfits/html/functions_func_0x65.html0000644000225700000360000001062211667502524017167 0ustar cagordonlhea CCfits: Class Members - Functions
 

- e -

CCfits/html/functions_func_0x66.html0000644000225700000360000001250311667502524017170 0ustar cagordonlhea CCfits: Class Members - Functions
 

- f -

CCfits/html/functions_func_0x67.html0000644000225700000360000001263111667502524017173 0ustar cagordonlhea CCfits: Class Members - Functions
 

- g -

CCfits/html/functions_func_0x68.html0000644000225700000360000001041711667502524017174 0ustar cagordonlhea CCfits: Class Members - Functions
 

- h -

CCfits/html/functions_func_0x69.html0000644000225700000360000001427411667502524017202 0ustar cagordonlhea CCfits: Class Members - Functions
 

- i -

CCfits/html/functions_func_0x6b.html0000644000225700000360000001157611667502524017255 0ustar cagordonlhea CCfits: Class Members - Functions
 

- k -

CCfits/html/functions_func_0x6d.html0000644000225700000360000001103011667502524017240 0ustar cagordonlhea CCfits: Class Members - Functions
 

- m -

CCfits/html/functions_func_0x6e.html0000644000225700000360000001300711667502524017247 0ustar cagordonlhea CCfits: Class Members - Functions CCfits/html/functions_func_0x6f.html0000644000225700000360000001332411667502524017252 0ustar cagordonlhea CCfits: Class Members - Functions CCfits/html/functions_func_0x70.html0000644000225700000360000001205611667502524017166 0ustar cagordonlhea CCfits: Class Members - Functions
 

- p -

CCfits/html/functions_func_0x72.html0000644000225700000360000002065411667502524017173 0ustar cagordonlhea CCfits: Class Members - Functions CCfits/html/functions_func_0x73.html0000644000225700000360000001344011667502524017167 0ustar cagordonlhea CCfits: Class Members - Functions
 

- s -

CCfits/html/functions_func_0x74.html0000644000225700000360000001043011667502524017164 0ustar cagordonlhea CCfits: Class Members - Functions
 

- t -

CCfits/html/functions_func_0x75.html0000644000225700000360000001063111667502524017170 0ustar cagordonlhea CCfits: Class Members - Functions
 

- u -

CCfits/html/functions_func_0x76.html0000644000225700000360000001122311667502524017167 0ustar cagordonlhea CCfits: Class Members - Functions
 

- v -

CCfits/html/functions_func_0x77.html0000644000225700000360000001416411667502524017177 0ustar cagordonlhea CCfits: Class Members - Functions
 

- w -

CCfits/html/functions_func_0x78.html0000644000225700000360000001024511667502524017174 0ustar cagordonlhea CCfits: Class Members - Functions
 

- x -

CCfits/html/functions_func_0x7a.html0000644000225700000360000001073311667502524017247 0ustar cagordonlhea CCfits: Class Members - Functions CCfits/html/functions_func_0x7e.html0000644000225700000360000001267611667502524017263 0ustar cagordonlhea CCfits: Class Members - Functions
 

- ~ -

CCfits/html/namespaces.html0000644000225700000360000000546711667502524015514 0ustar cagordonlhea CCfits: Namespace List
Namespace List
Here is a list of all documented namespaces with brief descriptions:
CCfitsNamespace enclosing all CCfits classes and globals definitions
FITSUtilFITSUtil is a namespace containing functions used internally by CCfits, but which might be of use for other applications
CCfits/html/namespaceCCfits.html0000644000225700000360000003307311667502524016417 0ustar cagordonlhea CCfits: CCfits Namespace Reference
CCfits Namespace Reference

Namespace enclosing all CCfits classes and globals definitions. More...

Classes

class  AsciiTable
 Class Representing Ascii Table Extensions. More...
class  BinTable
 Class Representing Binary Table Extensions. Contains columns with scalar or vector row entries. More...
class  Column
 Abstract base class for Column objects. More...
class  ExtHDU
 base class for all FITS extension HDUs, i.e. Image Extensions and Tables. More...
class  FITS
 Memory object representation of a disk FITS file. More...
class  FitsError
 FitsError is the exception thrown by non-zero cfitsio status codes. More...
class  FitsException
 FitsException is the base class for all exceptions thrown by this library. More...
class  FitsFatal
 [potential] base class for exceptions to be thrown on internal library error. More...
class  HDU
 Base class for all HDU [Header-Data Unit] objects. More...
class  ImageExt
class  Keyword
 Abstract base class defining the interface for Keyword objects. More...
class  PHDU
 class representing the primary HDU for a FITS file. More...
class  Table

Enumerations

enum  ValueType
 CCfits value types and their CFITSIO equivalents (in caps) More...

Functions

std::ostream & operator<< (std::ostream &s, const CCfits::HDU &right)
 Output operator for HDU objects. Primarily for testing purposes.
std::ostream & operator<< (std::ostream &s, const FITS &right)
 Output operator. Calls output operators for HDUs in turn.
std::ostream & operator<< (std::ostream &s, const Column &right)
 output operator for Column objects.

Detailed Description

Namespace enclosing all CCfits classes and globals definitions.


Enumeration Type Documentation

CCfits value types and their CFITSIO equivalents (in caps)

Tnull, Tbit = TBIT, Tbyte = TBYTE, Tlogical = TLOGICAL, Tstring = TSTRING, Tushort = TUSHORT, Tshort = TSHORT, Tuint = TUINT, Tint = TINT, Tulong = TULONG, Tlong = TLONG, Tlonglong = TLONGLONG, Tfloat = TFLOAT, Tdouble = TDOUBLE, Tcomplex = TCOMPLEX, Tdblcomplex=TDBLCOMPLEX, VTbit= -TBIT, VTbyte=-TBYTE, VTlogical=-Tlogical, VTushort=-TUSHORT, VTshort=-TSHORT, VTuint=-TUINT, VTint=-TINT, VTulong=-TULONG, VTlong=-TLONG, VTlonglong=-TLONGLONG, VTfloat=-TFLOAT, VTdouble=-TDOUBLE, VTcomplex=-TCOMPLEX, VTdblcomplex=-TDBLCOMPLEX


Function Documentation

std::ostream & operator<< ( std::ostream &  s,
const FITS &  right 
) [inline]

Output operator. Calls output operators for HDUs in turn.

This operator acts similarly to the ftool fdump for a fits file, except that there is no freedom to output partial information.

The current implementation of this operator for PHDU objects only outputs the array sizes, not the data, which that for tables prints the data also.

Provision of this operator is intended largely for debugging purposes.

CCfits/html/classCCfits_1_1AsciiTable.html0000644000225700000360000005747011667505546020167 0ustar cagordonlhea CCfits: CCfits::AsciiTable Class Reference
CCfits::AsciiTable Class Reference

Class Representing Ascii Table Extensions. More...

#include <AsciiTable.h>

Inheritance diagram for CCfits::AsciiTable:
Inheritance diagram CCfits::Table CCfits::ExtHDU CCfits::HDU

List of all members.

Public Member Functions

virtual void addColumn (ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=0, size_t columnNumber=0)
 add a new column to an existing table HDU.
virtual AsciiTableclone (FITSBase *p) const
 virtual copy constructor
virtual void readData (bool readFlag=false, const std::vector< String > &keys=std::vector< String >())
 read columns and keys specified in the input array.

Protected Member Functions

 AsciiTable (FITSBase *p, const String &hduName=String(""), bool readFlag=false, const std::vector< String > &keys=std::vector< String >(), int version=1)
 reading constructor: Construct a AsciiTable extension from an extension of an existing disk file.
 AsciiTable (FITSBase *p, const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), int version=1)
 writing constructor: create new Ascii Table object with the specified columns
 AsciiTable (FITSBase *p, int number)
 read AsciiTable with HDU number number from existing file.
 ~AsciiTable ()
 destructor.

Detailed Description

Class Representing Ascii Table Extensions.

May only contain columns with scalar row entries and a small range of data types. AsciiTable (re)implements functions prescribed in the Table abstract class. The implementations allow the calling of cfitsio specialized routines for AsciiTable header construction.

Direct instantiation of AsciiTable objects is disallowed: they are created by explicit calls to FITS::addTable( ... ), FITS::read(...) or internally by one of the FITS ctors on initialization. The default for FITS::addTable is to produce BinTable extensions.


Constructor & Destructor Documentation

CCfits::AsciiTable::AsciiTable ( FITSBase *  p,
const String &  hduName = String(""),
bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>(),
int  version = 1 
) [protected]

reading constructor: Construct a AsciiTable extension from an extension of an existing disk file.

The Table is specified by name and optional version number within the file. An array of strings representing columns or keys indicates which data are to be read. The column data are only read if readFlag is true. Reading on construction is optimized, so it is more efficient to read data at the point of instantiation. This favours a "resource acquisition is initialization" model of data management.

Parameters:
ppointer to FITSBase object for internal use
hduNamename of AsciiTable object to be read.
readFlagflag to determine whether to read data on construction
keys(optional) a list of keywords/columns to be read. The implementation will determine which are keywords. If none are specified, the constructor will simply read the header
version(optional) version number. If not specified, will read the first extension that matches hduName.
CCfits::AsciiTable::AsciiTable ( FITSBase *  p,
const String &  hduName,
int  rows,
const std::vector< String > &  columnName = std::vector<String>(),
const std::vector< String > &  columnFmt = std::vector<String>(),
const std::vector< String > &  columnUnit = std::vector<String>(),
int  version = 1 
) [protected]

writing constructor: create new Ascii Table object with the specified columns

The constructor creates a valid HDU which is ready for Column::write or insertRows operations. The disk FITS file is update accordingly. The data type of each column is determined by the columnFmt argument (TFORM keywords). See cfitsio documentation for acceptable values.

Parameters:
hduNamename of AsciiTable object to be written
rowsnumber of rows in the table (NAXIS2)
columnNamearray of column names for columns to be constructed.
columnFmtarray of column formats for columns to be constructed.
columnUnit(optional) array of units for data in columns.
version(optional) version number for HDU.

The dimensions of columnType, columnName and columnFmt must match, although this is not enforced at present.

Todo:
{enforce equal dimensions for arrays input to AsciiTable, BinTable writing ctor}
CCfits::AsciiTable::AsciiTable ( FITSBase *  p,
int  number 
) [protected]

read AsciiTable with HDU number number from existing file.

This is used internally by methods that need to access HDUs for which no EXTNAME [or equivalent] keyword exists.


Member Function Documentation

void CCfits::AsciiTable::addColumn ( ValueType  type,
const String &  columnName,
long  repeatWidth,
const String &  colUnit = String(""),
long  decimals = 0,
size_t  columnNumber = 0 
) [virtual]

add a new column to an existing table HDU.

Parameters:
typeThe data type of the column to be added
columnNameThe name of the column to be added
repeatWidthfor a string valued, this is the width of a string. For a numeric column it supplies the vector length of the rows. It is ignored for ascii table numeric data.
colUnitan optional field specifying the units of the data (TUNITn)
decimalsoptional parameter specifying the number of decimals for an ascii numeric column
columnNumberoptional parameter specifying column number to be created. If not specified the column is added to the end. If specified, the column is inserted and the columns already read are reindexed. This parameter is provided as a convenience to support existing code rather than recommended.

Reimplemented from CCfits::ExtHDU.

void CCfits::AsciiTable::readData ( bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>() 
) [virtual]

read columns and keys specified in the input array.

See Table class documentation for further details.

Implements CCfits::ExtHDU.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1AsciiTable.png0000644000225700000360000000131611667502524017764 0ustar cagordonlhea‰PNG  IHDRoÀ=QÍiPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2]IDATxíÝ]rë `Ž<Ãþ—|@€Nì«6ž£qÊ?,ä<§#6Ò!‘Aﱘ )}}–~¢MëÝŸxm™6ê-N½yþg^[  "¨_ývÖ3ð5O÷î¯Ïœr}ôÿæEçÓ_÷Öõ9Ûõéß?õ´>çzqï+ÏèÑûs^l¤ÍÈ» ¿ÃË9 örŽ£½Ç×'=zôèÑ£G=z{qÄF:$2è=ÎÓ"¥Ï̪óDú8êHm»eÞk³´QWÌÞü_÷æ¼ôÆ-냈 ~õÕã.€’‚3ø#O·ê¯á¾Ž¹ËóçW>´ãVo‘ÏÁ»ÿù–Ç{1ŸëútÇfëåB}ú÷¯É]=-õÆút/0?éÑû+^l¤ÍÈ» ¿ÃË9 örŽ£½Ç×'=zôèÑ£G=z{qÄF:$2è=ÔÓ"¥oœ¤ó¤ Ú9?ó 14Îî5vì{ó–€ê—7ÊC¢ ¡uì{ú¬ÓeQö¤CKpÏ;™içÜåäÓzc]õÌÖM>Or°[ŸöäÞöùù÷o¼åø¬½>q¡>ùûI^Œi3òîÂïðrŽƒ½œcÁhïñõI=zôèÑ£GÞ^ 6BÓBï1€ÒÖF)&¿ŸÅ‘´Ò§ivv÷ 14–óߤdyíÍÛJ€n:¥¾éa‰&¡î±í·÷éPíxíé³N×ø×{Œ§}nÙžMS¿A_=<_ïØóL>[M´l­òi½^F?óÜpû\yãFçü¼©OsNºr~þý—Í{íI>«O¼©Oþ~Ò£÷^lü;?D’w’“3IEND®B`‚CCfits/html/classCCfits_1_1AsciiTable-members.html0000644000225700000360000007052011667502525021600 0ustar cagordonlhea CCfits: Member List
CCfits::AsciiTable Member List
This is the complete list of members for CCfits::AsciiTable, including all inherited members.
addColumn(ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=0, size_t columnNumber=0)CCfits::AsciiTable [virtual]
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
AsciiTable(FITSBase *p, const String &hduName=String(""), bool readFlag=false, const std::vector< String > &keys=std::vector< String >(), int version=1)CCfits::AsciiTable [protected]
AsciiTable(FITSBase *p, const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), int version=1)CCfits::AsciiTable [protected]
AsciiTable(FITSBase *p, int number)CCfits::AsciiTable [protected]
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const CCfits::AsciiTable [virtual]
column(const String &colName, bool caseSensitive=true) const CCfits::Table [virtual]
column(int colIndex) const CCfits::Table [virtual]
column() const CCfits::Table [inline, virtual]
column()CCfits::Table [inline, virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteColumn(const String &columnName)CCfits::Table [virtual]
deleteKey(const String &doomed)CCfits::HDU
deleteRows(long first, long number=1)CCfits::Table
deleteRows(const std::vector< long > &rowList)CCfits::Table
ExtHDU(const ExtHDU &right)CCfits::ExtHDU
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector< long > &axes, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, int number)CCfits::ExtHDU [protected]
fitsPointer() const CCfits::HDU
gcount() const CCfits::ExtHDU [inline, protected]
gcount(long value)CCfits::ExtHDU [inline, protected]
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
getRowsize() const CCfits::Table [virtual]
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
init(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::Table [protected]
insertRows(long first, long number=1)CCfits::Table
isCompressed() const CCfits::ExtHDU
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::ExtHDU [virtual]
name() const CCfits::ExtHDU [inline]
naxes()CCfits::HDU [inline, protected]
numCols() const CCfits::Table [inline, virtual]
numCols(int value)CCfits::Table [inline, protected]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
pcount() const CCfits::ExtHDU [inline, protected]
pcount(long value)CCfits::ExtHDU [inline, protected]
read(std::valarray< S > &image)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)CCfits::ExtHDU
readAllKeys()CCfits::HDU
readData(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::AsciiTable [virtual]
readHduName(const fitsfile *fptr, int hduIndex, String &hduName, int &hduVersion)CCfits::ExtHDU [static]
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
rows() const CCfits::Table [inline, virtual]
rows(long numRows)CCfits::Table [inline]
scale() const CCfits::HDU [inline, virtual]
scale(double value)CCfits::HDU [inline, virtual]
setColumn(const String &colname, Column *value)CCfits::Table [protected, virtual]
suppressScaling(bool toggle=true)CCfits::HDU
Table(const Table &right)CCfits::Table
Table(FITSBase *p, HduType xtype, const String &hduName, int rows, const std::vector< String > &columnName, const std::vector< String > &columnFmt, const std::vector< String > &columnUnit=std::vector< String >(), int version=1)CCfits::Table [protected]
Table(FITSBase *p, HduType xtype, const String &hduName=String(""), int version=1)CCfits::Table [protected]
Table(FITSBase *p, HduType xtype, int number)CCfits::Table [protected]
updateChecksum()CCfits::HDU
updateRows()CCfits::Table
verifyChecksum() const CCfits::HDU
version() const CCfits::ExtHDU [inline]
version(int value)CCfits::ExtHDU [inline]
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::valarray< S > &data)CCfits::ExtHDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
xtension() const CCfits::ExtHDU [inline, protected]
xtension(HduType value)CCfits::ExtHDU [inline, protected]
zero() const CCfits::HDU [inline, virtual]
zero(double value)CCfits::HDU [inline, virtual]
~AsciiTable()CCfits::AsciiTable [protected]
~ExtHDU()CCfits::ExtHDU [virtual]
~HDU()CCfits::HDU [protected, virtual]
~Table()CCfits::Table [virtual]
CCfits/html/classCCfits_1_1BinTable.html0000644000225700000360000005427111667505546017643 0ustar cagordonlhea CCfits: CCfits::BinTable Class Reference
CCfits::BinTable Class Reference

Class Representing Binary Table Extensions. Contains columns with scalar or vector row entries. More...

#include <BinTable.h>

Inheritance diagram for CCfits::BinTable:
Inheritance diagram CCfits::Table CCfits::ExtHDU CCfits::HDU

List of all members.

Public Member Functions

virtual void addColumn (ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=0, size_t columnNumber=0)
 add a new column to an existing table HDU.
virtual BinTableclone (FITSBase *p) const
 virtual copy constructor
virtual void readData (bool readFlag=false, const std::vector< String > &keys=std::vector< String >())
 read columns and keys specified in the input array.

Protected Member Functions

 BinTable (FITSBase *p, const String &hduName=String(""), bool readFlag=false, const std::vector< String > &keys=std::vector< String >(), int version=1)
 reading constructor.
 BinTable (FITSBase *p, const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), int version=1)
 writing constructor
 BinTable (FITSBase *p, int number)
 read BinTable with HDU number number from existing file represented by fitsfile pointer p.
 ~BinTable ()
 destructor.

Detailed Description

Class Representing Binary Table Extensions. Contains columns with scalar or vector row entries.

BinTable (re)implements functions prescribed in the Table abstract class. The implementations allow the calling of cfitsio specialized routines for BinTable header construction. functions particular to the BinTable class include those dealing with variable width columns

Direct instantiation of BinTable objects is disallowed: they are created by explicit calls to FITS::addTable( ... ), FITS::read(...) or internally by one of the FITS ctors on initialization. For addTable, creation of BinTables is the default.


Constructor & Destructor Documentation

CCfits::BinTable::BinTable ( FITSBase *  p,
const String &  hduName = String(""),
bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>(),
int  version = 1 
) [protected]

reading constructor.

Construct a BinTable extension from an extension of an existing disk file. The Table is specified by name and optional version number within the file. An array of strings representing columns or keys indicates which data are to be read. The column data are only read if readFlag is true. Reading on construction is optimized, so it is more efficient to read data at the point of instantiation. This favours a "resource acquisition is initialization" model of data management.

Parameters:
pPointer to FITSBase class, an internal implementation detail
hduNamename of BinTable object to be read.
readFlagflag to determine whether to read data on construction
keys(optional) a list of keywords/columns to be read. The implementation will determine which are keywords. If none are specified, the constructor will simply read the header
version(optional) version number. If not specified, will read the first extension that matches hduName.
CCfits::BinTable::BinTable ( FITSBase *  p,
const String &  hduName,
int  rows,
const std::vector< String > &  columnName = std::vector<String>(),
const std::vector< String > &  columnFmt = std::vector<String>(),
const std::vector< String > &  columnUnit = std::vector<String>(),
int  version = 1 
) [protected]

writing constructor

The constructor creates a valid HDU which is ready for Column::write or insertRows operations. The disk FITS file is update accordingly. The data type of each column is determined by the columnFmt argument (TFORM keywords). See cfitsio documentation for acceptable values.

Parameters:
pPointer to FITSBase class, an internal implementation detail
hduNamename of BinTable object to be written
rowsnumber of rows in the table (NAXIS2)
columnNamearray of column names for columns to be constructed.
columnFmtarray of column formats for columns to be constructed.
columnUnit(optional) array of units for data in columns.
version(optional) version number for HDU.

The dimensions of columnType, columnName and columnFmt must match, but this is not enforced.


Member Function Documentation

void CCfits::BinTable::addColumn ( ValueType  type,
const String &  columnName,
long  repeatWidth,
const String &  colUnit = String(""),
long  decimals = 0,
size_t  columnNumber = 0 
) [virtual]

add a new column to an existing table HDU.

Parameters:
typeThe data type of the column to be added
columnNameThe name of the column to be added
repeatWidthfor a string valued, this is the width of a string. For a numeric column it supplies the vector length of the rows. It is ignored for ascii table numeric data.
colUnitan optional field specifying the units of the data (TUNITn)
decimalsoptional parameter specifying the number of decimals for an ascii numeric column
columnNumberoptional parameter specifying column number to be created. If not specified the column is added to the end. If specified, the column is inserted and the columns already read are reindexed. This parameter is provided as a convenience to support existing code rather than recommended.

Reimplemented from CCfits::ExtHDU.

void CCfits::BinTable::readData ( bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>() 
) [virtual]

read columns and keys specified in the input array.

See Table class documentation for further details.

Implements CCfits::ExtHDU.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1BinTable.png0000644000225700000360000000130311667502525017441 0ustar cagordonlhea‰PNG  IHDReÀ*s] PLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2RIDATxíÝ]ŽÃ `Æ‘¸ÿ‘÷ 6$Û&V[ ª6,>~œ<§-¢¤Mž/T¾IW"¥­Gé_´°ÞüZiÁZ©•1þŒÒ´@õÑ'ñŠã®(ºÎù÷œân¯nóf%æÄæî«Ê~Ž ×ñvŽÍï‹*šcãíOï¿cT¨¼£D”´^ò…1ªäÁ„(9G01ÊOå*T¨P¡B… •[•-¢¤Mž/T¾AW"¥ÍEÕ8‘ÞÚSëv˜SZŸVjܨŒÿueœ`G±ËÓE‹ >úke»GÜ E—5ÿÌlÓäï)ó½”?Úpƒ²sbF¹k/»×véÄöslºûË96¿/íÜÝéÔ[PÅæØôÂñ;F…Ê%¢¤õ’/ŒùP%ç&DÉ9‚‰Q~*ǨP¡B… *T¨Üªl%mò|¡ò= ¸ )m6Hã¤uú˜ÿ”2±©Í`V•qy@õ1Ï\6„Ò…Ö°ªè¾†ŸßtY‰v̲récÞSNÌ+6)®)n™îÄö»–cþFv”Å{™ß;‘ÝWÏ1,ç¿cT¨ü£D”´^ò…1ªäÁ„(9G01ÊOå*T¨P¡B… •[D”„€ÝSùx@©k¥¤Æ°Š’2¦Y³¨Mh“R&6•Ýø6¶RÆÅ$)¡>ú ³h{;‚2¡.µïðXÑ}Í¿V5ÿöpÙ&?§ìÝ‹=Þ6ÄZQOÌ)…7JOŠsÊØ½§ø úx‘cþ:N)ÿÞËü¾Øaó9ìžX‹ãwŒ •3JDù7£>˜!‡GÍIEND®B`‚CCfits/html/classCCfits_1_1BinTable-members.html0000644000225700000360000007042411667502525021263 0ustar cagordonlhea CCfits: Member List
CCfits::BinTable Member List
This is the complete list of members for CCfits::BinTable, including all inherited members.
addColumn(ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=0, size_t columnNumber=0)CCfits::BinTable [virtual]
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
BinTable(FITSBase *p, const String &hduName=String(""), bool readFlag=false, const std::vector< String > &keys=std::vector< String >(), int version=1)CCfits::BinTable [protected]
BinTable(FITSBase *p, const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), int version=1)CCfits::BinTable [protected]
BinTable(FITSBase *p, int number)CCfits::BinTable [protected]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const CCfits::BinTable [virtual]
column(const String &colName, bool caseSensitive=true) const CCfits::Table [virtual]
column(int colIndex) const CCfits::Table [virtual]
column() const CCfits::Table [inline, virtual]
column()CCfits::Table [inline, virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteColumn(const String &columnName)CCfits::Table [virtual]
deleteKey(const String &doomed)CCfits::HDU
deleteRows(long first, long number=1)CCfits::Table
deleteRows(const std::vector< long > &rowList)CCfits::Table
ExtHDU(const ExtHDU &right)CCfits::ExtHDU
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector< long > &axes, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, int number)CCfits::ExtHDU [protected]
fitsPointer() const CCfits::HDU
gcount() const CCfits::ExtHDU [inline, protected]
gcount(long value)CCfits::ExtHDU [inline, protected]
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
getRowsize() const CCfits::Table [virtual]
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
init(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::Table [protected]
insertRows(long first, long number=1)CCfits::Table
isCompressed() const CCfits::ExtHDU
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::ExtHDU [virtual]
name() const CCfits::ExtHDU [inline]
naxes()CCfits::HDU [inline, protected]
numCols() const CCfits::Table [inline, virtual]
numCols(int value)CCfits::Table [inline, protected]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
pcount() const CCfits::ExtHDU [inline, protected]
pcount(long value)CCfits::ExtHDU [inline, protected]
read(std::valarray< S > &image)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)CCfits::ExtHDU
readAllKeys()CCfits::HDU
readData(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::BinTable [virtual]
readHduName(const fitsfile *fptr, int hduIndex, String &hduName, int &hduVersion)CCfits::ExtHDU [static]
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
rows() const CCfits::Table [inline, virtual]
rows(long numRows)CCfits::Table [inline]
scale() const CCfits::HDU [inline, virtual]
scale(double value)CCfits::HDU [inline, virtual]
setColumn(const String &colname, Column *value)CCfits::Table [protected, virtual]
suppressScaling(bool toggle=true)CCfits::HDU
Table(const Table &right)CCfits::Table
Table(FITSBase *p, HduType xtype, const String &hduName, int rows, const std::vector< String > &columnName, const std::vector< String > &columnFmt, const std::vector< String > &columnUnit=std::vector< String >(), int version=1)CCfits::Table [protected]
Table(FITSBase *p, HduType xtype, const String &hduName=String(""), int version=1)CCfits::Table [protected]
Table(FITSBase *p, HduType xtype, int number)CCfits::Table [protected]
updateChecksum()CCfits::HDU
updateRows()CCfits::Table
verifyChecksum() const CCfits::HDU
version() const CCfits::ExtHDU [inline]
version(int value)CCfits::ExtHDU [inline]
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::valarray< S > &data)CCfits::ExtHDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
xtension() const CCfits::ExtHDU [inline, protected]
xtension(HduType value)CCfits::ExtHDU [inline, protected]
zero() const CCfits::HDU [inline, virtual]
zero(double value)CCfits::HDU [inline, virtual]
~BinTable()CCfits::BinTable [protected]
~ExtHDU()CCfits::ExtHDU [virtual]
~HDU()CCfits::HDU [protected, virtual]
~Table()CCfits::Table [virtual]
CCfits/html/classCCfits_1_1Column.html0000644000225700000360000027416011667502525017413 0ustar cagordonlhea CCfits: CCfits::Column Class Reference
CCfits::Column Class Reference

Abstract base class for Column objects. More...

#include <Column.h>

Inherited by CCfits::ColumnData< T >, and CCfits::ColumnVectorData< T >.

List of all members.

Classes

class  InsufficientElements
 Exception thrown if the data supplied for a write operation is less than declared. More...
class  InvalidDataType
 Exception thrown for invalid data type inputs. More...
class  InvalidNumberOfRows
 Exception thrown if user enters a non-positive number for the number of rows to write. More...
class  InvalidRowNumber
 Exception thrown on attempting to read a row number beyond the end of a table. More...
class  InvalidRowParameter
 Exception thrown on incorrect row writing request. More...
class  NoNullValue
 Exception thrown if a null value is specified without support from existing column header. More...
class  RangeError
 exception to be thrown for inputs that cause range errors in column read operations. More...
class  WrongColumnType
 Exception thrown on attempting to access a scalar column as vector data. More...

Public Member Functions

 Column (const Column &right)
 copy constructor, used in copying Columns to standard library containers.
virtual ~Column ()
 destructor.
template<typename T >
void addNullValue (T nullVal)
 Set the TNULLn keyword for the column.
const String & dimen () const
 return TDIMn keyword
const String & display () const
 return TDISPn keyword
const String & format () const
 return TFORMn keyword
template<typename T >
bool getNullValue (T *nullVal) const
 Get the value of the TNULLn keyword for the column.
int index () const
 get the Column index (the n in TTYPEn etc).
bool isRead () const
 flag set to true if the entire column data has been read from disk
const String & name () const
 return name of Column (TTYPEn keyword)
Tableparent () const
 return a pointer to the Table which owns this Column
template<typename S >
void read (std::vector< S > &vals, long first, long last)
 Retrieve data from a scalar column into a std::vector.
template<typename S >
void read (std::valarray< S > &vals, long first, long last)
 Retrieve data from a scalar column into a std::valarray.
template<typename S >
void read (std::valarray< S > &vals, long rows)
 return a single row of a vector column into a std::valarray
template<typename S >
void read (std::vector< S > &vals, long first, long last, S *nullValue)
 Retrieve data from a scalar column into a std::vector>, applying nullValue when relevant.
template<typename S >
void read (std::valarray< S > &vals, long first, long last, S *nullValue)
 Retrieve data from a scalar column into a std::valarray, applying nullValue when relevant.
template<typename S >
void read (std::valarray< S > &vals, long rows, S *nullValue)
 return a single row of a vector column into a std::valarray, setting undefined values
template<typename S >
void readArrays (std::vector< std::valarray< S > > &vals, long first, long last)
 return a set of rows of a vector column into a vector of valarrays
template<typename S >
void readArrays (std::vector< std::valarray< S > > &vals, long first, long last, S *nullValue)
 return a set of rows of a vector column into a container, setting undefined values
virtual void readData (long firstRow, long nelements, long firstElem=1)=0
 Read (or reread) data from the disk into the Column object's internal arrays.
size_t repeat () const
 get the repeat count for the rows
void resetRead ()
 reset the Column's isRead flag to false
int rows () const
 return the number of rows in the table.
double scale () const
 get TSCALn value
virtual void setDimen ()
 set the TDIMn keyword.
void setDisplay ()
 set the TDISPn keyword
ValueType type () const
 returns the data type of the column
const String & unit () const
 get units of data in Column (TUNITn keyword)
bool varLength () const
 boolean, set to true if Column has variable length vector rows.
long width () const
 return column data width
template<typename S >
void write (const std::vector< S > &indata, long firstRow)
 write a vector of values into a scalar column starting with firstRow
template<typename S >
void write (const std::valarray< S > &indata, long firstRow)
 write a valarray of values into a scalar column starting with firstRow
template<typename S >
void write (S *indata, long nRows, long firstRow)
 write a C array of size nRows into a scalar Column starting with row firstRow.
template<typename S >
void write (const std::vector< S > &indata, long firstRow, S *nullValue)
 write a vector of values into a scalar column starting with firstRow, replacing elements equal to nullValue with the FITS null value.
template<typename S >
void write (const std::valarray< S > &indata, long firstRow, S *nullValue)
 write a valarray of values into a scalar column starting with firstRow, replacing elements equal to nullValue with the FITS null value.
template<typename S >
void write (S *indata, long nRows, long firstRow, S *nullValue)
 write a C array into a scalar Column, processing undefined values.
template<typename S >
void write (const std::valarray< S > &indata, long nRows, long firstRow)
 write a valarray of values into a range of rows of a vector column.
template<typename S >
void write (const std::vector< S > &indata, long nRows, long firstRow)
 write a vector of values into a range of rows of a vector column
template<typename S >
void write (S *indata, long nElements, long nRows, long firstRow)
 write a C array of values into a range of rows of a vector column
template<typename S >
void write (const std::valarray< S > &indata, long nRows, long firstRow, S *nullValue)
 write a valarray of values into a range of rows of a vector column.
template<typename S >
void write (const std::vector< S > &indata, long nRows, long firstRow, S *nullValue)
 write a vector of values into a range of rows of a vector column, processing undefined values
template<typename S >
void write (S *indata, long nElements, long nRows, long firstRow, S *nullValue)
 write a C array of values into a range of rows of a vector column, processing undefined values.
template<typename S >
void write (const std::valarray< S > &indata, const std::vector< long > &vectorLengths, long firstRow)
 write a valarray of values into a column with specified number of entries written per row.
template<typename S >
void write (const std::vector< S > &indata, const std::vector< long > &vectorLengths, long firstRow)
 write a vector of values into a column with specified number of entries written per row.
template<typename S >
void write (S *indata, long nElements, const std::vector< long > &vectorLengths, long firstRow)
 write a C-array of values of size nElements into a vector column with specified number of entries written per row.
template<typename S >
void writeArrays (const std::vector< std::valarray< S > > &indata, long firstRow)
 write a vector of valarray objects to the column, starting at row firstRow >= 1
template<typename S >
void writeArrays (const std::vector< std::valarray< S > > &indata, long firstRow, S *nullValue)
 write a vector of valarray objects to the column, starting at row firstRow >= 1, processing undefined values
double zero () const
 get TZEROn value

Protected Member Functions

 Column (int columnIndex, const String &columnName, ValueType type, const String &format, const String &unit, Table *p, int rpt=1, long w=1, const String &comment="")
 new column creation constructor
 Column (Table *p=0)
 Simple constructor to be called by subclass reading ctors.
const String & comment () const
 retrieve comment for Column
fitsfile * fitsPointer ()
 fits pointer corresponding to fits file containing column data.
void makeHDUCurrent ()
 make HDU containing this the current HDU of the fits file.
virtual std::ostream & put (std::ostream &s) const
 internal implementation of << operator.

Detailed Description

Abstract base class for Column objects.

Columns are the data containers used in FITS tables. Columns of scalar type (one entry per cell) are implemented by the template subclass ColumnData<T>. Columns of vector type (vector and variable rows) are implemented with the template subclass ColumnVectorData<T>. AsciiTables may only contain Columns of type ColumnData<T>, where T is an implemented FITS data type (see the CCfits.h header for a complete list. This requirement is enforced by ensuring that AsciiTable's addColumn method may only create an AsciiTable compatible column. The ColumnData<T> class stores its data in a std::vector<T> object.

BinTables may contain either ColumnData<T> or ColumnVectorData<T>. For ColumnVectorData, T must be a numeric type: string vectors are handled by ColumnData<T>; string arrays are not supported. The internal representation of the data is a std::vector<std::valarray<T> > object. The std::valarray class is designed for efficient numeric processing and has many vectorized numeric and transcendental functions defined on it.

Member template functions for read/write operations are provided in multiple overloads as the interface to data operations. Implicit data type conversions are supported but where they are required make the operations less efficient. Reading numeric column data as character arrays, supported by cfitsio, is not supported by CCfits.

As a base class, Column provides protected accessor/mutator inline functions to allow only its subclasses to access data members.


Constructor & Destructor Documentation

CCfits::Column::Column ( const Column right)

copy constructor, used in copying Columns to standard library containers.

The copy constructor is for internal use only: it does not affect the disk fits file associated with the object.

CCfits::Column::Column ( int  columnIndex,
const String &  columnName,
ValueType  type,
const String &  format,
const String &  unit,
Table p,
int  rpt = 1,
long  w = 1,
const String &  comment = "" 
) [protected]

new column creation constructor

This constructor allows the specification of:

Parameters:
columnIndexThe column number
columnNameThe column name, keyword TTYPEn
typeused for determining class of T in ColumnData<T>, ColumnVectorData<T>
formatthe column data format, TFORMn keyword
unitthe column data unit, TUNITn keyword
pthe Table pointer
rpt(optional) repeat count for the row ( == 1 for AsciiTables)
wthe row width
commentcomment to be added to the header.

Member Function Documentation

template<typename T >
void CCfits::Column::addNullValue ( nullVal)

Set the TNULLn keyword for the column.

Only relevant for integer valued columns, TNULLn is the value used by cfitsio in undefined processing. All entries in the table equal to an input "null value" are set equal to the value of TNULLn. (For floating point columns a system NaN value is used).

const String & CCfits::Column::dimen ( ) const [inline]

return TDIMn keyword

represents dimensions of data arrays in vector columns. for scalar columns, returns a default value.

const String & CCfits::Column::display ( ) const [inline]

return TDISPn keyword

TDISPn is suggested format for output of column data.

const String & CCfits::Column::format ( ) const [inline]

return TFORMn keyword

TFORMn specifies data format stored in disk file.

template<typename T >
bool CCfits::Column::getNullValue ( T *  nullVal) const

Get the value of the TNULLn keyword for the column.

Only relevant for integer valued columns. If the TNULLn keyword is present, its value will be written to *nullVal and the function returns true. If the keyword is not found or its value is undefined, the function returns false and *nullVal is not modified.

Parameters:
nullValA pointer to the variable for storing the TNULLn value.
template<typename S >
void CCfits::Column::read ( std::vector< S > &  vals,
long  first,
long  last 
)

Retrieve data from a scalar column into a std::vector.

This and the following functions perform implicit data conversions. An exception will be thrown if no conversion exists.

Parameters:
valsThe output container. The function will resize this as necessary
first,lastthe span of row numbers to read.
template<typename S >
void CCfits::Column::read ( std::valarray< S > &  vals,
long  first,
long  last 
)

Retrieve data from a scalar column into a std::valarray.

Parameters:
valsThe output container. The function will resize this as necessary
first,lastthe span of row numbers to read.
template<typename S >
void CCfits::Column::read ( std::valarray< S > &  vals,
long  rows 
)

return a single row of a vector column into a std::valarray

Parameters:
valsThe output valarray object
rowsThe row number to be retrieved (starting at 1).
template<typename S >
void CCfits::Column::read ( std::vector< S > &  vals,
long  first,
long  last,
S *  nullValue 
)

Retrieve data from a scalar column into a std::vector>, applying nullValue when relevant.

If both nullValue and *nullValue are not 0, then any undefined values in the file will be converted to *nullValue when copied into the vals vector. See cfitsio documentation for further details

Parameters:
valsThe output container. The function will resize this as necessary
first,lastthe span of row numbers to read.
nullValuepointer to value to be applied to undefined elements.
template<typename S >
void CCfits::Column::read ( std::valarray< S > &  vals,
long  first,
long  last,
S *  nullValue 
)

Retrieve data from a scalar column into a std::valarray, applying nullValue when relevant.

If both nullValue and *nullValue are not 0, then any undefined values in the file will be converted to *nullValue when copied into the vals valarray. See cfitsio documentation for further details

Parameters:
valsThe output container. The function will resize this as necessary
first,lastthe span of row numbers to read.
nullValuepointer to value to be applied to undefined elements.
template<typename S >
void CCfits::Column::readArrays ( std::vector< std::valarray< S > > &  vals,
long  first,
long  last 
)

return a set of rows of a vector column into a vector of valarrays

Parameters:
valsThe output container. The function will resize this as necessary
first,lastthe span of row numbers to read.
template<typename S >
void CCfits::Column::readArrays ( std::vector< std::valarray< S > > &  vals,
long  first,
long  last,
S *  nullValue 
)

return a set of rows of a vector column into a container, setting undefined values

Parameters:
valsThe output container. The function will resize this as necessary
first,lastthe span of row numbers to read.
nullValuepointer to integer value regarded as undefined
void CCfits::Column::readData ( long  firstRow = 1,
long  nelements = 1,
long  firstElem = 1 
) [pure virtual]

Read (or reread) data from the disk into the Column object's internal arrays.

This function normally does not need to be called. See the resetRead function for an alternative way of performing a reread from disk.

Parameters:
firstRowThe first row to be read
nelementsThe number of elements to read
firstElemThe number of the element on the first row to start at (ignored for scalar columns)
void CCfits::Column::resetRead ( ) [inline]

reset the Column's isRead flag to false

This forces the data to be reread from the disk the next time a read command is called on the Column, rather than simply retrieving the data already stored in the Column object's internal arrays. This may be useful for example if trying to reread a Column using a different nullValue argument than for an earlier read.

int CCfits::Column::rows ( ) const

return the number of rows in the table.

return number of rows in the Column

double CCfits::Column::scale ( ) const [inline]

get TSCALn value

TSCALn is used to convert a data array represented on disk in integer format as floating. Useful for compact storage of digitized data.

template<typename S >
void CCfits::Column::write ( const std::vector< S > &  indata,
long  firstRow 
)

write a vector of values into a scalar column starting with firstRow

Parameters:
indataThe data to be written.
firstRowThe first row to be written
template<typename S >
void CCfits::Column::write ( const std::valarray< S > &  indata,
long  firstRow 
)

write a valarray of values into a scalar column starting with firstRow

Parameters:
indataThe data to be written.
firstRowThe first row to be written
template<typename S >
void CCfits::Column::write ( S *  indata,
long  nRows,
long  firstRow 
)

write a C array of size nRows into a scalar Column starting with row firstRow.

Parameters:
indataThe data to be written.
nRowsThe size of the data array to be written
firstRowThe first row to be written
template<typename S >
void CCfits::Column::write ( const std::vector< S > &  indata,
long  firstRow,
S *  nullValue 
)

write a vector of values into a scalar column starting with firstRow, replacing elements equal to nullValue with the FITS null value.

If nullValue is not 0, the appropriate FITS null value will be substituted for all elements of indata equal to *nullValue. For integer type columns there must be a pre-existing TNULLn keyword to define the FITS null value, otherwise a FitsError exception is thrown. For floating point columns, the FITS null is the IEEE NaN (Not-a-Number) value. See the cfitsio fits_write_colnull function documentation for more details.

Parameters:
indataThe data to be written.
firstRowThe first row to be written
nullValuePointer to the value for which equivalent indata elements will be replaced in the file with the appropriate FITS null value.
template<typename S >
void CCfits::Column::write ( const std::valarray< S > &  indata,
long  firstRow,
S *  nullValue 
)

write a valarray of values into a scalar column starting with firstRow, replacing elements equal to nullValue with the FITS null value.

If nullValue is not 0, the appropriate FITS null value will be substituted for all elements of indata equal to *nullValue. For integer type columns there must be a pre-existing TNULLn keyword to define the FITS null value, otherwise a FitsError exception is thrown. For floating point columns, the FITS null is the IEEE NaN (Not-a-Number) value. See the cfitsio fits_write_colnull function documentation for more details.

Parameters:
indataThe data to be written.
firstRowThe first row to be written
nullValuePointer to the value for which equivalent indata elements will be replaced in the file with the appropriate FITS null value.
template<typename S >
void CCfits::Column::write ( S *  indata,
long  nRows,
long  firstRow,
S *  nullValue 
)

write a C array into a scalar Column, processing undefined values.

Parameters:
indataThe data to be written.
nRowsThe size of the data array to be written
firstRowThe first row to be written
nullValuePointer to the value in the input array to be set to undefined values
template<typename S >
void CCfits::Column::write ( const std::valarray< S > &  indata,
long  nRows,
long  firstRow 
)

write a valarray of values into a range of rows of a vector column.

The primary use of this is for fixed width columns, in which case Column's repeat attribute is used to determine how many elements are written to each row; if indata.size() is too small an exception will be thrown. If the column is variable width, the call will write indata.size()/nRows elements to each row.

Parameters:
indataThe data to be written.
nRowsthe number of rows to which to write the data.
firstRowThe first row to be written
template<typename S >
void CCfits::Column::write ( const std::vector< S > &  indata,
long  nRows,
long  firstRow 
)

write a vector of values into a range of rows of a vector column

The primary use of this is for fixed width columns, in which case Column's repeat attribute is used to determine how many elements are written to each row; if indata.size() is too small an exception will be thrown. If the column is variable width, the call will write indata.size()/nRows elements to each row.

Parameters:
indataThe data to be written.
nRowsthe number of rows to which to write the data.
firstRowThe first row to be written
template<typename S >
void CCfits::Column::write ( S *  indata,
long  nElements,
long  nRows,
long  firstRow 
)

write a C array of values into a range of rows of a vector column

Details are as for vector input; only difference is the need to supply the size of the C-array.

Parameters:
indataThe data to be written.
nElementsThe size of indata
nRowsthe number of rows to which to write the data.
firstRowThe first row to be written
template<typename S >
void CCfits::Column::write ( const std::valarray< S > &  indata,
long  nRows,
long  firstRow,
S *  nullValue 
)

write a valarray of values into a range of rows of a vector column.

see version without undefined processing for details.

template<typename S >
void CCfits::Column::write ( const std::vector< S > &  indata,
long  nRows,
long  firstRow,
S *  nullValue 
)

write a vector of values into a range of rows of a vector column, processing undefined values

see version without undefined processing for details.

template<typename S >
void CCfits::Column::write ( S *  indata,
long  nElements,
long  nRows,
long  firstRow,
S *  nullValue 
)

write a C array of values into a range of rows of a vector column, processing undefined values.

see version without undefined processing for details.

template<typename S >
void CCfits::Column::write ( const std::valarray< S > &  indata,
const std::vector< long > &  vectorLengths,
long  firstRow 
)

write a valarray of values into a column with specified number of entries written per row.

Data are written into vectorLengths.size() rows, with vectorLength[n] elements written to row n+firstRow -1. Although primarily intended for wrapping calls to multiple variable-width vector column rows, it may also be used to write a variable number of elements to fixed-width column rows.

When writing to fixed-width column rows, if the number of elements sent to a particular row are fewer than the column's repeat value, the remaining elements in the row will not be modified.

Since cfitsio does not support null value processing for variable width columns this function and its variants do not have version which process undefined values

Parameters:
indataThe data to be written
vectorLengthsthe number of elements to write to each successive row.
firstRowthe first row to be written.
template<typename S >
void CCfits::Column::write ( const std::vector< S > &  indata,
const std::vector< long > &  vectorLengths,
long  firstRow 
)

write a vector of values into a column with specified number of entries written per row.

Intended for writing a varying number of elements to multiple rows in a vector column, this may be used for either variable or fixed-width columns. See the indata valarray version of this function for a complete description.

template<typename S >
void CCfits::Column::write ( S *  indata,
long  nElements,
const std::vector< long > &  vectorLengths,
long  firstRow 
)

write a C-array of values of size nElements into a vector column with specified number of entries written per row.

Intended for writing a varying number of elements to multiple rows in a vector column, this may be used for either variable or fixed-width columns. See the indata valarray version of this function for a complete description.

template<typename S >
void CCfits::Column::writeArrays ( const std::vector< std::valarray< S > > &  indata,
long  firstRow 
)

write a vector of valarray objects to the column, starting at row firstRow >= 1

Intended for writing a varying number of elements to multiple rows in a vector column, this may be used for either variable or fixed-width columns. When writing to fixed-width column rows, if the number of elements sent to a particular row are fewer than the column's repeat value, the remaining elements in the row will not be modified.

Parameters:
indataThe data to be written
firstRowthe first row to be written.
template<typename S >
void CCfits::Column::writeArrays ( const std::vector< std::valarray< S > > &  indata,
long  firstRow,
S *  nullValue 
)

write a vector of valarray objects to the column, starting at row firstRow >= 1, processing undefined values

see version without undefined processing for details.

double CCfits::Column::zero ( ) const [inline]

get TZEROn value

TZEROn is an integer offset used in the implementation of unsigned data


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column-members.html0000644000225700000360000004071311667502525021036 0ustar cagordonlhea CCfits: Member List
CCfits::Column Member List
This is the complete list of members for CCfits::Column, including all inherited members.
addNullValue(T nullVal)CCfits::Column
Column(const Column &right)CCfits::Column
Column(int columnIndex, const String &columnName, ValueType type, const String &format, const String &unit, Table *p, int rpt=1, long w=1, const String &comment="")CCfits::Column [protected]
Column(Table *p=0)CCfits::Column [protected]
comment() const CCfits::Column [inline, protected]
dimen() const CCfits::Column [inline]
display() const CCfits::Column [inline]
fitsPointer()CCfits::Column [protected]
format() const CCfits::Column [inline]
getNullValue(T *nullVal) const CCfits::Column
index() const CCfits::Column [inline]
isRead() const CCfits::Column [inline]
makeHDUCurrent()CCfits::Column [protected]
name() const CCfits::Column [inline]
parent() const CCfits::Column
put(std::ostream &s) const CCfits::Column [protected, virtual]
read(std::vector< S > &vals, long first, long last)CCfits::Column
read(std::valarray< S > &vals, long first, long last)CCfits::Column
read(std::valarray< S > &vals, long rows)CCfits::Column
read(std::vector< S > &vals, long first, long last, S *nullValue)CCfits::Column
read(std::valarray< S > &vals, long first, long last, S *nullValue)CCfits::Column
read(std::valarray< S > &vals, long rows, S *nullValue)CCfits::Column
readArrays(std::vector< std::valarray< S > > &vals, long first, long last)CCfits::Column
readArrays(std::vector< std::valarray< S > > &vals, long first, long last, S *nullValue)CCfits::Column
readData(long firstRow, long nelements, long firstElem=1)=0CCfits::Column [pure virtual]
repeat() const CCfits::Column [inline]
resetRead()CCfits::Column [inline]
rows() const CCfits::Column
scale() const CCfits::Column [inline]
setDimen()CCfits::Column [inline, virtual]
setDisplay()CCfits::Column
type() const CCfits::Column [inline]
unit() const CCfits::Column [inline]
varLength() const CCfits::Column [inline]
width() const CCfits::Column [inline]
write(const std::vector< S > &indata, long firstRow)CCfits::Column
write(const std::valarray< S > &indata, long firstRow)CCfits::Column
write(S *indata, long nRows, long firstRow)CCfits::Column
write(const std::vector< S > &indata, long firstRow, S *nullValue)CCfits::Column
write(const std::valarray< S > &indata, long firstRow, S *nullValue)CCfits::Column
write(S *indata, long nRows, long firstRow, S *nullValue)CCfits::Column
write(const std::valarray< S > &indata, long nRows, long firstRow)CCfits::Column
write(const std::vector< S > &indata, long nRows, long firstRow)CCfits::Column
write(S *indata, long nElements, long nRows, long firstRow)CCfits::Column
write(const std::valarray< S > &indata, long nRows, long firstRow, S *nullValue)CCfits::Column
write(const std::vector< S > &indata, long nRows, long firstRow, S *nullValue)CCfits::Column
write(S *indata, long nElements, long nRows, long firstRow, S *nullValue)CCfits::Column
write(const std::valarray< S > &indata, const std::vector< long > &vectorLengths, long firstRow)CCfits::Column
write(const std::vector< S > &indata, const std::vector< long > &vectorLengths, long firstRow)CCfits::Column
write(S *indata, long nElements, const std::vector< long > &vectorLengths, long firstRow)CCfits::Column
writeArrays(const std::vector< std::valarray< S > > &indata, long firstRow)CCfits::Column
writeArrays(const std::vector< std::valarray< S > > &indata, long firstRow, S *nullValue)CCfits::Column
zero() const CCfits::Column [inline]
~Column()CCfits::Column [virtual]
CCfits/html/classCCfits_1_1Column_1_1InsufficientElements.html0000644000225700000360000001451111667505546024115 0ustar cagordonlhea CCfits: CCfits::Column::InsufficientElements Class Reference
CCfits::Column::InsufficientElements Class Reference

Exception thrown if the data supplied for a write operation is less than declared. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::InsufficientElements:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InsufficientElements (const String &msg, bool silent=true)
 Exception ctor, prefixes the string "FitsError: not enough elements supplied for write operation: " before the specific message.

Detailed Description

Exception thrown if the data supplied for a write operation is less than declared.

This circumstance generates an exception to avoid unexpected behaviour after the write operation is completed. It can be avoided by resizing the input array appropriately.


Constructor & Destructor Documentation

CCfits::Column::InsufficientElements::InsufficientElements ( const String &  msg,
bool  silent = true 
)

Exception ctor, prefixes the string "FitsError: not enough elements supplied for write operation: " before the specific message.

Parameters:
msgA specific diagnostic message, usually the column name
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1InsufficientElements.png0000644000225700000360000000115611667502525023730 0ustar cagordonlhea‰PNG  IHDRÓP´ý°PLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ýIDATxíYŽÃ †ãTÊý<ã„6S2b~T Š ö/¼n¯õÆöÚW`˜f""2 ¢ö÷Œñ¶HêÞÙåá¢LŒ¡ÅÏ”,¼½ ôSp°Dƒ§æ’ˆ•DÓS9Y'ÚYø{©½˜jÌâO%SgOO^±í=ÍdëÉI¤ž|Ô aÀ}”)Ͻ&QÍB1I/ù›LY¹)I̽,\ó™ò¾J欞ÊÁzšÅÞ'íT¬-#á<;é{å­“½YLß÷&0éá&0éW™ÖÛ´qÌ3¦HÇzP 2ÇzP+2¡ï L`˜À&0 L`˜À&0 L`ú·L´ÞØh¹„˜Àô&"âu]p Ì¢W.¸2Ðk·Õ@O‘jO¾6bÚ­Œ¡Eàï½[Lbèô¤ñí}¦®Žm£2e ®b™uëÚê×ÿU¿Ü*‹dÅ6í÷Yý¬N·í35Wý/s¢ÔlõGüù6Ùv‘3–IteŒ)Æ)ºâþwÜ1»ym=uŒdN1¥¹÷6“νSë1Nš.Ó}3÷Â8Ât’{¡+¥¹çìôœ¼è{±Œ:â±Ü3Êýzê1]å^` ï“®Bý9Úó¥’*7gý«ç»Y•v 2L9‘é&¹·Ð˜À&0-Á´Þøƒb,þxÑ>ãIEND®B`‚CCfits/html/classCCfits_1_1Column_1_1InsufficientElements-members.html0000644000225700000360000000675011667502525025545 0ustar cagordonlhea CCfits: Member List
CCfits::Column::InsufficientElements Member List
This is the complete list of members for CCfits::Column::InsufficientElements, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InsufficientElements(const String &msg, bool silent=true)CCfits::Column::InsufficientElements
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1Column_1_1InvalidDataType.html0000644000225700000360000001416211667505546023016 0ustar cagordonlhea CCfits: CCfits::Column::InvalidDataType Class Reference
CCfits::Column::InvalidDataType Class Reference

Exception thrown for invalid data type inputs. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::InvalidDataType:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InvalidDataType (const String &str=string(), bool silent=true)
 Exception ctor, prefixes the string "FitsError: Incorrect data type: " before the specific message.

Detailed Description

Exception thrown for invalid data type inputs.

This exception is thrown if the user requests an implicit data type conversion to a datatype that is not one of the supported types (see fitsio.h for details).


Constructor & Destructor Documentation

CCfits::Column::InvalidDataType::InvalidDataType ( const String &  str = string(),
bool  silent = true 
)

Exception ctor, prefixes the string "FitsError: Incorrect data type: " before the specific message.

Parameters:
strA specific diagnostic message
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1InvalidDataType.png0000644000225700000360000000114311667502525022623 0ustar cagordonlhea‰PNG  IHDR¿P&TcPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2òIDATxíÑ’Ã E%Éÿò>€‚€©éÖî:½NvcEå òZ{·ò8vnà?ø§Q×!:è8x¬›E<Ü,uìjó°Ñ»ùÙtÄŸçOºd/Áßá0rÊüR÷Íl,6R’•õEO#>3¶˜¿ÞE|Œ cöå'êØ'ù{ý;KÓ¿¿.šÚÇøsý¨Å$²áoyþ÷üYzKÔOv kùóú$~¥Y8¡ÿü¡þ[€˜ …µrQä[ÒÆVð¯i¯~ðƒÿ üàÿrþ½[YÜÎÕÀ‰îÀæüç¹w»ó£þ€üà?øÁ~ðƒüà?øÁ~ðƒÿËùiïVhëë?øÁß Q×áäñµy²Á3Ãq1‘ÔÀlQ-2üŒl:º}ÒÁ_ð»H‡rí ñkÈz)$¯Œ—ÏE¼óÜÚïçËïö×­3wÜŒúÏkÝY¯d̯kü“˜Y•Æ/é§ùm-ØÔñ;Û<"ÍÀ\(+yorÆ^ª!ö[ü©~nóW_œþfÔ*v±é>ÇÿüzæùýìÎÇH?aídý‰²˜gø½œþCp ÿXÿ±þÛœ±ëçA+Jvþ1ž¶½©U’ñÆ·Tîù\ÖŸÿÿ¡M¿»ð»,Üß™íÎøÁÿÕü{·¬ë(¼»È9IEND®B`‚CCfits/html/classCCfits_1_1Column_1_1InvalidDataType-members.html0000644000225700000360000000670411667502525024443 0ustar cagordonlhea CCfits: Member List
CCfits::Column::InvalidDataType Member List
This is the complete list of members for CCfits::Column::InvalidDataType, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InvalidDataType(const String &str=string(), bool silent=true)CCfits::Column::InvalidDataType
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1Column_1_1InvalidNumberOfRows.html0000644000225700000360000001411011667505546023664 0ustar cagordonlhea CCfits: CCfits::Column::InvalidNumberOfRows Class Reference
CCfits::Column::InvalidNumberOfRows Class Reference

Exception thrown if user enters a non-positive number for the number of rows to write. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::InvalidNumberOfRows:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InvalidNumberOfRows (size_t number, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: number of rows to write must be positive " before the specific message.

Detailed Description

Exception thrown if user enters a non-positive number for the number of rows to write.


Constructor & Destructor Documentation

CCfits::Column::InvalidNumberOfRows::InvalidNumberOfRows ( size_t  number,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: number of rows to write must be positive " before the specific message.

Parameters:
numberThe number of rows entered.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1NoNullValue.html0000644000225700000360000001436311667505546022203 0ustar cagordonlhea CCfits: CCfits::Column::NoNullValue Class Reference
CCfits::Column::NoNullValue Class Reference

Exception thrown if a null value is specified without support from existing column header. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::NoNullValue:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 NoNullValue (const String &diag, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: No null value specified for column: " before the specific message.

Detailed Description

Exception thrown if a null value is specified without support from existing column header.

This exception is analogous to the fact that cfitsio returns a non-zero status code if TNULLn doesn't exist an a null value (convert all input data with the null value to the TNULLn keyword) is specified. It is only relevant for integer type data (see cfitsio manual for details).


Constructor & Destructor Documentation

CCfits::Column::NoNullValue::NoNullValue ( const String &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: No null value specified for column: " before the specific message.

Parameters:
diagA specific diagnostic message
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FITS.html0000644000225700000360000027364311667502527016732 0ustar cagordonlhea CCfits: CCfits::FITS Class Reference

Memory object representation of a disk FITS file. More...

#include <FITS.h>

List of all members.

Classes

class  CantCreate
 thrown on failure to create new file More...
class  CantOpen
 thrown on failure to open existing file More...
class  NoSuchHDU
 exception thrown by HDU retrieval methods. More...
class  OperationNotSupported
 thrown for unsupported operations, such as attempted to select rows from an image extension. More...

Public Member Functions

 FITS (const String &name, RWmode mode=Read, bool readDataFlag=false, const std::vector< String > &primaryKeys=std::vector< String >())
 basic constructor
 FITS (const String &name, RWmode mode, const string &hduName, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), const std::vector< String > &primaryKey=std::vector< String >(), int version=1)
 Open a FITS file and read a single specified HDU.
 FITS (const String &name, RWmode mode, const std::vector< String > &hduNames, bool readDataFlag=false, const std::vector< String > &primaryKey=std::vector< String >())
 FITS (const String &fileName, const FITS &source)
 create a new FITS object and corresponding file with copy of the primary header of the source If the filename corresponds to an existing file and does not start with the '!' character the construction will fail with a CantCreate exception.
 FITS (const String &name, RWmode mode, const std::vector< String > &hduNames, const std::vector< std::vector< String > > &hduKeys, bool readDataFlag=false, const std::vector< String > &primaryKeys=std::vector< String >(), const std::vector< int > &hduVersions=std::vector< int >())
 FITS read constructor in full generality.
 FITS (const String &name, int bitpix, int naxis, long *naxes)
 Constructor for creating new FITS objects containing images.
 FITS (const string &name, RWmode mode, int hduIndex, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), const std::vector< String > &primaryKey=std::vector< String >())
 read a single numbered HDU.
 FITS (const String &name, RWmode mode, const std::vector< String > &searchKeys, const std::vector< String > &searchValues, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), const std::vector< String > &primaryKey=std::vector< string >(), int version=1)
 open fits file and read HDU which contains supplied keywords with [optional] specified values (sometimes one just wants to know that the keyword is present).
 ~FITS ()
 destructor
ExtHDUaddImage (const String &hduName, int bpix, std::vector< long > &naxes, int version=1)
 Add an image extension to an existing FITS object. (File with w or rw access).
TableaddTable (const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), HduType type=BinaryTbl, int version=1)
 Add a table extension to an existing FITS object. Add extension to FITS object for file with w or rw access.
void copy (const HDU &source)
 copy the HDU source into the FITS object.
ExtHDUcurrentExtension ()
 return a non-const reference to whichever is the current extension.
const String & currentExtensionName () const
 return the name of the extension that the fitsfile is currently addressing.
void deleteExtension (const String &doomed, int version=1)
 Delete extension specified by name and version number.
void deleteExtension (int doomed)
 Delete extension specified by extension number.
void destroy () throw ()
 Erase FITS object and close corresponding file.
const ExtHDUextension (int i) const
 return FITS extension by index number. N.B. The input index number is currently defined as enumerating extensions, so the extension(1) returns HDU number 2.
ExtHDUextension (int i)
 return FITS extension by index number. non-const version. see const version for details.
const ExtHDUextension (const String &hduName, int version=1) const
 return FITS extension by name and (optionally) version number.
ExtHDUextension (const String &hduName, int version=1)
 return FITS extension by name and (optionally) version number.
const ExtMap & extension () const
 return const reference to the extension container
Tablefilter (const String &expression, ExtHDU &inputTable, bool overwrite=true, bool readData=false)
 Filter the rows of the inputTable with the condition expression, and return a reference to the resulting Table.
fitsfile * fitsPointer () const
 return the CFITSIO fitsfile pointer for this FITS object
void flush ()
 flush buffer contents to disk
int getCompressionType () const
 Get the int specifying the compression algorithm to be used when adding an image extension.
int getNoiseBits () const
 Get the cfitsio noisebits parameter used when compressing floating-point images.
void getTileDimensions (std::vector< long > &tileSizes) const
 Get the current settings of dimension sizes for tiles used in image compression.
const String & name () const
 return filename of file corresponding to FITS object
const PHDUpHDU () const
 return a const reference to the primary HDU.
PHDUpHDU ()
 return a reference to the primary HDU.
void read (const String &hduName, bool readDataFlag=false, const std::vector< String > &keys=std::vector< String >(), int version=1)
 get data from single HDU from disk file.
void read (const std::vector< String > &hduNames, bool readDataFlag=false)
 get data from a set of HDUs from disk file.
void read (const std::vector< String > &hduNames, const std::vector< std::vector< String > > &keys, bool readDataFlag=false, const std::vector< int > &hduVersions=std::vector< int >())
 get data from a set of HDUs from disk file, specifying keys and version numbers.
void read (int hduIndex, bool readDataFlag=false, const std::vector< String > &keys=std::vector< String >())
 read an HDU specified by index number.
void read (const std::vector< String > &searchKeys, const std::vector< String > &searchValues, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), int version=1)
 read method for read header or HDU that contains specified keywords.
void resetPosition ()
 explicit call to set the fits file pointer to the primary.
void setCompressionType (int compType)
 set the compression algorithm to be used when adding image extensions to the FITS object.
void setNoiseBits (int noiseBits)
 Set the cfitsio noisebits parameter used when compressing floating-point images.
void setTileDimensions (const std::vector< long > &tileSizes)
 Set the dimensions of the tiles into which the image is divided during compression.

Static Public Member Functions

static void clearErrors ()
 clear the error stack and set status to zero.
static void setVerboseMode (bool value)
 set verbose setting for library
static bool verboseMode ()
 return verbose setting for library

Detailed Description

Memory object representation of a disk FITS file.

Constructors are provided to get FITS data from an existing file or to create new FITS data sets. Overloaded versions allow the user to

a) read from one or more specified extensions, specified by EXTNAME and VERSION or by HDU number. b either just header information or data on construction c) to specify scalar keyword values to be read on construction d) to open and read an extension that has specified keyword values e) create a new FITS object and corresponding file, including an empty primary header.

The memory fits object as constructed is always an image of a valid FITS object, i.e. a primary HDU is created on construction.

calling the destructor closes the disk file, so that FITS files are automatically deleted at the end of scope unless other arrangements are made.


Constructor & Destructor Documentation

CCfits::FITS::FITS ( const String &  name,
RWmode  mode = Read,
bool  readDataFlag = false,
const std::vector< String > &  primaryKeys = std::vector<String>() 
)

basic constructor

This basic constructor makes a FITS object from the given filename. The file name is the only required argument. The file name string is passed directly to the cfitsio library: thus the extended file name syntax described in the cfitsio manual should work as documented. (Though the extended file name feature which allows the opening of a particular image located in the row of a table is currently unsupported.)

If the mode is Read [default]: It will read all of the headers in the file, and all of the data if the readDataFlag is supplied as true. It will also read optional primary keys. Upon completion, the the last header in the file will become the current extension. (However if the file name includes extended syntax selecting a particular extension, that extension will be the current one.)

If the mode is Write and the file already exists: The file is opened in read-write mode, all of the headers of the file are read, and all of the data if the readDataFlag is supplied as true. It will also read optional primary keys. For backwards compatibility with older versions of CCfits (which only read the primary when in Write mode for pre-existing files), the primary will become the current extension.

If the mode is Write and the file does NOT exist (or is overwritten using '!' syntax): A default primary HDU will be created in the file with BITPIX=8 and NAXIS=0. However if you wish to create a new file with image data in the primary, the version of the FITS constructor that specifies the data type and number of axes should be used instead.

Parameters:
nameThe name of the FITS file to be read/written
modeThe read/write mode: must be Read or Write
readDataFlagboolean: read data on construction if true
primaryKeysAllows optional reading of primary header keys on construction
Exceptions:
NoSuchHDUthrown on HDU seek error either by index or {name,version}
FitsErrorthrown on non-zero status code from cfitsio when not overriden by FitsException error to produce more illuminating message.
CCfits::FITS::FITS ( const String &  name,
RWmode  mode,
const string &  hduName,
bool  readDataFlag = false,
const std::vector< String > &  hduKeys = std::vector<String>(),
const std::vector< String > &  primaryKey = std::vector<String>(),
int  version = 1 
)

Open a FITS file and read a single specified HDU.

This and similar constructor variants support reading table data.

Optional arguments allow the reading of primary header keys and specified data from hduName, the HDU to be read. An object representing the primary HDU is always created: if it contains an image, that image may be read by subsequent calls.

If extended file name syntax is used and selects an extension other than hduName, a FITS::OperationNotSupported exception will be thrown.

Parameters:
nameThe name of the FITS file to be read
modeThe read/write mode: takes values Read or Write
hduNameThe name of the HDU to be read.
hduKeysOptional array of keywords to be read from the HDU
versionOptional version number. If not supplied the first HDU with name hduName is read see above for other parameter definitions
CCfits::FITS::FITS ( const String &  name,
RWmode  mode,
const std::vector< String > &  hduNames,
bool  readDataFlag = false,
const std::vector< String > &  primaryKey = std::vector<String>() 
)

This is intended as a convenience where the file consists of single versions of HDUs and data only, not keys are to be read.

If extended file name syntax is used and selects an extension not listed in hduNames, a FITS::OperationNotSupported exception will be thrown.

Parameters:
hduNamesarray of HDU names to be read.

see above for other parameter definitions.

CCfits::FITS::FITS ( const String &  fileName,
const FITS source 
)

create a new FITS object and corresponding file with copy of the primary header of the source If the filename corresponds to an existing file and does not start with the '!' character the construction will fail with a CantCreate exception.

Parameters:
fileNameNew file to be created.
sourceA previously created FITS object to be copied.

see above for other parameter definitions.

CCfits::FITS::FITS ( const String &  name,
RWmode  mode,
const std::vector< String > &  hduNames,
const std::vector< std::vector< String > > &  hduKeys,
bool  readDataFlag = false,
const std::vector< String > &  primaryKeys = std::vector<String>(),
const std::vector< int > &  hduVersions = std::vector<int>() 
)

FITS read constructor in full generality.

Parameters:
hduVersionsan optional version number for each HDU to be read
hduKeysan array of keywords for each HDU to be read. see above for other parameter definitions.
CCfits::FITS::FITS ( const String &  name,
int  bitpix,
int  naxis,
long *  naxes 
)

Constructor for creating new FITS objects containing images.

This constructor is only called for creating new files (mode is not an argument) and creates a new primary HDU with the datatype & axes specified by bitpix, naxis, and naxes. The data are added to the new fits object and file by subsequent calls to FITS::pHDU().write( <arguments> )

A file with a compressed image may be creating by appending to the end of the file name the same "[compress ...]" syntax specified in the cfitsio manual. Note however that the compressed image will be placed in the first extension and NOT in the primary HDU.

If the filename corresponds to an existing file and does not start with the '!' character the construction will fail with a CantCreate exception.

The arguments are:

Parameters:
nameThe file to be written to disk
bitpixthe datatype of the primary image. bitpix may be one of the following CFITSIO constants: BYTE_IMG, SHORT_IMG, LONG_IMG, FLOAT_IMG, DOUBLE_IMG, USHORT_IMG, ULONG_IMG. Note that if you send in a bitpix of USHORT_IMG or ULONG_IMG, CCfits will set HDU::bitpix() to its signed equivalent (SHORT_IMG or LONG_IMG), and then set BZERO to 2^15 or 2^31.
naxisthe data dimension of the primary image
naxesthe array of axis lengths for the primary image. Ignored if naxis =0, i.e. the primary header is empty. extensions can be added arbitrarily to the file after this constructor is called. The constructors should write header information to disk:
CCfits::FITS::FITS ( const string &  name,
RWmode  mode,
int  hduIndex,
bool  readDataFlag = false,
const std::vector< String > &  hduKeys = std::vector<String>(),
const std::vector< String > &  primaryKey = std::vector<String>() 
)

read a single numbered HDU.

Constructor analogous to the version that reads by name. This is required since HDU extensions are not required to have the EXTNAME or HDUNAME keyword by the standard. If there is no name, a dummy name based on the HDU number is created and becomes the key.

If extended file name syntax is used and selects an extension other than hduIndex, a FITS::OperationNotSupported exception will be thrown.

Parameters:
hduIndexThe index of the HDU to be read. see above for other parameter definitions.
CCfits::FITS::FITS ( const String &  name,
RWmode  mode,
const std::vector< String > &  searchKeys,
const std::vector< String > &  searchValues,
bool  readDataFlag = false,
const std::vector< String > &  hduKeys = std::vector<String>(),
const std::vector< String > &  primaryKey = std::vector<string>(),
int  version = 1 
)

open fits file and read HDU which contains supplied keywords with [optional] specified values (sometimes one just wants to know that the keyword is present).

Optional parameters allows the reading of specified primary HDU keys and specified columns and keywords in the HDU of interest.

Parameters:
nameThe name of the FITS file to be read
modeThe read/write mode: must be Read or Write
searchKeysA string vector of keywords to search for in each header
searchValuesA string vector of values those keywords are required to have for success. Note that the keys must be of type string. If any value does not need to be checked the corresponding searchValue element can be empty.
readDataFlagboolean: if true, read data if HDU is found
hduKeysAllows optional reading of keys in the HDU that is searched for if it is successfully found
primaryKeyAllows optional reading of primary header keys on construction
versionOptional version number. If specified, checks the EXTVERS keyword.
Exceptions:
FitsErrorthrown on non-zero status code from cfitsio when not overriden by FitsException error to produce more illuminating message.

Member Function Documentation

void CCfits::FITS::addImage ( const String &  hduName,
int  bpix,
std::vector< long > &  naxes,
int  version = 1 
)

Add an image extension to an existing FITS object. (File with w or rw access).

Does not make primary images, which are built in the constructor for the FITS file. The image data is not added here: it can be added by a call to one of the ExtHDU::write functions.

bpix may be one of the following CFITSIO constants: BYTE_IMG, SHORT_IMG, LONG_IMG, FLOAT_IMG, DOUBLE_IMG, USHORT_IMG, ULONG_IMG. Note that if you send in a bpix of USHORT_IMG or ULONG_IMG, CCfits will set HDU::bitpix() to its signed equivalent (SHORT_IMG or LONG_IMG), and then set BZERO to 2^15 or 2^31.

Todo:
Add a function for replacing the primary image
Table * CCfits::FITS::addTable ( const String &  hduName,
int  rows,
const std::vector< String > &  columnName = std::vector<String>(),
const std::vector< String > &  columnFmt = std::vector<String>(),
const std::vector< String > &  columnUnit = std::vector<String>(),
HduType  type = BinaryTbl,
int  version = 1 
)

Add a table extension to an existing FITS object. Add extension to FITS object for file with w or rw access.

Parameters:
rowsThe number of rows in the table to be created.
columnNameA vector containing the table column names
columnFmtA vector containing the table column formats
columnUnit(Optional) a vector giving the units of the columns.
typeThe table type - AsciiTbl or BinaryTbl (defaults to BinaryTbl) the lists of columns are optional - one can create an empty table extension but if supplied, colType, columnName and colFmt must have equal dimensions.
Todo:
the code should one day check that the version keyword is higher than any other versions already added to the FITS object (although cfitsio doesn't do this either).
void CCfits::FITS::copy ( const HDU source)

copy the HDU source into the FITS object.

This function adds a copy of an HDU from another file into *this. It does not create a duplicate of an HDU in the file associated with *this.

const String & CCfits::FITS::currentExtensionName ( ) const

return the name of the extension that the fitsfile is currently addressing.

If the extension in question does not have an EXTNAME or HDUNAME keyword, then the function returns $HDU$n, where n is the sequential HDU index number (primary HDU = 0).

void CCfits::FITS::deleteExtension ( const String &  doomed,
int  version = 1 
)

Delete extension specified by name and version number.

Removes extension from FITS object and memory copy. The index numbers of all HDU objects which follow this in the file will be decremented by 1.

Parameters:
doomedthe name of the extension to be deleted
versionan optional version number, the EXTVER keyword, defaults to 1
Exceptions:
NoSuchHDUThrown if there is no extension with the specified version number
FitsErrorThrown if there is a non-zero status code from cfitsio, e.g. if the delete operation is applied to a FITS file opened for read only access.
void CCfits::FITS::deleteExtension ( int  doomed)

Delete extension specified by extension number.

The index numbers of all HDU objects which follow this in the file will be decremented by 1.

void CCfits::FITS::destroy ( ) throw ()

Erase FITS object and close corresponding file.

Force deallocation and erase of elements of a FITS memory object. Allows a reset of everything inside the FITS object, and closes the file. The object is inaccessible after this call.

destroy is public to allow users to reuse a symbol for a new file, but it is identical in operation to the destructor.

const std::multimap< std::String, ExtHDU * > & CCfits::FITS::extension ( ) const

return const reference to the extension container

This is useful for such operations as extension().size() etc.

Table & CCfits::FITS::filter ( const String &  expression,
ExtHDU inputTable,
bool  overwrite = true,
bool  readData = false 
)

Filter the rows of the inputTable with the condition expression, and return a reference to the resulting Table.

This function provides an object oriented version of cfitsio's fits_select_rows call. The expression string is any boolean expression involving the names of the columns in the input table (e.g., if there were a column called "density", a valid expression might be "DENSITY > 3.5": see the cfitsio documentation for further details).

[N.B. the "append" functionality described below does not work when linked with cfitsio 2.202 or prior because of a known issue with that version of the library. This causes the output to be a new extension with a correct header copy and version number but without the filtered data]. If the inputTable is an Extension HDU of this FITS object, then if overwrite is true the operation will overwrite the inputTable with the filtered version, otherwise it will append a new HDU with the same extension name but the next highest version (EXTVER) number available.

void CCfits::FITS::flush ( )

flush buffer contents to disk

Provides manual control of disk writing operation. Image data are flushed automatically to disk after the write operation is completed, but not column data.

void CCfits::FITS::getTileDimensions ( std::vector< long > &  tileSizes) const

Get the current settings of dimension sizes for tiles used in image compression.

Parameters:
tileSizesA vector to be filled with cfitsio's current tile dimension settings. CCfits will resize this vector to contain the proper number of values.
void CCfits::FITS::read ( const String &  hduName,
bool  readDataFlag = false,
const std::vector< String > &  keys = std::vector<String>(),
int  version = 1 
)

get data from single HDU from disk file.

This is provided to allow the adding of additional HDUs to the FITS object after construction of the FITS object. After the read() functions have been called for the FITS object, subsequent read method to the Primary, ExtHDU, and Column objects will retrieve data from the FITS object in memory (those methods can be called to read data in those HDU objects that was not read when the HDU objects were constructed.

All the read functions will throw NoSuchHDU exceptions on seek errors since they involve constructing HDU objects.

The parameter definitions are as documented for the corresponding constructor.

void CCfits::FITS::read ( const std::vector< String > &  hduNames,
bool  readDataFlag = false 
)

get data from a set of HDUs from disk file.

This is provided to allow reading of HDUs after construction. see above for parameter definitions.

void CCfits::FITS::read ( const std::vector< String > &  hduNames,
const std::vector< std::vector< String > > &  keys,
bool  readDataFlag = false,
const std::vector< int > &  hduVersions = std::vector<int>() 
)

get data from a set of HDUs from disk file, specifying keys and version numbers.

This is provided to allow reading of HDUs after construction. see above for parameter definitions.

void CCfits::FITS::read ( int  hduIndex,
bool  readDataFlag = false,
const std::vector< String > &  keys = std::vector<String>() 
)

read an HDU specified by index number.

This is provided to allow reading of HDUs after construction. see above for parameter definitions.

CCfits::FITS::read ( const std::vector< String > &  searchKeys,
const std::vector< String > &  searchValues,
bool  readDataFlag = false,
const std::vector< String > &  hduKeys = std::vector<String>(),
int  version = 1 
)

read method for read header or HDU that contains specified keywords.

Parameters:
searchKeysA string vector of keywords to search for in each header
searchValuesA string vector of values those keywords are required to have for success. Note that the keys must be of type string. If any value does not need to be checked the corresponding searchValue element can be empty.
readDataFlagboolean: if true, read data if HDU is found
hduKeysAllows optional reading of keys in the HDU that is searched for if it is successfully found
versionOptional version number. If specified, checks the EXTVERS keyword.
void CCfits::FITS::setCompressionType ( int  compType)

set the compression algorithm to be used when adding image extensions to the FITS object.

Parameters:
compTypeCurrently 3 symbolic constants are defined in cfitsio for specifying compression algorithms: GZIP_1, RICE_1, and PLIO_1. See the cfitsio documentation for more information about these algorithms. Entering NULL for compType will turn off compression and cause normal FITS images to be written.
void CCfits::FITS::setNoiseBits ( int  noiseBits)

Set the cfitsio noisebits parameter used when compressing floating-point images.

The default value is 4. Decreasing the value of noisebits will improve the overall compression efficiency at the expense of losing more information.

void CCfits::FITS::setTileDimensions ( const std::vector< long > &  tileSizes)

Set the dimensions of the tiles into which the image is divided during compression.

Parameters:
tileSizesA vector of length N containing the tile dimesions. If N is less than the number of dimensions of the image it is applied to, the unspecified dimensions will be assigned a size of 1 pixel. If N is larger than the number of image dimensions, the extra dimensions will be ignored.

The default cfitsio behavior is to create tiles with dimensions NAXIS1 x 1 x 1 etc. up to the number of image dimensions.

bool CCfits::FITS::verboseMode ( ) [inline, static]

return verbose setting for library

If true, all messages that are reported by exceptions are printed to std::cerr.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1InvalidNumberOfRows.png0000644000225700000360000000120111667502525023473 0ustar cagordonlhea‰PNG  IHDRáPØûâ˜PLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2IDATxíÛ„ †£éýy/@ådÙì¡r~fw2äC¤Ûå5»,¯un!AølB""3 Zi]YgV«ëLÑí9ŽþOÈPj yÂd8ûwð>" áÊIñ£X§ÕŒÎ‰eyÐÊˈ³§t—–óŒ?Uv~ø…Mw/B{ÝL½‡þD o€¿a^¥mFµEX;Ò³kªfb•fGy5aÞKÃUÛ»‡b8p¯! ßCb¼“f†+r§—Ê·µê®!ü|íCB>F@BÞ‚pvYþ-Ûßwá··Ù§'ܶÙç'D/!AB‚„ !AB‚„ !ABþNhvYhòš!Ax+B"âqp ¨ëÄÁÑ]½LÕQ²4µVò—`¡Ô 7mÊ«sºkmí&„í([¦–…ä‘qò$¼¶Œízy¯c'V®JUéx%@íUmSCèªMÝ/™Ÿ¯7±Ë¼ÛŒ0º*ùpµ­ ®zi:AÏ0ºw‰Rû¥ï¶.U Ô’ÈbŒ0­ÒÓ„e/Ž)!Ø!´Áo4 CCfits: Member List
CCfits::Column::InvalidNumberOfRows Member List
This is the complete list of members for CCfits::Column::InvalidNumberOfRows, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InvalidNumberOfRows(size_t number, bool silent=true)CCfits::Column::InvalidNumberOfRows
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1Column_1_1InvalidRowNumber.html0000644000225700000360000001403611667505546023223 0ustar cagordonlhea CCfits: CCfits::Column::InvalidRowNumber Class Reference
CCfits::Column::InvalidRowNumber Class Reference

Exception thrown on attempting to read a row number beyond the end of a table. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::InvalidRowNumber:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InvalidRowNumber (const String &diag, bool silent=true)
 Exception ctor, prefixes the string "FitsError: Invalid Row Number - Column: " before the specific message.

Detailed Description

Exception thrown on attempting to read a row number beyond the end of a table.


Constructor & Destructor Documentation

CCfits::Column::InvalidRowNumber::InvalidRowNumber ( const String &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "FitsError: Invalid Row Number - Column: " before the specific message.

Parameters:
diagA specific diagnostic message, usually the column name.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1InvalidRowNumber.png0000644000225700000360000000115111667502526023030 0ustar cagordonlhea‰PNG  IHDRÍPšÆPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2øIDATxíÛà †K—ôýyˆ"ëÖ´[ÌOºÔ>9ôv{­$Ûk_G@ÐMfÚÇ4r{žzåwШ[˜§9Ý<­ëF•‡.‘alºZ÷4_.‰y†¦;bP7&ƒdï¼÷½i•W{’ÊÕ›Zc:‰UÝ^]xÐÓ¬—ᦧ9š4  h@óÇ4+ɳU+±º­tûIEND®B`‚CCfits/html/classCCfits_1_1Column_1_1InvalidRowNumber-members.html0000644000225700000360000000670511667502526024652 0ustar cagordonlhea CCfits: Member List
CCfits::Column::InvalidRowNumber Member List
This is the complete list of members for CCfits::Column::InvalidRowNumber, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InvalidRowNumber(const String &diag, bool silent=true)CCfits::Column::InvalidRowNumber
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1Column_1_1InvalidRowParameter.html0000644000225700000360000001452211667505546023713 0ustar cagordonlhea CCfits: CCfits::Column::InvalidRowParameter Class Reference
CCfits::Column::InvalidRowParameter Class Reference

Exception thrown on incorrect row writing request. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::InvalidRowParameter:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InvalidRowParameter (const String &diag, bool silent=true)
 Exception ctor, prefixes the string "FitsError: row offset or length incompatible with column declaration " before the specific message.

Detailed Description

Exception thrown on incorrect row writing request.

This exception is thrown if the user requests writing more data than a fixed width row can accommodate. An exception is thrown rather than a truncation because it is likely that the user will not otherwise realize that data loss is happening.


Constructor & Destructor Documentation

CCfits::Column::InvalidRowParameter::InvalidRowParameter ( const String &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "FitsError: row offset or length incompatible with column declaration " before the specific message.

Parameters:
diagA specific diagnostic message, usually the column name
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1InvalidRowParameter.png0000644000225700000360000000120011667502526023513 0ustar cagordonlhea‰PNG  IHDRÛP§*ðiPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2IDATxíÝr„0…Åñý¹$ü«ÙÖº6=wÌ | àíòšw,¯uÖ6°í°¹ ÑJëÊ2gE,M—mž6º“q̤ÅÙŠé@Ô€}Ÿ-Ún‡_š¨Æžµ•ýE+›Ÿ›‘}­ßa~L’íÈì+ªì)l¾Þ‚Fê-Þ¢#MØ`«sR5¦©6é9Ïf«ÊÑhrNV×÷9¶ºO¦’:ª·¶p ÞîfKß7\®=§áü;è“í[)²»Ù~g\óaØ:À6°ÝÊ6ïXnÛ½îÀvÚ6/ÜÄlÛ6/ÜÌlè“`ØÀ6° l`ØÀ6° l`ØÀ6Í;š6IÀ6°}„ˆxÞ'Üh»Øµ ÎìÊ›ŠZ¯ÞëᣠlŒc&ê:o¢Â°Ê2ºçlz}zfËBíU±ð‘¶ÈضϽ}û/?·NsCtjìåÝE[/ë8BÑÓ>›†ŸBÍ>{¤q‰7‹Û6%òlz,…·‡œì([¾·Ì}ØŒóâhÚë*sk½Ù] oî¾ß`+sòm6¹‡žx»ÚÉö¯j}ã'4Îv~­ãlÑÚÖ›©\×£{Ŭúd>Áõ›sqPoUv³ädþ¾iÑJŸ39aúõÉ=Êö¦§}2GÙÖh_4{¶O&¶éØÀ6°í_³Í;¾ˆ·.«lúL&IEND®B`‚CCfits/html/classCCfits_1_1Column_1_1InvalidRowParameter-members.html0000644000225700000360000000674011667502526025341 0ustar cagordonlhea CCfits: Member List
CCfits::Column::InvalidRowParameter Member List
This is the complete list of members for CCfits::Column::InvalidRowParameter, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InvalidRowParameter(const String &diag, bool silent=true)CCfits::Column::InvalidRowParameter
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1Column_1_1NoNullValue.png0000644000225700000360000000106711667502526022013 0ustar cagordonlhea‰PNG  IHDR«PQcuñPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ÆIDATxíÑŽÄ E¥“ôÿ?y@ÁÖnÛM˜½¦‰Ž ñʼ–OžV>[–V°~+‘m´m CCfits: Member List
CCfits::Column::NoNullValue Member List
This is the complete list of members for CCfits::Column::NoNullValue, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
NoNullValue(const String &diag, bool silent=true)CCfits::Column::NoNullValue
CCfits/html/classCCfits_1_1Column_1_1RangeError.html0000644000225700000360000001411211667505546022035 0ustar cagordonlhea CCfits: CCfits::Column::RangeError Class Reference
CCfits::Column::RangeError Class Reference

exception to be thrown for inputs that cause range errors in column read operations. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::RangeError:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 RangeError (const String &msg, bool silent=true)
 Exception ctor, prefixes the string "FitsError: Range error in operation " before the specific message.

Detailed Description

exception to be thrown for inputs that cause range errors in column read operations.

Range errors here mean (last < first) in a request to read a range of rows.


Constructor & Destructor Documentation

CCfits::Column::RangeError::RangeError ( const String &  msg,
bool  silent = true 
)

Exception ctor, prefixes the string "FitsError: Range error in operation " before the specific message.

Parameters:
msgA specific diagnostic message
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1RangeError.png0000644000225700000360000000110411667502526021645 0ustar cagordonlhea‰PNG  IHDR¦P¤þAPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ÓIDATxíÑ’Ã E%Éÿò>€ŠBÒ&Û°{LµBàˆWóZ^)Zy- 0™“ˆh-´,<7xO7KÛ n½‰Édj agLg3`šœR3îz–fV½ ’7kG »—@Í]ƒY+kµ‹sº›ûÜ ˜£6'KÓæ\ÛÚ¬àjLÓ»E%…ÙŽÚ¯azÒU»é^Q/ÁôOº‘ßž6åÅ€6?À4÷¦Îcu:XxƒwNºÜÁmîÌ{Ú™ ˜óL`>3E+7´õŽ ÿs]SpæÀ\לI0qÒ L`˜À&0 L`˜Àæ#0)E+”a€ ̘DÄã:àóe–Ñü$@à" ]61L&S1̯7¿ fÀéxCf/j_b)$‡Åõ°oÏþ¤ÜõNõІÄMlÛ˜=ûü8fŽ\ebü§jÐ l+—Ÿ _×Å´Õ´˜Ó«ÍL³‹Ó <&„énz³e¾9÷û˜ÇÅÞÅÜ.£—{Ó?éV’æó˜®61ͽ©E¯ãõkU ÝÁP!"ÉÖ_©1Œ6ûIÿúWèLâ/aºxð7ýø úÌÓÕ&0‹™¢ý3m#e#ÿÙ¹IEND®B`‚CCfits/html/classCCfits_1_1Column_1_1RangeError-members.html0000644000225700000360000000661611667502526023472 0ustar cagordonlhea CCfits: Member List
CCfits::Column::RangeError Member List
This is the complete list of members for CCfits::Column::RangeError, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
RangeError(const String &msg, bool silent=true)CCfits::Column::RangeError
CCfits/html/classCCfits_1_1Column_1_1WrongColumnType.html0000644000225700000360000001515711667505546023115 0ustar cagordonlhea CCfits: CCfits::Column::WrongColumnType Class Reference
CCfits::Column::WrongColumnType Class Reference

Exception thrown on attempting to access a scalar column as vector data. More...

#include <Column.h>

Inheritance diagram for CCfits::Column::WrongColumnType:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 WrongColumnType (const String &diag, bool silent=true)
 Exception ctor, prefixes the string "FitsError: Attempt to return scalar data from vector column, or vice versa - Column: " before the specific message.

Detailed Description

Exception thrown on attempting to access a scalar column as vector data.

This exception will be thrown if the user tries to call a read/write operation with a signature appropriate for a vector column on a scalar column, or vice versa. For example in the case of write operations, the vector versions require the specification of (a) a number of rows to write over, (b) a vector of lengths to write to each row or (c) a subset specification. The scalar versions only require a number of rows if the input array is a plain C-array, otherwise the range to be written is the size of the input vector.


Constructor & Destructor Documentation

CCfits::Column::WrongColumnType::WrongColumnType ( const String &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "FitsError: Attempt to return scalar data from vector column, or vice versa - Column: " before the specific message.

Parameters:
diagA specific diagnostic message, usually the column name.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Column_1_1WrongColumnType.png0000644000225700000360000000113511667502527022720 0ustar cagordonlhea‰PNG  IHDRÏP‰oÑûPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ìIDATxíÝà …¥Kúþ¼ Plu¶³9¦‹N~ôÁÛðY«…϶RxÀ3•‡ˆ¨m´mžZz)‰¿oµ0Íå©×7—"gù#†ù3ƒÇ½?zC>— ß­“ú&oYš›ÁóŸvõáxhàx.ñ¬Õ¤¶ÏZˆü<%­X…êU àÑfÉ´ßiùŒœÔ·'Ÿôa+oú0Oû¥==„×ñ¨›2Ó÷ñÜpð€<xÖj_‡ ,ÖŒ ïIEND®B`‚CCfits/html/classCCfits_1_1Column_1_1WrongColumnType-members.html0000644000225700000360000000667411667502527024545 0ustar cagordonlhea CCfits: Member List
CCfits::Column::WrongColumnType Member List
This is the complete list of members for CCfits::Column::WrongColumnType, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
WrongColumnType(const String &diag, bool silent=true)CCfits::Column::WrongColumnType
CCfits/html/classCCfits_1_1ExtHDU.html0000644000225700000360000017302011667505546017256 0ustar cagordonlhea CCfits: CCfits::ExtHDU Class Reference

base class for all FITS extension HDUs, i.e. Image Extensions and Tables. More...

#include <ExtHDU.h>

Inheritance diagram for CCfits::ExtHDU:
Inheritance diagram CCfits::HDU CCfits::ImageExt< T > CCfits::Table CCfits::AsciiTable CCfits::BinTable

List of all members.

Classes

class  WrongExtensionType
 Exception to be thrown on unmatched extension types. More...

Public Member Functions

 ExtHDU (const ExtHDU &right)
 copy constructor
virtual ~ExtHDU ()
 destructor
virtual void addColumn (ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=-1, size_t columnNumber=0)
 add a new column to an existing table HDU.
virtual HDUclone (FITSBase *p) const =0
 virtual copy constructor
virtual Columncolumn (const String &colName, bool caseSensitive=true) const
 return a reference to a Table column specified by name.
virtual Columncolumn (int colIndex) const
 return a reference to a Table column specified by column index.
virtual const std::map< string,
Column * > & 
column () const
 return a reference to the array containing the columns.
virtual void deleteColumn (const String &columnName)
 delete a column in a Table extension by name.
virtual long getRowsize () const
 return the optimal number of rows to read or write at a time
bool isCompressed () const
 return true if image is stored using compression.
virtual void makeThisCurrent () const
 move the fitsfile pointer to this current HDU.
const String & name () const
 return the name of the extension.
virtual int numCols () const
 return the number of Columns in the Table (the TFIELDS keyword).
template<typename S >
void read (std::valarray< S > &image)
 Read image data into container.
template<typename S >
void read (std::valarray< S > &image, long first, long nElements, S *nullValue)
 read part of an image array, processing null values.
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)
 read part of an image array, processing null values.
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)
 read an image subset
template<typename S >
void read (std::valarray< S > &image, long first, long nElements)
 read an image section starting at a specified pixel
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &first, long nElements)
 read an image section starting at a location specified by an n-tuple
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)
 read an image subset into valarray image, processing null values
virtual void readData (bool readFlag=false, const std::vector< String > &keys=std::vector< String >())=0
 read data from HDU depending on readFlag and keys.
virtual long rows () const
 return the number of rows in the extension.
int version () const
 return the extension version number.
void version (int value)
 set the extension version number
template<typename S >
void write (const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)
 Write a set of pixels to an image extension with the first pixel specified by an n-tuple, processing undefined data.
template<typename S >
void write (long first, long nElements, const std::valarray< S > &data, S *nullValue)
 write array to image starting with a specified pixel and allowing undefined data to be processed
template<typename S >
void write (const std::vector< long > &first, long nElements, const std::valarray< S > &data)
 write array starting from specified n-tuple, without undefined data processing
template<typename S >
void write (long first, long nElements, const std::valarray< S > &data)
 write array starting from specified pixel number, without undefined data processing
template<typename S >
void write (const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::valarray< S > &data)
 write a subset (generalize slice) of data to the image

Static Public Member Functions

static void readHduName (const fitsfile *fptr, int hduIndex, String &hduName, int &hduVersion)
 read extension name.

Protected Member Functions

 ExtHDU (FITSBase *p, HduType xtype, const String &hduName, int version)
 default constructor, required as Standard Library Container content.
 ExtHDU (FITSBase *p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector< long > &axes, int version)
 writing constructor.
 ExtHDU (FITSBase *p, HduType xtype, int number)
 ExtHDU constructor for getting ExtHDUs by number.
long gcount () const
 return required gcount keyword value
void gcount (long value)
 set required gcount keyword value
long pcount () const
 return required pcount keyword value
void pcount (long value)
 set required pcount keyword value
HduType xtension () const
 return the extension type
void xtension (HduType value)
 set the extension type

Detailed Description

base class for all FITS extension HDUs, i.e. Image Extensions and Tables.

ExtHDU needs to have the combined public interface of Table objects and images. It achieves this by providing the same set of read and write operations as PHDU, and also providing the same operations for extracting columns from the extension as does Table [after which the column interface is accessible]. Differentiation between extension types operates by exception handling: .i.e. attempting to access image data structures on a Table object through the ExtHDU interface will or trying to return a Column reference from an Image extension will both throw an exception


Constructor & Destructor Documentation

CCfits::ExtHDU::ExtHDU ( FITSBase *  p,
HduType  xtype,
const String &  hduName,
int  bitpix,
int  naxis,
const std::vector< long > &  axes,
int  version 
) [protected]

writing constructor.

The writing constructor forces the user to supply a name for the HDU. The bitpix, naxes and naxis data required by this constructor are required FITS keywords for any HDUs.

CCfits::ExtHDU::ExtHDU ( FITSBase *  p,
HduType  xtype,
int  number 
) [protected]

ExtHDU constructor for getting ExtHDUs by number.

Necessary since EXTNAME is a reserved, not required, keyword. But a synthetic name is supplied by static ExtHDU::readHduName which is called by this constructor.


Member Function Documentation

void CCfits::ExtHDU::addColumn ( ValueType  type,
const String &  columnName,
long  repeatWidth,
const String &  colUnit = String(""),
long  decimals = -1,
size_t  columnNumber = 0 
) [virtual]

add a new column to an existing table HDU.

Parameters:
typeThe data type of the column to be added
columnNameThe name of the column to be added
repeatWidthfor a string valued, this is the width of a string. For a numeric column it supplies the vector length of the rows. It is ignored for ascii table numeric data.
colUnitan optional field specifying the units of the data (TUNITn)
decimalsoptional parameter specifying the number of decimals for an ascii numeric column
columnNumberoptional parameter specifying column number to be created. If not specified the column is added to the end. If specified, the column is inserted and the columns already read are reindexed. This parameter is provided as a convenience to support existing code rather than recommended.

Reimplemented in CCfits::AsciiTable, and CCfits::BinTable.

Column & CCfits::ExtHDU::column ( const String &  colName,
bool  caseSensitive = true 
) const [virtual]

return a reference to a Table column specified by name.

If the caseSensitive parameter is set to false, the search will be case-insensitive. The overridden base class implementation ExtHDU::column throws an exception, which is thus the action to be taken if self is an image extension

Exceptions:
WrongExtensionTypesee above

Reimplemented in CCfits::Table.

Column & CCfits::ExtHDU::column ( int  colIndex) const [virtual]

return a reference to a Table column specified by column index.

This version is provided for convenience; the 'return by name' version is more efficient because columns are stored in an associative array sorted by name.

Exceptions:
WrongExtensionTypethrown if *this is an image extension.

Reimplemented in CCfits::Table.

const map< string, Column * > & CCfits::ExtHDU::column ( ) const [virtual]

return a reference to the array containing the columns.

Exceptions:
WrongExtensionTypethrown if *this is an image extension.

Reimplemented in CCfits::Table.

void CCfits::ExtHDU::deleteColumn ( const String &  columnName) [virtual]

delete a column in a Table extension by name.

Parameters:
columnNameThe name of the column to be deleted.
Exceptions:
WrongExtensionTypeif extension is an image.

Reimplemented in CCfits::Table.

long CCfits::ExtHDU::getRowsize ( ) const [virtual]

return the optimal number of rows to read or write at a time

A wrapper for the CFITSIO function fits_get_rowsize, useful for obtaining maximum I/O efficiency. This will throw if it is not called for a Table extension.

Reimplemented in CCfits::Table.

bool CCfits::ExtHDU::isCompressed ( ) const

return true if image is stored using compression.

This is simply a wrapper around the CFITSIO fits_is_compressed_image function. It will throw if this is not an Image extension.

void CCfits::ExtHDU::makeThisCurrent ( ) const [virtual]

move the fitsfile pointer to this current HDU.

This function should never need to be called by the user since it is called internally whenever required.

Reimplemented from CCfits::HDU.

int CCfits::ExtHDU::numCols ( ) const [virtual]

return the number of Columns in the Table (the TFIELDS keyword).

Exceptions:
WrongExtensionTypethrown if *this is an image extension.

Reimplemented in CCfits::Table.

template<typename S >
void CCfits::ExtHDU::read ( std::valarray< S > &  image)

Read image data into container.

The container image contains the entire image array after the call. This and all the other variants of read() throw a WrongExtensionType exception if called for a Table object.

template<typename S >
void CCfits::ExtHDU::read ( std::valarray< S > &  image,
long  first,
long  nElements,
S *  nullValue 
)

read part of an image array, processing null values.

Implicit data conversion is supported (i.e. user does not need to know the type of the data stored. A WrongExtensionType extension is thrown if *this is not an image.

Parameters:
imageThe receiving container, a std::valarray reference
firstThe first pixel from the array to read [a long value]
nElementsThe number of values to read
nullValueA pointer containing the value in the table to be considered as undefined. See cfitsio for details
template<typename S >
void CCfits::ExtHDU::read ( std::valarray< S > &  image,
const std::vector< long > &  first,
long  nElements,
S *  nullValue 
)

read part of an image array, processing null values.

As above except for

Parameters:
firsta vector<long> representing an n-tuple giving the coordinates in the image of the first pixel.
template<typename S >
void CCfits::ExtHDU::read ( std::valarray< S > &  image,
const std::vector< long > &  firstVertex,
const std::vector< long > &  lastVertex,
const std::vector< long > &  stride,
S *  nullValue 
)

read an image subset into valarray image, processing null values

The image subset is defined by two vertices and a stride indicating the 'denseness' of the values to be picked in each dimension (a stride = (1,1,1,...) means picking every pixel in every dimension, whereas stride = (2,2,2,...) means picking every other value in each dimension.

static void CCfits::ExtHDU::readHduName ( const fitsfile *  fptr,
int  hduIndex,
String &  hduName,
int &  hduVersion 
) [static]

read extension name.

Used primarily to allow extensions to be specified by HDU number and provide their name for the associative array that contains them. Alternatively, if there is no name keyword in the extension, one is synthesized from the index.

long CCfits::ExtHDU::rows ( ) const [virtual]

return the number of rows in the extension.

Exceptions:
WrongExtensionTypethrown if *this is an image extension.

Reimplemented in CCfits::Table.

template<typename S >
void CCfits::ExtHDU::write ( const std::vector< long > &  first,
long  nElements,
const std::valarray< S > &  data,
S *  nullValue 
)

Write a set of pixels to an image extension with the first pixel specified by an n-tuple, processing undefined data.

All the overloaded versions of ExtHDU::write perform operations on *this if it is an image and throw a WrongExtensionType exception if not. Where appropriate, alternate versions allow undefined data to be processed

Parameters:
firstan n-tuple of dimension equal to the image dimension specifying the first pixel in the range to be written
nElementsnumber of pixels to be written
dataarray of data to be written
nullValuepointer to null value (data with this value written as undefined; needs the BLANK keyword to have been specified).
template<typename S >
void CCfits::ExtHDU::write ( long  first,
long  nElements,
const std::valarray< S > &  data,
S *  nullValue 
)

write array to image starting with a specified pixel and allowing undefined data to be processed

parameters after the first are as for version with n-tuple specifying first element. these two version are equivalent, except that it is possible for the first pixel number to exceed the range of 32-bit integers, which is how long datatype is commonly implemented.

template<typename S >
void CCfits::ExtHDU::write ( const std::vector< long > &  firstVertex,
const std::vector< long > &  lastVertex,
const std::valarray< S > &  data 
)

write a subset (generalize slice) of data to the image

A generalized slice/subset is a subset of the image (e.g. one plane of a data cube of size <= the dimension of the cube). It is specified by two opposite vertices. The equivalent cfitsio call does not support undefined data processing so there is no version that allows a null value to be specified.

Parameters:
firstVertexthe coordinates specifying lower and upper vertices of the n-dimensional slice
lastVertex
dataThe data to be written
HduType CCfits::ExtHDU::xtension ( ) const [inline, protected]

return the extension type

allowed values are ImageHDU, AsciiTbl, and BinaryTbl


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1ExtHDU.png0000644000225700000360000000231311667502527017066 0ustar cagordonlhea‰PNG  IHDR[ÀÇ0ëPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ZIDATxíÝYrà €áˆÎøþGîƒY$–/Øù5iKl∯B¼¾vŠ¿b¯ÅLîúÀ[l±ÅÛ£mEDÌ@ĉsëµ4+ü–8-]ƶA~…çjÚæó±}K«"âœø?‰ÎÚdl{mCM–/l÷µ5]Ù—4¶;ØÒ´-nc»Å¶<÷ó~[³Õó±}ƒ+~ëûA°õ?ÅY–ÏÇöºÀ[l±Å[l±ÅÛÝlgˆ‡ÚŽÇ¶7¤]ÀÅöŽ´àbËYF`‹-¶¶ØbK`‹-¶¶ØbK`‹-¶¶ØbK`‹--¶ØØb;AÈ ñT[rÀ[l±ÅöÁ¶ñ‘—±G}¼/þNü’ö7ý m ?7·Íß%ÛüØæwÂ@D^/ñÒç´¸ÈZÚ-dl¶¡Ë—2,H±Ýn[öÛõW¸€í—¶•ž l©Û!ÛZ;¦'ô¯«8æó~[9Ëê¤Ø–÷Ö>±Ÿšýï»k°õ£xÇ> ÛÌ[l±Å[l±ÅÛ‡ØÎµloH»€‹íiÁÅ–³ŒÀ[l l±Å–À[le² à¨lY ¶ØbËb°Å[l±%l±Å–t°Åöéü Ç2þˆiÓ´uׇ¶+l±Å[loe+"b"Nœ[¯ÅÈÞ–!TL_ï•ØdÛ•göM~ð1ùƒl×4Õ žÏgÛ÷Ó«ŸßbÛ™§½p­mQi"âœø?)©õbX™.ÿN/£R¤£¶½y† !©˜[mßœmj£òµ ã%õ.ýâ+¶êâˆm#O[à>¿”åL¶¶níVT¨¢ú­ª”ÖN oö³mÌ´sf²-zBº® 6½Kr~36Ûñúv'ÛFOÈvØç¦pªmQ¦l3({ÂiukozB£¶Ï±­Ÿ¿yhÙ–ýÖ?e÷~Û›çLýVê¡_ª´ç…ø3m5 mVüåJGh¬k‹mgžª'8 ‰¤,O¶Šž­Öµ˜}Ò‹‰l{¶¶ßâ~ÞfØN°l±Å[l±Ýn;CL›abÛÒ.àb{GZp±å,#°Å[[l±%°ÅÛß1™,¨7Ê[ƒ-¶Ø²l±Å[lI[l±%l±}F:ñŒ?bÚtmÝõ¡mçJ[l±ÅÛ»ÚŠˆ˜ˆçÖkfbå³Î‰“5²i•Ùý¶}9…¯M_½-“Ãm×ÔÕ •‘¼IRßÙÁ¶3§8íËL޶ÍÿÉN$£s©”m($¿vµÀp-“ª¡-¶½9)yÿ¥Û29Ý6ÔKöÒ?銱 ׊ Û6rÒ¶ßdr±­˜RLÛÍnÌ‚ýÛZ¿Õ ¤;“+mMOˆ§„>>Šž`W¤–l›=á‹L.µ-nÇß5[[Bå±¾m~»fÛ™ÉѶõ3Ù¶´\õè~»)§w¶÷Û°Ò@'–ÿçÓ¦4NÎòñtî°íÍ©Ùoû29Þöìè±½&l±Å[l±Å[log;CL–Î?ÑÅ‹ZÙ¦®êIEND®B`‚CCfits/html/classCCfits_1_1ExtHDU-members.html0000644000225700000360000005601011667502527020701 0ustar cagordonlhea CCfits: Member List
CCfits::ExtHDU Member List
This is the complete list of members for CCfits::ExtHDU, including all inherited members.
addColumn(ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=-1, size_t columnNumber=0)CCfits::ExtHDU [virtual]
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const =0CCfits::ExtHDU [pure virtual]
column(const String &colName, bool caseSensitive=true) const CCfits::ExtHDU [virtual]
column(int colIndex) const CCfits::ExtHDU [virtual]
column() const CCfits::ExtHDU [virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteColumn(const String &columnName)CCfits::ExtHDU [virtual]
deleteKey(const String &doomed)CCfits::HDU
ExtHDU(const ExtHDU &right)CCfits::ExtHDU
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector< long > &axes, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, int number)CCfits::ExtHDU [protected]
fitsPointer() const CCfits::HDU
gcount() const CCfits::ExtHDU [inline, protected]
gcount(long value)CCfits::ExtHDU [inline, protected]
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
getRowsize() const CCfits::ExtHDU [virtual]
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
isCompressed() const CCfits::ExtHDU
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::ExtHDU [virtual]
name() const CCfits::ExtHDU [inline]
naxes()CCfits::HDU [inline, protected]
numCols() const CCfits::ExtHDU [virtual]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
pcount() const CCfits::ExtHDU [inline, protected]
pcount(long value)CCfits::ExtHDU [inline, protected]
read(std::valarray< S > &image)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)CCfits::ExtHDU
readAllKeys()CCfits::HDU
readData(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())=0CCfits::ExtHDU [pure virtual]
readHduName(const fitsfile *fptr, int hduIndex, String &hduName, int &hduVersion)CCfits::ExtHDU [static]
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
rows() const CCfits::ExtHDU [virtual]
scale() const CCfits::HDU [inline, virtual]
scale(double value)CCfits::HDU [inline, virtual]
suppressScaling(bool toggle=true)CCfits::HDU
updateChecksum()CCfits::HDU
verifyChecksum() const CCfits::HDU
version() const CCfits::ExtHDU [inline]
version(int value)CCfits::ExtHDU [inline]
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::valarray< S > &data)CCfits::ExtHDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
xtension() const CCfits::ExtHDU [inline, protected]
xtension(HduType value)CCfits::ExtHDU [inline, protected]
zero() const CCfits::HDU [inline, virtual]
zero(double value)CCfits::HDU [inline, virtual]
~ExtHDU()CCfits::ExtHDU [virtual]
~HDU()CCfits::HDU [protected, virtual]
CCfits/html/classCCfits_1_1ExtHDU_1_1WrongExtensionType.html0000644000225700000360000001430011667505546023465 0ustar cagordonlhea CCfits: CCfits::ExtHDU::WrongExtensionType Class Reference
CCfits::ExtHDU::WrongExtensionType Class Reference

Exception to be thrown on unmatched extension types. More...

#include <ExtHDU.h>

Inheritance diagram for CCfits::ExtHDU::WrongExtensionType:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 WrongExtensionType (const String &msg, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: wrong extension type" before the specific message.

Detailed Description

Exception to be thrown on unmatched extension types.

This exception is to be thrown if the user requested a particular extension and it does not correspond to the expected type.


Constructor & Destructor Documentation

CCfits::ExtHDU::WrongExtensionType::WrongExtensionType ( const String &  msg,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: wrong extension type" before the specific message.

Parameters:
msgA specific diagnostic message
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1ExtHDU_1_1WrongExtensionType.png0000644000225700000360000000122611667502527023304 0ustar cagordonlhea‰PNG  IHDRÜPEöëPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2%IDATxíÝ’Ã …%Éû?ò^ˆÊŸ‰mS“uŽíŽVåCÀÛôZx¤×¶ìà÷OàˆˆÔ‚h£mË{J‹òv•”½#ãÎÐT¸Ì#쌅 –n_Aö9œó”ï'OÍ·*â“e¢-«QœØ»®Ü¢ÿŠ<ëìÉÉ*¶½ÇÀéš3’Zsöªã~\œ–M":‹€«çápQI ‰OËèo„‹»¥+«£šãƒ57νsÒ;_J’Sð [ò›Y÷¦Ãýf\ôÀpÏ€à¦Ã-<ÒܱOþ€»Šm_˜ne¸}_˜ni8tKÀp€à8Àp€à8Àp€[މÖMÀp·ÁQ^—Eî6žÛP=Îrb ¯Å1'-[ } ûü\u©,X`áì¯g ¼wH1z® çÂFD)O͈TOIHéàr*/}z4«^‹-¨mЦÛî«×ÎØ¯€pLŽ—B-Ç‹“¸JzVµV°mà”Ê;p¾:J0kæwn.ô-šÉYuS°moî#¸ -µGi9笶€õ™uÐ'Çᢒ CCfits: Member List
CCfits::ExtHDU::WrongExtensionType Member List
This is the complete list of members for CCfits::ExtHDU::WrongExtensionType, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
WrongExtensionType(const String &msg, bool silent=true)CCfits::ExtHDU::WrongExtensionType
CCfits/html/classCCfits_1_1FITS-members.html0000644000225700000360000003504711667502527020354 0ustar cagordonlhea CCfits: Member List
CCfits::FITS Member List
This is the complete list of members for CCfits::FITS, including all inherited members.
addImage(const String &hduName, int bpix, std::vector< long > &naxes, int version=1)CCfits::FITS
addTable(const String &hduName, int rows, const std::vector< String > &columnName=std::vector< String >(), const std::vector< String > &columnFmt=std::vector< String >(), const std::vector< String > &columnUnit=std::vector< String >(), HduType type=BinaryTbl, int version=1)CCfits::FITS
clearErrors()CCfits::FITS [static]
copy(const HDU &source)CCfits::FITS
currentExtension()CCfits::FITS
currentExtensionName() const CCfits::FITS
deleteExtension(const String &doomed, int version=1)CCfits::FITS
deleteExtension(int doomed)CCfits::FITS
destroy()CCfits::FITS
extension(int i) const CCfits::FITS
extension(int i)CCfits::FITS
extension(const String &hduName, int version=1) const CCfits::FITS
extension(const String &hduName, int version=1)CCfits::FITS [inline]
extension() const CCfits::FITS
filter(const String &expression, ExtHDU &inputTable, bool overwrite=true, bool readData=false)CCfits::FITS
FITS(const String &name, RWmode mode=Read, bool readDataFlag=false, const std::vector< String > &primaryKeys=std::vector< String >())CCfits::FITS
FITS(const String &name, RWmode mode, const string &hduName, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), const std::vector< String > &primaryKey=std::vector< String >(), int version=1)CCfits::FITS
FITS(const String &name, RWmode mode, const std::vector< String > &hduNames, bool readDataFlag=false, const std::vector< String > &primaryKey=std::vector< String >())CCfits::FITS
FITS(const String &fileName, const FITS &source)CCfits::FITS
FITS(const String &name, RWmode mode, const std::vector< String > &hduNames, const std::vector< std::vector< String > > &hduKeys, bool readDataFlag=false, const std::vector< String > &primaryKeys=std::vector< String >(), const std::vector< int > &hduVersions=std::vector< int >())CCfits::FITS
FITS(const String &name, int bitpix, int naxis, long *naxes)CCfits::FITS
FITS(const string &name, RWmode mode, int hduIndex, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), const std::vector< String > &primaryKey=std::vector< String >())CCfits::FITS
FITS(const String &name, RWmode mode, const std::vector< String > &searchKeys, const std::vector< String > &searchValues, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), const std::vector< String > &primaryKey=std::vector< string >(), int version=1)CCfits::FITS
fitsPointer() const CCfits::FITS
flush()CCfits::FITS
getCompressionType() const CCfits::FITS
getNoiseBits() const CCfits::FITS
getTileDimensions(std::vector< long > &tileSizes) const CCfits::FITS
name() const CCfits::FITS
pHDU() const CCfits::FITS
pHDU()CCfits::FITS
read(const String &hduName, bool readDataFlag=false, const std::vector< String > &keys=std::vector< String >(), int version=1)CCfits::FITS
read(const std::vector< String > &hduNames, bool readDataFlag=false)CCfits::FITS
read(const std::vector< String > &hduNames, const std::vector< std::vector< String > > &keys, bool readDataFlag=false, const std::vector< int > &hduVersions=std::vector< int >())CCfits::FITS
read(int hduIndex, bool readDataFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::FITS
read(const std::vector< String > &searchKeys, const std::vector< String > &searchValues, bool readDataFlag=false, const std::vector< String > &hduKeys=std::vector< String >(), int version=1)CCfits::FITS
resetPosition()CCfits::FITS
setCompressionType(int compType)CCfits::FITS
setNoiseBits(int noiseBits)CCfits::FITS
setTileDimensions(const std::vector< long > &tileSizes)CCfits::FITS
setVerboseMode(bool value)CCfits::FITS [inline, static]
verboseMode()CCfits::FITS [inline, static]
~FITS()CCfits::FITS
CCfits/html/structCCfits_1_1FITS_1_1CantCreate.html0000644000225700000360000001427311667505546021537 0ustar cagordonlhea CCfits: CCfits::FITS::CantCreate Class Reference
CCfits::FITS::CantCreate Class Reference

thrown on failure to create new file More...

#include <FITS.h>

Inheritance diagram for CCfits::FITS::CantCreate:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 CantCreate (const String &diag, bool silent=false)
 Exception ctor prefixes the string: "FITS Error: Cannot create file " before specific message.

Detailed Description

thrown on failure to create new file


Constructor & Destructor Documentation

CCfits::FITS::CantCreate::CantCreate ( const String &  msg,
bool  silent = false 
)

Exception ctor prefixes the string: "FITS Error: Cannot create file " before specific message.

This exception will be thrown if the user attempts to write to a protected directory or attempts to create a new file with the same name as an existing file without specifying overwrite [overwrite is specified by adding the character '!' before the filename, following the cfitsio convention].

Parameters:
msgA specific diagnostic message, the name of the file that was to be created.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/structCCfits_1_1FITS_1_1CantCreate.png0000644000225700000360000000104411667502527021343 0ustar cagordonlhea‰PNG  IHDR”PÈ›¬DPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2³IDATxíÑŽÄ EÅIúÿŸ¼‚"`kÚé†Ý\Ó´†«xD°¯å“°•OMר_""š:D•jm¶i5sWÄvÒ¼£-¨Æ¡:ìÄBÝ«åö†PnŽGû Ÿ]VŠÆ'ž)ªmµ +Û(‰šÔy,lúcÛc¨9§ŒÒsÊÆmBt¼Ï âãŠÊxÕ â%¨(å”â/ Ø ¨¸ú\ÚœåOÜÈ©m(wOi¯>¿&¥ÕIõñ×mÛPï´ Py¡þ¨gP [ù^;¾èë_CGBªŒPÇ‘*%ªP€ (@ P€ õ·¡(a+”/ä€Ô‹PDÔúÒiU` ¹< IÙª‰ÆÏ¼ÎJrÕ¦© ÊW/#Øi±r566Ìñ(Emp¸oa¡ÂÁœ¸ÙÔ—é¯ (Ùœl@äÔ'½Ow3»MŒCî,{PsNÙ ‘TœJŸç]¨óã[Lç´^BÉæd”¶¡¢”[$V¸§E¤VÇqQ}>!¶«ÏAÍ+l唿§t¦ú M‰®t}Í»ïDÅ)£âêÃoP€T^¨„í›9Ž´ŽÌaIEND®B`‚CCfits/html/classCCfits_1_1FITS_1_1CantCreate-members.html0000644000225700000360000000660211667502530022733 0ustar cagordonlhea CCfits: Member List
CCfits::FITS::CantCreate Member List
This is the complete list of members for CCfits::FITS::CantCreate, including all inherited members.
CantCreate(const String &diag, bool silent=false)CCfits::FITS::CantCreate
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1FITS_1_1CantOpen.html0000644000225700000360000001403211667505546021007 0ustar cagordonlhea CCfits: CCfits::FITS::CantOpen Class Reference
CCfits::FITS::CantOpen Class Reference

thrown on failure to open existing file More...

#include <FITS.h>

Inheritance diagram for CCfits::FITS::CantOpen:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 CantOpen (const String &diag, bool silent=true)
 Exception ctor prefixes the string: "FITS Error: Cannot create file " before specific message.

Detailed Description

thrown on failure to open existing file


Constructor & Destructor Documentation

CCfits::FITS::CantOpen::CantOpen ( const String &  diag,
bool  silent = true 
)

Exception ctor prefixes the string: "FITS Error: Cannot create file " before specific message.

This exception will be thrown if users attempt to open an existing file for write access to which they do not have permission, or of course if the file does not exist.

Parameters:
diagA specific diagnostic message, the name of the file that was to be created.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FITS_1_1CantOpen.png0000644000225700000360000000103011667502530020607 0ustar cagordonlhea‰PNG  IHDRP fPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2§IDATxíÝŽ„ …©“øþ¼-Ø?PgÝMcNc¦…úQxÛ>•¬}¶:Ð CCfits: Member List
CCfits::FITS::CantOpen Member List
This is the complete list of members for CCfits::FITS::CantOpen, including all inherited members.
CantOpen(const String &diag, bool silent=true)CCfits::FITS::CantOpen
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1FITS_1_1NoSuchHDU.html0000644000225700000360000001427711667505546021053 0ustar cagordonlhea CCfits: CCfits::FITS::NoSuchHDU Class Reference
CCfits::FITS::NoSuchHDU Class Reference

exception thrown by HDU retrieval methods. More...

#include <FITS.h>

Inheritance diagram for CCfits::FITS::NoSuchHDU:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 NoSuchHDU (const String &diag, bool silent=true)
 Exception ctor, prefixes the string "FITS Error: Cannot read HDU in FITS file:" before the specific message.

Detailed Description

exception thrown by HDU retrieval methods.


Constructor & Destructor Documentation

CCfits::FITS::NoSuchHDU::NoSuchHDU ( const String &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "FITS Error: Cannot read HDU in FITS file:" before the specific message.

Parameters:
diagA specific diagnostic message, usually the name of the extension whose read was attempted.
silentif true, print message whether FITS::verboseMode is set or not.

Exception to be thrown by failed seek operations


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FITS_1_1NoSuchHDU.png0000644000225700000360000000105611667502530020650 0ustar cagordonlhea‰PNG  IHDR›P9÷ÉPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2½IDATxíÝrÄ …%;“÷ä^(zãd³IKÛÃd ‚_øqoË+¯”×–UÈF¶l""f!²É¶UÙ%UÝ-ª[H ô[ÅE‹åÙ&˧žØrÌjÙ©¯º›Á‚_!ÍS_²ÕmR¿t°iãE:ÐáËoº»Øl¿9Kï7ŸEC°oa›×tX`(€­Ï̳l³vK¬é,}×ÙæsZjÕoÍñD¿½Ëî7 {ÏXjýsÚîÊ®{—í9w±‘í7±Ýó[O6²=ÖWÊ­²ßî¿°í{^¸Älûž.3ç”ld#ÙÈF6²‘ld#ÙÈF¶of“¼R$mÈF¶b‘ºÖEÇÞ&¨ˆ88ր㯠kµ›[¤¦éVuìZ]‚`¸Rà·oÉæ7l#øøÞ–=pÅæ !ÀìG-{rɦÑâãó¡­Ðžá×`\´Zà ÒU6Ûo>e6¯Ã Ø þÝ{•m]Ó™—a3 ±?ÌÛ´fÁ±ád]e›Ïih³SlÚNŽÍi§Hs¶p¿aÛÆÞ3³ìc"Ým ÓkØÂåÊß,²‘l›-¯|Šy!lÀ»›IEND®B`‚CCfits/html/classCCfits_1_1FITS_1_1NoSuchHDU-members.html0000644000225700000360000000656411667502530022471 0ustar cagordonlhea CCfits: Member List
CCfits::FITS::NoSuchHDU Member List
This is the complete list of members for CCfits::FITS::NoSuchHDU, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
NoSuchHDU(const String &diag, bool silent=true)CCfits::FITS::NoSuchHDU
CCfits/html/classCCfits_1_1FITS_1_1OperationNotSupported.html0000644000225700000360000001424011667505546023630 0ustar cagordonlhea CCfits: CCfits::FITS::OperationNotSupported Class Reference
CCfits::FITS::OperationNotSupported Class Reference

thrown for unsupported operations, such as attempted to select rows from an image extension. More...

#include <FITS.h>

Inheritance diagram for CCfits::FITS::OperationNotSupported:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 OperationNotSupported (const String &msg, bool silent=true)
 Exception ctor, prefixes the string "FITS Error: Operation not supported:" before the specific message.

Detailed Description

thrown for unsupported operations, such as attempted to select rows from an image extension.


Constructor & Destructor Documentation

CCfits::FITS::OperationNotSupported::OperationNotSupported ( const String &  msg,
bool  silent = true 
)

Exception ctor, prefixes the string "FITS Error: Operation not supported:" before the specific message.

Parameters:
msgA specific diagnostic message.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FITS_1_1OperationNotSupported.png0000644000225700000360000000122211667502530023432 0ustar cagordonlhea‰PNG  IHDRÙP£ß TPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2!IDATxí]ŽÃ „ãTÊý¼3Ø„ÒÝ,EhP[(ãÿðz¼vmÇëܳ‘Œd$[—LD¤ˆœrž:WI‰NÛJžë)Šæ‘) ’%ž¬1°ùïX¿& f&ÏhW ³eXÁ;´3wrª˜è­ÁÜ×ȲÿâÂëf;/XæÖ «óÌ­XžyVœz²v4–(%@f•fe²VÂJŒÆ–ë¾EÖ®!•zy–6äÙ\²ðž¡i1窼NmLo£ÍÍ%ûŸöÈCF2’-×HF2’M!Ûµ3Û5õ4’=v튶-Ùu튶/k#ÉHF2’‘Œd$#ÉHF2’‘Œd$#ÉHF2’­F&»¶C6’‘ŒdSÉDDÇy åÅ‘§ºsH.ª°Ñééï3]ý¯ ÷º…La``M-&?naÐ’|AÍ€¦²âºrõÉ3ùØYÔ{H¶6­îÕŸäO]ñT‘ë.‚N­m°8ë“…þã]“ƒØyZo Ž*+±²h] QlªÍ’ÕyæÝ}êL¬í WggÚQ-yüºÙQ²~46·£Oð*RŒßYêÉî‘<™iþŒ¬•†7ÉÖô§q2,e#>«ƒãMm éõAmô ñž,æ"&ÏMžcYxÏ0qcÎUÖá9ôE,%°ú|Å2¤{XÛµÑdojãóíiÅí÷µ#N2’­ÒHF2’M!Ûµýhy.QŽ;+IEND®B`‚CCfits/html/classCCfits_1_1FITS_1_1OperationNotSupported-members.html0000644000225700000360000000673711667502530025262 0ustar cagordonlhea CCfits: Member List
CCfits::FITS::OperationNotSupported Member List
This is the complete list of members for CCfits::FITS::OperationNotSupported, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
OperationNotSupported(const String &msg, bool silent=true)CCfits::FITS::OperationNotSupported
CCfits/html/classCCfits_1_1FitsError.html0000644000225700000360000001361311667505546020075 0ustar cagordonlhea CCfits: CCfits::FitsError Class Reference
CCfits::FitsError Class Reference

FitsError is the exception thrown by non-zero cfitsio status codes. More...

#include <FitsError.h>

Inheritance diagram for CCfits::FitsError:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 FitsError (int errornum, bool silent=true)
 ctor for cfitsio exception: translates status code into cfitsio error message

Detailed Description

FitsError is the exception thrown by non-zero cfitsio status codes.


Constructor & Destructor Documentation

CCfits::FitsError::FitsError ( int  errornum,
bool  silent = true 
)

ctor for cfitsio exception: translates status code into cfitsio error message

The exception prefixes the string "Fits Error: " to the message printed by cfitsio.

Parameters:
errornumThe cfitsio status code produced by the error.
silentA boolean controlling the printing of messages

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FitsError.png0000644000225700000360000000072511667502530017703 0ustar cagordonlhea‰PNG  IHDRP™ZÂPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2dIDATxím¯Ã …‹Kúÿòý*oµ]ÜB–{È G|,ÐîëñªµãÕ* |ðňˆŒCÔ¨5Ž #bY+=¶°xç3R9²ßów^nüp˜<%/3}ÈJÑ7%Éì 5ÞFül*vÃ﵈?UЋ˜^üÆ{‡oûï”Ñ_ s›pµÇü¼þSQƒ¨øcN÷ùÙx(%Ö?+ÚŸÏhñªÿ’ø ÿ?¼ÿú€8 FáZ/æ_¾%#–ñ¿c7ßðñÿ~)¿ÖŽM;wømþyÖ^ ˜žµ¨æÿûù|ðÁ|ðÁ|ð‰OµvPiùÀÿâ¥0ªÛ+l”Ûâ3R9²Éó÷Ír¦üp˜<%/3aÈJQ¹œ#Ù—¨'ü^‹øëjˆÉm$Òýðmÿ2úozh*³ÅÏë?›û~6Jù?Ÿÿ¤ÅËþoðÃûßùjÊÝü %ôÎ?¾¿àƒ¾å×Ú1âde³IEND®B`‚CCfits/html/classCCfits_1_1FitsError-members.html0000644000225700000360000000633411667502530021515 0ustar cagordonlhea CCfits: Member List
CCfits::FitsError Member List
This is the complete list of members for CCfits::FitsError, including all inherited members.
FitsError(int errornum, bool silent=true)CCfits::FitsError
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1FitsException.html0000644000225700000360000002734311667505546020747 0ustar cagordonlhea CCfits: CCfits::FitsException Class Reference
CCfits::FitsException Class Reference

FitsException is the base class for all exceptions thrown by this library. More...

#include <FitsError.h>

Inheritance diagram for CCfits::FitsException:
Inheritance diagram CCfits::Column::InsufficientElements CCfits::Column::InvalidDataType CCfits::Column::InvalidNumberOfRows CCfits::Column::InvalidRowNumber CCfits::Column::InvalidRowParameter CCfits::Column::NoNullValue CCfits::Column::RangeError CCfits::Column::WrongColumnType CCfits::ExtHDU::WrongExtensionType CCfits::FITS::CantCreate CCfits::FITS::CantOpen CCfits::FITS::NoSuchHDU CCfits::FITS::OperationNotSupported CCfits::FitsError CCfits::FITSUtil::UnrecognizedType CCfits::HDU::InvalidExtensionType CCfits::HDU::InvalidImageDataType CCfits::HDU::NoNullValue CCfits::HDU::NoSuchKeyword CCfits::Table::NoSuchColumn

List of all members.

Public Member Functions

 FitsException (const string &msg, bool &silent)
const string & message () const
 returns the error message

Detailed Description

FitsException is the base class for all exceptions thrown by this library.

All exceptions derived from this class can be caught by a single 'catch' clause catching FitsException by reference (which is the point of this base class design).

A static "verboseMode" parameter is provided by the FITS class to control diagnostics - if FITS::verboseMode() is true, all diagnostics are printed (for debugging purposes). If not, then a boolean silent determines printing of messages. Each exception derived from FitsException must define a default value for the silent parameter.


Constructor & Destructor Documentation

CCfits::FitsException::FitsException ( const string &  diag,
bool &  silent 
)
Parameters:
diagA diagnostic string to be printed optionally.
silentA boolean controlling the printing of messages

Member Function Documentation

const string & CCfits::FitsException::message ( ) const [inline]

returns the error message

This returns the diagnostic error message associated with the exception object, and which is accessible regardless of the verboseMode and silent flag settings.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FitsException.png0000644000225700000360000001605111667502531020550 0ustar cagordonlhea‰PNG  IHDRÌx¼fpPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2¸IDATxíÝív㬆áWt­}þ‡¼ @“4Níû™tBlAZ.ÿ“»ç¿åî,˜ü}ü±ü}ü±ü}ü±ü}oücE¤vn ‘ÿdP¤Þ¶wÚµí_ë= `î(¦¡#E̤yà;ßfæ™~­¡ë¯¾QûmsDz‹öloò_-“ú ˜k`~³­ÒùeöÍÅ5û Ç50/Âôgf¸ÓÏ̸Níä æ˜ù6;îŒ.³ƒùm˜Ù‘jîÌÛl¶@ÁüÜ+fêó 2ÁœùäÈ™ æoÿ±zîõ†Õ˜ÏOw§n©ý)¨ã´QÚiª•ö‘óoý±ïþ}ÀL0Áäïãåï“?–¿?–¿ïÃìÝó$ÌOçL˜ä -ÿ‡&˜ä-Ñ“|#'S&“€IÀ“€IÀ$`0Á$`0 ˜L0 ˜L&˜L&“€ &“< óçîyf¹wÀL0ÁL0w1ED\C¤H)õZVW?íLéê¾Hû‚U¡Ô¯’ìw8ò-OƬ~¦¡ç©×½„Ù¿h³g«ófŸŽ>uIÔ· ¯.PòZÛÚ¾¾}nõ:j_s} Þªß9Ö­»×ž§Pk¿̬Qg.¼’ÛuOlsìû7e ¾,û’¤Ök‚¹ÔÚ¹xM¡›¿>Cû3sñ%ù/ æZ+ÝfOcÚmvÙé’•iY³ÚoØf¯Ë Ìý…{sc›­|› ß³þ%Ÿ¾2ëLôyOŒB¿}l›uÅë3s…¹·Í‚9”D7*m´yÒŸ>[­ÎTÉbž=nëV¦È±93ǽøÙý’`Þ3`‚ &˜`‚ &˜`‚ &˜`~óîy&“€ &“€IÀ$`‚IÀ$`0Á$`0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ<—Ÿ»çQ˜åÞL0ÁL0Á<)"â"EJ©×²ºúigrW÷ÇÈR‡´…½-5`žÄ¬~¦1æ:¯{3°.ž3’`ÆÅ0E)¢o^]1JQk[Û×ëçþãú™ÕßoŽÿÂCÖFÞX¬`f˜cã+¹]÷ÊF»ø²8¬Åœ ˜á˜ÿ„™×E¥d®'ÅqÑß 7ýŽ>=`þ+fºÍžÆ¬ûp)¢xŠÙojËá}®÷Ù 0¯Ë?aî/Ü㘱Ú}Çj›ú.ÃÊŒÛYjêüí#˜qÇ gæ$`rfÃìûZkô=M·Ù>émÿU’­Ì·_mLWûÝEô;ÇjدsùÝ1OÃfÀü#–`ÞÓîµ`þùmöhÀL0ÁL0gÌ»çI˜L&˜L&“€ &“€IÀ“€IÀ$`0Á$`0 ˜L0 ˜L&˜L&“€ &ó\~îžGa–{L0ÁL0Ás)"â"EJ©×Lz]ý´3—«ûcäÞJJÓÞæ-â0ͼ‰iŒ¹žçw\|Ó°†A7{»_tÕñÙ˜}BZCDJ}Ëðê’PõZÛÚ¾^?÷×O{í Õö ­Ô;í‰ë£š¯é¿˜æáŸ_Ém>¥‰]|Y6܇jôas¶ÛHe< `¦Z;·£·-óPãâºkòÙo¬fe÷…ž?s`­t›=Ù¶È:ý Ö¦'›Æ;^ºÍ^—#˜û ÷8æ<í0ýw.·Y=Tݯüĕ٧ež¿må·`º¯ˆ]Çëãv%þ6áqy,¦n£Ñ·8ݳƤ×:SÕVÕÎJíÛeØ[‹¡ìw¦'ÏVôGãÁ˜7 ˜`‚ &˜`‚ &˜`‚ &˜Ƽ{ž„IÀ$`‚IÀ$`0 ˜`0 ˜L0 ˜L&L&“€IÀ“€IÀ$`‚IÀ$`0 ˜`0Ïåçîyf¹wÀL0ÁL0`Šˆ¸†H‘R구®~Ú™ÕÕý1²Ô!³Bý}Ž ¦™11×yݢ53[Þs ³OOkˆH)¢o^]LJQk[Û×ëçþãúÕßïbcç_ÑöI̹Qç.¼’Ûu¯l4±‹/‹ÃÌF¸Äœ¿¢=`ÇÌ뢒Ÿb»‰ú˱´™ËçgñvÁƒy 3ÝfOc¶Í°Â-Qæ‘60ÍCp9æu9‡¹¿pcÆj{fš£Ñ›+Óä¬Ì1!Ý!™ÀPçoÁt_±qf†í³½>†Áœ5ë–Õ}+Óm¶OºÖ™ª¶zvVjÞ,·ÞÒî™»ÂôöwóÞL0ÁL0ÁL0ÁóØwÏ“0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ$`0 ˜`0 ˜L0 ˜L&Læ¹üÜ=Â,÷˜`‚ &˜`‚ æ&¦ˆˆkˆ)¥^Ëêê§é\Ý#K2+\]?ü=OŬ~¦1æzžµqñÌÀšT®®ƒ¹Ù'£5D¤Ñ· ¯.¥¨µ­íëõsÿqýÆêï÷F±¿Þ¾Bû÷~õ7ìwZ?0C£NXx%·ë$7šØÅ—Åa æ ô˜ã9H¾-þöQ3ÕÚ¹½m™W­L_®zœ™vÔäÛÜŠs­•n³§1ûJk{éìœÔ¶ôqœûþ ‰ë0¯ËAÌý…{3VÛ3Óœ¾ãLôÐ+ðPýì•Ù'tžY¿Óæ·`º¯Ø83ç s“m6`¶­Ìíim²Ý Ò:SÕ–ÑÎJíÃu×»¶î™²Û¬ýþÞô©¿¦ùšgcÞ1`‚ &˜`‚ &˜`‚ &˜`~óîy&“€ &“€IÀ$`‚IÀ$`0Á$`0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ<—Ÿ»çQ˜åÞL0ÁL0Áü'L×)RJ½–ÕÕO{£†ªäsÿ’Xæ¿bV?ÓÐ óÚëbÆú¹?˜ïÆìÓ×"RŠè[6ÍuªD­mmWßV{‚lT½æK˜~¶í+¹]ª¸n̾>!_cΣZ§`žÁÌëâ´{¿.ªâÊó—1Ómö8¦Ý€³ÏzŠê¹©ÛûXïGöÙ 0¯Ë‹˜û ÷]˜é6Ë™yreº¹LB¿½‰Ùn¹Ø«÷ÈFe›=©Ühô}N·Ù!QëLU[jùJíU&öb"¢«´Þ×n`žÃüËL0ÁL0ÁL0ÁóØwÏ“0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ$`0 ˜`0 ˜L0 ˜L&Læ¹üÜ=Â,÷˜`‚ &˜`‚ æ?bŠˆ¸†H‘R구®~:0ꡚ½"0O`V?ÓÐÙ“Üëb(zÁÌÍ m )Eô-ë‹IÕkmkÇz1åvÕ1ZqGËAƒ¹‡9Œâ+¹]ç¿mÌS½+j7ìcПý¯Û|Á<‡™×yÌðy>3=ŸÖ"·Õ»aÀ|fºÍÅìFºoOŠñ»ÿæuysánb®—döݬ̗W¦ŸÈÌh©““û˜é™ æ{0u¾ê6Ûf½Õ™*ÉV¦y j‘JÚ¬cLg¦Þó_1?cP`~=æñ-Ìï_™mKóÛ,˜`‚ &˜`‚ æobÞ=OÂ$`0Á$`0 ˜L0 ˜L&˜L&“€ &“€IÀ$`‚IÀ$`0Á$`0 ˜L0 ˜çòs÷< ³Ü;`‚ &˜`‚ &˜0ED\C¤H)õZVW?íLª˜Ÿ­²cƒJ ˜;˜ÕÏ4tÊâÌõºwbžôˆäÓ1ûµ†ˆ”"ú–Ís]!ª^k[;ÔÝòÕ¿?¨}èÆ(1˜S£Îdx%·«R£qŦ›Þ5§ ˜®̃˜y]B6Í­è?¿Jç·£ƒú• æYÌt›½Ó&ó>{æu9…¹¿pטæãû0õñˆÝY™VÉNYœÎPçoÿ;¦¬¿s“33Ç,}¯ÒFßÃÆ„×ÙÔ:S%Ù"êõÓvë]ÚÕ´m{y}²Mò`¯®`^ùO˜á$ó+4ç òÄjóÛ¶Ùß ˜`‚ &˜`‚ æŒy÷< “€IÀ“€IÀ$`0Á$`0 ˜`0 ˜L&˜L&“€ &“€IÀ“€IÀ$`0Á$`žËÏÝó(Ìrï€ &˜`‚ &˜`naŠˆ¸†H‘Rê5W¥u¥Œû¢w´mº‰ùYf5-J;mŽûTÌNÐ:K3~˜q€3˜›jGû§¥5D¤Ñ·1i–X¤.Þ•ê„Y—ºhs^þcÔ¹JGp—Ý4j 1˜Na~´ÉÐbjÓ”ÕçC7å~g5ª¯J.LWæs>ÝÚbé'×beÑ~•†·iÔé-¹W&˜0“mÖOûÖ6{ su< kc¾ûž×a^—c˜Ù‘º¿ÍÆSófÜÍ]צ>*ñ¹xðÊôKg:ï"¦¥†'1Í™éGM~‡MLÎLÚFß¶Ü.§§[›vmùým àõ£]G˜F«ZÃ^ŽÿᘗÅoŒÿ ‹•¹\þ¬Ì×Væ0ixfÃLº»MÔn±œ™¿…©Þh´yÖŸ jG}½¨ãˆH;ʸÓnªºÏ²2ß…ùç&˜`‚ &˜`‚ &˜`‚ æ‡1ïž'a0 ˜`0 ˜L&˜L&L&“€IÀ“€IÀ$`0Á$`0 ˜`0 ˜L&˜Ìsù¹{…Yî0ÁL0ÁÌw`Šˆ¸†H‘Rê5W%RŠhKLÇ0Žë¶¼æ/`Öé6 ÷ˆËÍáFì–ßóý˜}’»V_¥˜µÀœÇ©=‹]¼æá¨×|˜¿‰ÙÓüŠ °íÎî~ï{ºkæ˜Ãôgf\”ÉÊ5¾3föæg0··ÙE÷RÕ·0]Å×c^—÷bfGêâàLŸ…õÊ…¬Ì÷­ÌaÒñÌ<†™tw{i[èl³¿‰©ÛâhôÍP·Y¯jG}½¨ãˆH;ʸ£û¶û0߉ù¹œ¦L0ÁóÃL0ÁL0Áœ1ïž'a0 ˜`0 ˜L&˜L&L&“€IÀ“€IÀ$`0Á$`0 ˜`0 ˜L&˜Ìsù¹{…Yî0ÁL0ÁÌ—0ED\C¤H)õš«)E´%¦c)­Ütrw}Õ(Ö‘ôÊ\æ9Ì>­á&<2˜Y÷óoLBÝ&für0_ÁcEéúkB[˜æ~3©kÍÖÛ«æfp¬*˜ïÄlÓ?¿âŠk»³¾F?Õ £Õm51óC˜þÌŒ‹Ò¯ÜÑÉ`LóiœÀ`~s{›Íz9L·$§±ÿÚʼ.oÂÌŽÔÅÁ1ÛÝÛ`þ…•9¦qž~»ÓÁlGbÀ WSC0ß‚Yô0ì~®SϨšYõn!ëpmXsuÂŒ_æk˜1`‚ &˜`‚ &˜`‚ &˜`~óîy&“€ &“€IÀ$`‚IÀ$`0Á$`0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ<—Ÿ»çQ˜åÞL0ÁL0ÁÜÆq ‘"¥Ôk®J¤Ñ–˜ŽaœeæQÛ…qYdû&Ÿ‹YýLC'%bÆró_¸qpòÛ#0 s`$0SÌ>]«¯¿6Ó[˜ñ¾öí•R—¹®ä¶ðêu}ëqÔ˜'l†a{‡¾›€™5êú¯¸ÛîÖs}ŒÑ<¤+7ûÛØ{Ma:¬Ì=LfÆE9¯Ü â—tœÿéiéßÙ¿*«·?á*˜KÌím6ínWžÕ×Í{…1׊³|1æu9Š™©‹ƒ3]™f¸•1ÛÀGWfؼ2‡É<‡v§ÝÃ4ã„Ãms>WíA¸83§_̾ŽFßÀÆÑZ?ØÌý1Žè¼öÚ–"¢ÚÓÒ2—uïTcéã%Ãjí(óÝ1“úÎñÎ &˜`‚ygÌ/˜`‚ &˜`‚ æŒy÷< “€IÀ“€IÀ$`0Á$`0 ˜`0 ˜L&˜L&“€ &“€IÀ“€IÀ$`0Á$`žËÏÝó(Ìrï€ &˜`‚ &˜`þ¦ˆˆkˆ)¥^sUR/÷;í˜ß‚YýLCu"fÒüEG0ÿÙÒ6týÕ·ÁÕo›;¦oí£½µ æå˜m•ίvwº¦´z¥µÁü6Lf†;ýÌt[µ[³`~ f¾ÍŽ;¾ï-0¯Ë¯cfGª¹sCÌ¿½2=D_xó±¸yf‚ù˜EϽÞh˜úàÜéÌ,:˜a~oÀL0ÁL0ÁL0Áü0æÝó$L&L&“€IÀ“€IÀ$`‚IÀ$`0 ˜`0 ˜L&˜L&L&“€IÀ“€y.?wÏ£0˽&˜`‚ &˜`‚ySDÄ5DŠ”R¯¹*‘RD[ÒëkóÒý¿SÉz˜ïs³OºAIfµ}F®¾÷{s |p¨GcúɯKP×B)f-,0Ç zëz/u1÷ï0o¦Î¬x{×?t}Ìy±‚95ì®é·OãØvç¸Íšú@T;´kŽ]ßþnÀµQÌ5¦?3§EyàÌl%æÇlä©p¬MV&˜g1··Y»„ŽbÖ'b³m¡f1§ãµìbÌër 3;R§ÿN®Lÿ¶éŠÆï3¯pV¦× ÛåÊæ˜Ë33ìîé™Ù093sÌÒ÷*s*¶ žÏO;±Ú±õOê‡ë{göiuà 36½°!Æuò ¦Ó£`rf¦˜}k¾…é6kUÝÖ6êói©S¯³Ÿl³ú=íS¼ˆþc5ŽoЭwÚeŽy}²Ýr»x£˜×BžÁ G9˜ß¥9ï”û‹̯Ýfß0ÁL0ÁÌóîy&“€ &“€IÀ$`‚IÀ$`0Á$`0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ<—Ÿ»çQ˜åÞL0ÁL0Á| SDÄ5DŠ”R¯ªö¿ô²qÙÞ_îƒÆ*0ß…ÙMZC'x‰ëÛ#˜âg03,­RD¤Ñ·d¥Íªz¡×…Û?·^пÆ]5_æ›0ýìÛ׳½"Þ&ætµ+ƒùk˜îdÕE»X™NòÙ™ùIÌsÛ¬®F‡3aꊭ‡Ã¬¾óº¼ sºý6Ìt›åÌ|qeº¹M÷É ÓÖÛaN[|áØf¶Ù7aê†7}ßÓm6HŒýpÔ;©1Jß«gÌ""ºJë}íæk˜1`‚ &˜`‚ &˜`‚ &˜`~óîy&“€ &“€IÀ$`‚IÀ$`0Á$`0 ˜L0 ˜L&L&“€ &“€IÀ$`‚IÀ<—Ÿ»çQ˜åÞL0ÁL0Á<)"â"EJ©×FUû_zÙ¸lïOÃΣ„®»Ù®3Ì”˜†ð 3Ö7;ß)÷2c·ó(fXZ¥ˆH)¢ogX[U½Ð„êŠìÃ…«ífß zÍhéåz­î`þfŸÐéµÀl/£TõÂh*3ŠÃÍ„U«Á|¦;uÑ.V¦éÔ–÷šV^”ŽCØ0_Ä<·Í¶mÑï±9fëÝŸèùݘ×åÌéöqL³ §˜½uwÏ+óäÊ&óôÛv6œ1Û!OTu–ngh†È™y³Ô­n4̶ÏnA&õn!ëíV&ºìæ4žöÑ®¦?˜‡0¿!Û\Ûó>–`ÞÈÌ;L0ÁL0ÁsƼ{ž„IÀ$`‚IÀ$`0 ˜`0 ˜L0 ˜L&L&“€IÀ“€IÀ$`‚IÀ$`0 ˜`0Ïåçîyf¹wÀL0ÁL0ÏcŠˆ¸†H‘Rê5[ÔêJ¿ékÚgsÕö UÓݹ̳˜ÕÏ4Pî ³ÆNÊŠÁ|3.¶""¥ˆ¾Í€u1I½%ýB+ñW-›½ênšâþÖÛÉÂó8æ˜Q÷òK¸‚»ùï æj³VfÐé µ@·úi»óÌEå4ÿöŽ»:V°Ûœ·1ÓÁÁ| s±ÍúY¯l× àÊoy]^ÁtSé¶Ù|õFÌÖå^˜fÓ¥3šbæó]KRÌpuý…`¾€©çhX¯€R‹Š1g¡)«YÇlc‹øÚÆÞ«z7VæK˜<`‚ &˜`‚ &˜`‚ &˜`~óîù?<© ,CØžIEND®B`‚CCfits/html/classCCfits_1_1FitsException-members.html0000644000225700000360000000575711667502531022373 0ustar cagordonlhea CCfits: Member List
CCfits::FitsException Member List
This is the complete list of members for CCfits::FitsException, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1FitsFatal.html0000644000225700000360000001146011667502531020020 0ustar cagordonlhea CCfits: CCfits::FitsFatal Class Reference
CCfits::FitsFatal Class Reference

[potential] base class for exceptions to be thrown on internal library error. More...

#include <FitsError.h>

List of all members.

Public Member Functions

 FitsFatal (const string &diag)
 Prints a message starting "*** CCfits Fatal Error: ..." and calls terminate()

Detailed Description

[potential] base class for exceptions to be thrown on internal library error.

As of this version there are no subclasses. This error requests that the user reports this circumstance to HEASARC.


Constructor & Destructor Documentation

CCfits::FitsFatal::FitsFatal ( const string &  diag)

Prints a message starting "*** CCfits Fatal Error: ..." and calls terminate()

Parameters:
diagA diagnostic string to be printed identifying the context of the error.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FitsFatal-members.html0000644000225700000360000000526011667502531021451 0ustar cagordonlhea CCfits: Member List
CCfits::FitsFatal Member List
This is the complete list of members for CCfits::FitsFatal, including all inherited members.
FitsFatal(const string &diag)CCfits::FitsFatal
CCfits/html/classCCfits_1_1HDU.html0000644000225700000360000017355511667505546016612 0ustar cagordonlhea CCfits: CCfits::HDU Class Reference

Base class for all HDU [Header-Data Unit] objects. More...

#include <HDU.h>

Inheritance diagram for CCfits::HDU:
Inheritance diagram CCfits::ExtHDU CCfits::PHDU CCfits::ImageExt< T > CCfits::Table CCfits::AsciiTable CCfits::BinTable

List of all members.

Classes

class  InvalidExtensionType
 exception to be thrown if user requests extension type that can not be understood as ImageExt, AsciiTable or BinTable. More...
class  InvalidImageDataType
 exception to be thrown if user requests creation of an image of type not supported by cfitsio. More...
class  NoNullValue
 exception to be thrown on seek errors for keywords. More...
class  NoSuchKeyword
 exception to be thrown on seek errors for keywords. More...

Public Member Functions

 HDU (const HDU &right)
 copy constructor
template<typename T >
KeywordaddKey (const String &name, T val, const String &comment)
 create a new keyword in the HDU with specified value and comment fields
KeywordaddKey (const Keyword *inKeyword)
 create a copy of an existing Keyword and add to HDU
long axes () const
 return the number of axes in the HDU data section (always 2 for tables).
long axis (size_t index) const
 return the size of axis numbered index [zero based].
long bitpix () const
 return the data type keyword.
virtual HDUclone (FITSBase *p) const =0
 virtual copy constructor, to be implemented in subclasses.
const string & comment () const
 return the comment string previously read by getComment()
void copyAllKeys (const HDU *inHdu)
 copy all keys from another header
void deleteKey (const String &doomed)
 delete a keyword from the header
fitsfile * fitsPointer () const
 return the fitsfile pointer for the FITS object containing the HDU
std::pair< unsigned long,
unsigned long > 
getChecksum () const
 compute and return the checksum values for the HDU without creating or modifying the CHECKSUM/DATASUM keywords.
const String & getComments ()
 read the comments from the HDU and add it to the FITS object.
const String & getHistory ()
 read the history information from the HDU and add it to the FITS object.
const string & history () const
 return the history string previously read by getHistory()
void index (int value)
 set the HDU number
int index () const
 return the HDU number
std::map< String, Keyword * > & keyWord ()
 return the associative array containing the HDU keywords so far read.
KeywordkeyWord (const String &keyName)
 return a (previously read) keyword from the HDU object.
const std::map< string,
Keyword * > & 
keyWord () const
 return the associative array containing the HDU Keywords that have been read so far.
const KeywordkeyWord (const string &keyname) const
 return a (previously read) keyword from the HDU object. const version
virtual void makeThisCurrent () const
 move the fitsfile pointer to this current HDU.
bool operator!= (const HDU &right) const
 inequality operator
bool operator== (const HDU &right) const
 equality operator
FITSBase * parent () const
 return reference to the pointer representing the FITSBase object containing the HDU
void readAllKeys ()
 read all of the keys in the header
template<typename T >
void readKey (const String &keyName, T &val)
 read a keyword of specified type from the header of a disk FITS file and return its value.
template<typename T >
void readKeys (std::vector< String > &keyNames, std::vector< T > &vals)
 read a set of specified keywords of the same data type from the header of a disk FITS file and return their values
virtual double scale () const
 return the BSCALE keyword value
virtual void scale (double value)
 set the BSCALE keyword value for images (see warning for images of int type)
void suppressScaling (bool toggle=true)
 turn off image scaling regardless of the BSCALE and BZERO keyword values
void updateChecksum ()
 update the CHECKSUM keyword value, assuming DATASUM exists and is correct
std::pair< int, int > verifyChecksum () const
 verify the HDU by computing the checksums and comparing them with the CHECKSUM/DATASUM keywords
void writeChecksum ()
 compute and write the DATASUM and CHECKSUM keyword values
void writeComment (const String &comment="Generic Comment")
 write a comment string.
void writeDate ()
 write a date string to *this.
void writeHistory (const String &history="Generic History String")
 write a history string.
virtual double zero () const
 return the BZERO keyword value
virtual void zero (double value)
 set the BZERO keyword value for images (see warning for images of int type)

Static Public Member Functions

static std::vector< int > keywordCategories ()
 return the enumerated keyword categories used by readAllKeys() and copyAllKeys()

Protected Member Functions

 HDU (FITSBase *p=0)
 default constructor, called by HDU subclasses that read from FITS files.
 HDU (FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)
 constructor for creating new HDU objects, called by HDU subclasses writing to FITS files.
virtual ~HDU ()
 destructor
std::vector< long > & naxes ()
 return the HDU data axis array.

Detailed Description

Base class for all HDU [Header-Data Unit] objects.

HDU objects in CCfits are either PHDU (Primary HDU objects) or ExtHDU (Extension HDU) objects. Following the behavior. ExtHDUs are further subclassed into ImageExt or Table objects, which are finally AsciiTable or BinTable objects.

HDU's public interface gives access to properties that are common to all HDUs, largely required keywords, and functions that are common to all HDUs, principally the manipulation of keywords and their values.

HDUs must be constructed by HDUCreator objects which are called by FITS methods. Each HDU has an embedded pointer to a FITSBase object, which is private to FITS [FITSBase is a pointer encapsulating the resources of FITS. For details of this coding idiom see Exceptional C++ by Herb Sutter (2000) and references therein].


Member Function Documentation

template<typename T >
Keyword & CCfits::HDU::addKey ( const String &  name,
value,
const String &  comment 
)

create a new keyword in the HDU with specified value and comment fields

The function returns a reference to keyword object just created. If a keyword with this name already exists, it will be overwritten. Note that this is mostly intended for adding user-defined keywords. It should not be used to add keywords for which there are already specific HDU functions, such as scaling or checksum. Nor should it be used for image or column structural keywords, such as BITPIX, NAXIS, TFORMn, etc. As a general rule, it is best to use this for keywords belonging to the same categories listed in the keywordCategories() function.

Parameters:

Parameters:
name(String) The keyword name
value(Recommended T = String, double, std::complex<float>, int, or bool
comment(String) the keyword value

It is possible to create a keyword with a value of any of the allowed data types in fitsio (see the cfitsio manual section 4.3). However one should be aware that if this keyword value is read in from the file at a later time, it will be stored in a templated Keyword subclass (KeyData<T>) where T will be one of the recommended types listed above. Also see Keyword::value (T& val) for more details.

Keyword * CCfits::HDU::addKey ( const Keyword inKeyword)

create a copy of an existing Keyword and add to HDU

This is particularly useful for copying Keywords from one HDU to another. For example the inKeyword pointer might come from a different HDU's std::map<string,Keyword*>. If a keyword with this name already exists, it will be overwritten. The return value is a pointer to the newly created Keyword inserted into this HDU. Also see copyAllKeys().

long CCfits::HDU::axis ( size_t  index) const [inline]

return the size of axis numbered index [zero based].

return the length of HDU data axis i.

long CCfits::HDU::bitpix ( ) const [inline]

return the data type keyword.

Takes values denoting the image data type for images, and takes the fixed value 8 for tables.

void CCfits::HDU::copyAllKeys ( const HDU inHdu)

copy all keys from another header

Parameters:

Parameters:
inHdu(const HDU*) An existing HDU whose keys will be copied.

This will copy all keys that exist in the keyWord map of inHDU, and which belong to one of the keyword classes returned by the keywordCategories() function. This is the same group of keyword classes used by readAllKeys().

void CCfits::HDU::deleteKey ( const String &  doomed)

delete a keyword from the header

removes doomed from the FITS file and from the FITS object

std::pair< unsigned long, unsigned long > CCfits::HDU::getChecksum ( ) const

compute and return the checksum values for the HDU without creating or modifying the CHECKSUM/DATASUM keywords.

Wrapper for the CFITSIO function fits_get_chksum: This returns a std::pair<unsigned long, unsigned long> where the pair's first data member holds the datasum value and second holds the hdusum value.

const String & CCfits::HDU::getComments ( )

read the comments from the HDU and add it to the FITS object.

The comment string found in the header is concatenated and returned to the calling function

const String & CCfits::HDU::getHistory ( )

read the history information from the HDU and add it to the FITS object.

The history string found in the header is concatenated and returned to the calling function

static std::vector< int > CCfits::HDU::keywordCategories ( ) [static]

return the enumerated keyword categories used by readAllKeys() and copyAllKeys()

This returns a vector of integers indicating which categories of keywords apply for the readAllKeys and copyAllKeys functions. The list of categories currently hardcoded is: TYP_CMPRS_KEY (20), TYP_CKSUM_KEY (100), TYP_WCS_KEY (110), TYP_REFSYS_KEY (120), and TYP_USER_KEY (150).

For the list of ALL keyword categories, see the CFITSIO documentation for the fits_get_keyclass function.

void CCfits::HDU::makeThisCurrent ( ) const [virtual]

move the fitsfile pointer to this current HDU.

This function should never need to be called by the user since it is called internally whenever required.

Reimplemented in CCfits::ExtHDU.

void CCfits::HDU::readAllKeys ( )

read all of the keys in the header

This member function reads keys that are not meta data for columns or image information, [which are considered to be part of the column or image objects]. Also, history and comment keys are read and returned by getHistory() and getComment(). The exact list of keyword classes this will read is returned by the function keywordCategories().

Note that readAllKeys can only construct keys of type string, double, complex<float>, integer, and bool because the FITS header records do not encode exact type information.

template<typename T >
void CCfits::HDU::readKey ( const String &  keyName,
T &  val 
)

read a keyword of specified type from the header of a disk FITS file and return its value.

T is one of the types String, double, float, int, std::complex<float>, and bool. If a Keyword object with the name keyName already exists in this HDU due to a previous read call, then this will re-read from the file and create a new Keyword object to replace the existing one.

template<typename T >
void CCfits::HDU::readKeys ( std::vector< String > &  keyNames,
std::vector< T > &  vals 
)

read a set of specified keywords of the same data type from the header of a disk FITS file and return their values

T is one of the types String, double, float, int, std::complex<float>, and bool.

void CCfits::HDU::scale ( double  value) [inline, virtual]

set the BSCALE keyword value for images (see warning for images of int type)

For primary HDUs and image extensions, this will add (or update) the BSCALE keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing.

WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException.

Reimplemented in CCfits::PHDU, and CCfits::ImageExt< T >.

void CCfits::HDU::suppressScaling ( bool  toggle = true)

turn off image scaling regardless of the BSCALE and BZERO keyword values

For toggle = true, this turns off image scaling for future read/writes by resetting the scale and zero to 1.0 and 0.0 respectively. It does NOT modify the BSCALE and BZERO keywords. If toggle = false, the scale and zero values will be restored to the keyword values.

void CCfits::HDU::updateChecksum ( )

update the CHECKSUM keyword value, assuming DATASUM exists and is correct

Wrapper for the CFITSIO function fits_update_chksum: This recomputes and writes the CHECKSUM value with the assumption that the DATASUM value is correct. If the DATASUM keyword doesn't yet exist or is not up-to-date, use the HDU::writeChecksum function instead. This will throw a FitsError exception if called when there is no DATASUM keyword in the header.

std::pair< int, int > CCfits::HDU::verifyChecksum ( ) const

verify the HDU by computing the checksums and comparing them with the CHECKSUM/DATASUM keywords

Wrapper for the CFITSIO function fits_verify_chksum: The data unit is verified correctly if the computed checksum equals the DATASUM keyword value, and the HDU is verified if the entire checksum equals zero (see the CFITSIO manual for further details).

This returns a std::pair<int,int> where the pair's first data member = DATAOK and second = HDUOK. DATAOK and HDUOK values will be = 1 if verified correctly, 0 if the keyword is missing, and -1 if the computed checksum is not correct.

void CCfits::HDU::writeChecksum ( )

compute and write the DATASUM and CHECKSUM keyword values

Wrapper for the CFITSIO function fits_write_chksum: This performs the datasum and checksum calculations for this HDU, as described in the CFITSIO manual. If either the DATASUM or CHECKSUM keywords already exist, their values will be updated.

void CCfits::HDU::writeComment ( const String &  comment = "Generic Comment")

write a comment string.

A default value for the string is given ("Generic Comment String") so users can put a placeholder call to this function in their code.

void CCfits::HDU::writeHistory ( const String &  history = "Generic History String")

write a history string.

A default value for the string is given ("Generic History String") so users can put a placeholder call to this function in their code.

void CCfits::HDU::zero ( double  value) [inline, virtual]

set the BZERO keyword value for images (see warning for images of int type)

For primary HDUs and image extensions, this will add (or update) the BZERO keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing.

WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException.

Reimplemented in CCfits::PHDU, and CCfits::ImageExt< T >.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1HDU.png0000644000225700000360000000243511667502531016405 0ustar cagordonlhea‰PNG  IHDR[ÀÇ0ëPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2¬IDATxíÝÛ’ê †Q›©Êû?ò\pjN !¢_—{OL0þ,IsûZ¬d…Z å([2`‹-¶Øbû¶a+÷"/)>ê†ØQvXçü°m òî3MÛ|<¶Gøy½Äý‰ŸOmdl{mýš,_Øk›te·¤±=À–žp¢mqÛ¡yû~Þok¶z<¶oƈ{ôÝ·uÿн,íogÀ[l±Å[l±ÅöKlW¨/µ¯ lH»‹íiÁÅ–½ŒÂ[l)l±Å–Â[lÇd±b½±ü±e2Øb‹-“Á[l±Å–8Øb‹-q°Åö;âüM×6‹eãLÚšûKÛ®[l±ÅÛ§ÛŠˆ$"FŒ±ç’Qnœ1ñº¸+î¸øØ>ÛHá+’\frø—)ŸHþ.Î(¿Á´íH¤=I®²ÕKѯcÄý‰ùôôDì:jMmÒv(R #Ém¶þ‡/_*ùží·}éÁ¶e¿õ-Ξ¸Á¶ì·£IV°­ôe{˺­Ez亭ö¾{{B#Òš¶õM¹h³é^¶kwî¶Œ4žä2[»ë«ƒÐO“çßõ4oëŽÂ•ôN“¶½‘ ÛÎ$×Ù^U¶ÇÁ[l±Å[l±Åöq¶+Ô²qî®m(_WØžG»‹íiÁÅ–½ŒÂ[l)l±Å–Â[le±bÁ±þ±e2Øb‹-“Á[l±Å–8Øb‹-q°Åö;âüM×6‹eãLÚšûKÛ®[l±ÅÛGÙŠˆ$"FŒ±çBeoË 7*†Ûkå-†l»rfßä>†?ÉÖÆTõ<Ÿm߯~~Ķ3gzâ^Ûb¥‰ˆ1âþÄPö¤Ÿ™^8îžFe‘ÎÚöæô|¨­öÜ\më×Få%ê1 §Ô»ø#„ VlÕÉÛFÎt»|1åJ¶éºME…*ªßª•ÒzRý›ãl#Ó1+Ù=!ž× 6¾‹rîal¶cûö ÛFOÈž°ÏMáRÛb$k meO¸lݦ·OzBcm_c[ßóв-û­»Ëáý¶7çJýVmê¾_ªXýBÜžf }›wºÒó±íÌ©z‚$¦¼Øvªzµ®Ég®²íy̰݋ûù1ÃvÉ`‹-¶Øb‹í¸í µl*© lH»‹íiÁÅ–½ŒÂ[l)l±Å–Â[lÇd±b½±ü±e2Øb‹-“Á[l±Å–8Øb‹-q°Åö;âüM×6‹eãLÚšûKÛ®[l±ÅÛ§ÚŠˆ$"FŒ±ç’•Ï#FleÃ*£ûmû2ù¯_=–ät[]´É›úʶ™Â°IζÍd#â£1q ([¿ÜÜÕý¹°˜Ô±íͤäÝ—Ž%¹ÜÖ¯—ì¥ÿÅ3‰­?W|lÚ¶‘IÛîIr³m:0FŒ[ú`ì'ØÖú­n ÝIî´MzBØ%ôöQô„tFzc9ȶÙv$¹Õ¶¸þ¯Ù¦K¨ÜÖ±Í/×l;“œm[ߓӖ–«žÝo‡2½³½¹ßúç'è`ù/ʤөÝY>îζ½™šý¶/Éù¶WWí=q°Å[l±Å[l±}œí µXœqɨ-Nz¦IEND®B`‚CCfits/html/classCCfits_1_1HDU-members.html0000644000225700000360000003116111667502531020213 0ustar cagordonlhea CCfits: Member List
CCfits::HDU Member List
This is the complete list of members for CCfits::HDU, including all inherited members.
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const =0CCfits::HDU [pure virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteKey(const String &doomed)CCfits::HDU
fitsPointer() const CCfits::HDU
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::HDU [virtual]
naxes()CCfits::HDU [inline, protected]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
readAllKeys()CCfits::HDU
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
scale() const CCfits::HDU [inline, virtual]
scale(double value)CCfits::HDU [inline, virtual]
suppressScaling(bool toggle=true)CCfits::HDU
updateChecksum()CCfits::HDU
verifyChecksum() const CCfits::HDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
zero() const CCfits::HDU [inline, virtual]
zero(double value)CCfits::HDU [inline, virtual]
~HDU()CCfits::HDU [protected, virtual]
CCfits/html/classCCfits_1_1HDU_1_1InvalidExtensionType.html0000644000225700000360000001544211667505546023306 0ustar cagordonlhea CCfits: CCfits::HDU::InvalidExtensionType Class Reference
CCfits::HDU::InvalidExtensionType Class Reference

exception to be thrown if user requests extension type that can not be understood as ImageExt, AsciiTable or BinTable. More...

#include <HDU.h>

Inheritance diagram for CCfits::HDU::InvalidExtensionType:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InvalidExtensionType (const string &diag, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: Extension Type: " before the specific message.

Detailed Description

exception to be thrown if user requests extension type that can not be understood as ImageExt, AsciiTable or BinTable.


Constructor & Destructor Documentation

CCfits::HDU::InvalidExtensionType::InvalidExtensionType ( const string &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: Extension Type: " before the specific message.

Parameters:
diagA specific diagnostic message
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1HDU_1_1InvalidExtensionType.png0000644000225700000360000000117311667502531023111 0ustar cagordonlhea‰PNG  IHDRËP€„qPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2 IDATxíYŽÃ †ãTêý<ÆxƒZ% µÙüá%¯Ûk±½öUXÀ– YˆˆÜ‚h§}g™³"WÈŽO]ÉÂî›E¹;²4–^~2Ï’+¯Ï“ºRÕFc©©ì”‰v6#~'#»‘Eb”&i:2;EC•ýŠÅ×KÐÔz‰Qrd ó',íSi†¥öˆÿÅÒ*'£É9Ö Ï},í>–Jâ¨^ÊÆz¹š%}_¬3¹vœ†óé •oU•]ÍrÍøîðÜ4À°L±¬3¶[ÆûžkÀ2‰ò^f!–÷{˜•XÐÇÀ°€,` XÀ°€,` XÀ°L Zgl´LðÁ°|ÄBD¼–7†ÀZLJÿ«=¥{‘¨dïÙ–(–f5ÀR]’…^Ýf‰ö§,‰êdË9^‡%9CDÛFeržX,” HICë}¾jFø½’1æýÔV£ÑcÑ=ñ×aÑŸZºÉiÍncÔ¸Ìnq,Îd†%gíQ\ò-ѹ’ù.dnjžäãòËtŽÉß&QvÖ²èûô})ûã,I=Ás̲„Ì5ÜJSÕùsûX¼l¨õR"ÕKÑÔÖK¿^ò÷ÅÖX¬\µÇWµq˜W¼YXLó9Äñ z}ìYøæ·æ‰,¡‚ŸÌ›Õ£ãÒ‡ XÀ2Á²Îø$Î+NѧÅKIEND®B`‚CCfits/html/classCCfits_1_1HDU_1_1InvalidExtensionType-members.html0000644000225700000360000000671611667502531024731 0ustar cagordonlhea CCfits: Member List
CCfits::HDU::InvalidExtensionType Member List
This is the complete list of members for CCfits::HDU::InvalidExtensionType, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InvalidExtensionType(const string &diag, bool silent=true)CCfits::HDU::InvalidExtensionType
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1HDU_1_1InvalidImageDataType.html0000644000225700000360000001421011667505546023136 0ustar cagordonlhea CCfits: CCfits::HDU::InvalidImageDataType Class Reference
CCfits::HDU::InvalidImageDataType Class Reference

exception to be thrown if user requests creation of an image of type not supported by cfitsio. More...

#include <HDU.h>

Inheritance diagram for CCfits::HDU::InvalidImageDataType:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 InvalidImageDataType (const string &diag, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: Invalid Data Type for Image " before the specific message.

Detailed Description

exception to be thrown if user requests creation of an image of type not supported by cfitsio.


Constructor & Destructor Documentation

CCfits::HDU::InvalidImageDataType::InvalidImageDataType ( const string &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: Invalid Data Type for Image " before the specific message.

Parameters:
diagA specific diagnostic message
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1HDU_1_1InvalidImageDataType.png0000644000225700000360000000121011667502531022741 0ustar cagordonlhea‰PNG  IHDRÐP_Ê žPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2IDATxíYŽÃ †ãTÊý<`¼%MK2èGiAØ€?¼ðº½kÛk_ª@šDDdD;í{š3Z”¦‹„çz›‡~”Ô à*ÃS¯Ñ|¬Ë~HØSÄJ¢Ñ)¯äŽö¤Fé²ÔÜl öVüT 5ætçeîV ›CNRrÈûËàÖû€ê!'UP)ª¥˜’Ä«9j2P½Ê…4éåP^8CS€Â;¤-Šùd$)¼:U.¿ien ÐoÚå@º§@º ´XÛfµcÚIúŒçXŒh5 ãXŒh9 T9@€ @€ @ÿ ˆk­€¾DDĩT1pVÉÕ±ÌÈ.̓X÷l”ÞpªÔä bäü:× ÐzfÙ­ªp} `måΘ£Òd2A J¼+¯‹÷M<ˆ¶^-îæóQEÖ’5þkÉ'š¦³RR!m$as³r²q Ý|tËCñk•»ž*¾_m#1ªŸ:rüãpèÉýH©1!gôlŽÛUã@A|È3ÔbØ»æ}È…Í«œ¡*Wö˜aÑq…먵s(¾C:ï|>7‹~ýh"©iªÊ©ã*!UNožkYÖsùÔ¬rÏxåÏ*ÇRwþÁ@*jN8óÉ@_ó4€ ‹@‹µ?äô,nÅ”;'IEND®B`‚CCfits/html/classCCfits_1_1HDU_1_1InvalidImageDataType-members.html0000644000225700000360000000671611667502532024572 0ustar cagordonlhea CCfits: Member List
CCfits::HDU::InvalidImageDataType Member List
This is the complete list of members for CCfits::HDU::InvalidImageDataType, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
InvalidImageDataType(const string &diag, bool silent=true)CCfits::HDU::InvalidImageDataType
message() const CCfits::FitsException [inline]
CCfits/html/classCCfits_1_1HDU_1_1NoNullValue.html0000644000225700000360000001407511667505546021366 0ustar cagordonlhea CCfits: CCfits::HDU::NoNullValue Class Reference
CCfits::HDU::NoNullValue Class Reference

exception to be thrown on seek errors for keywords. More...

#include <HDU.h>

Inheritance diagram for CCfits::HDU::NoNullValue:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 NoNullValue (const string &diag, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: No Null Pixel Value specified for Image " before the specific message.

Detailed Description

exception to be thrown on seek errors for keywords.


Constructor & Destructor Documentation

CCfits::HDU::NoNullValue::NoNullValue ( const string &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: No Null Pixel Value specified for Image " before the specific message.

Parameters:
diagA specific diagnostic message, the name of the HDU if not the primary.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1HDU_1_1NoNullValue.png0000644000225700000360000000104611667502532021170 0ustar cagordonlhea‰PNG  IHDR›P9÷ÉPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2µIDATxíÑrÄ E½Ù™üÿ'÷AA͘]ÓÚö:™Õ Góš^ûŽô:vd#ÛlÐ,€Ç‘e²X5"»ÑѶŒcÅ—gë,'¢N˜ŒÙB r:yª®Um4v(ÿ” G6CÞ·‘}À&g“¤ÌNÞ°ÊV±µõæ4ZoþÒ€½„­ŸÓª1MaØ´gžeë•£ÑÄœöŽï}¶~Ÿ†’ºª·òljz»Ëî7ë<Ö^£Éù»èÓrWªì.Û3cîb#Ûob[ó­'ÙžaÛw¤¥ã\ëî¿°ç¾p³ç¾p;³±OÉF6²‘ld#ÙÈF6²‘ldûf6ì;¶MÙÈöClòZ¹Q{1)ý­’êÅüÞÕ©·²iYÅÍÛË]Tÿþ›ÛxJRB™:ç!Cˆƒú^'5Ð0TƒÙZgö°ÉãY.Ù‚T¡çÙügäâÜB¬Î»EøŒí^N‹Ó&V`ÓÀºQÑkKN²õúp [7§s}êÊl¦O¥9m,9šØ¤mANãý¦‡\rê{¡cß®^´0:é™BŸò›E6²‘íï±í;¾”ø!òÄIEND®B`‚CCfits/html/classCCfits_1_1HDU_1_1NoNullValue-members.html0000644000225700000360000000657511667502532023014 0ustar cagordonlhea CCfits: Member List
CCfits::HDU::NoNullValue Member List
This is the complete list of members for CCfits::HDU::NoNullValue, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
NoNullValue(const string &diag, bool silent=true)CCfits::HDU::NoNullValue
CCfits/html/classCCfits_1_1HDU_1_1NoSuchKeyword.html0000644000225700000360000001372011667505546021722 0ustar cagordonlhea CCfits: CCfits::HDU::NoSuchKeyword Class Reference
CCfits::HDU::NoSuchKeyword Class Reference

exception to be thrown on seek errors for keywords. More...

#include <HDU.h>

Inheritance diagram for CCfits::HDU::NoSuchKeyword:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 NoSuchKeyword (const string &diag, bool silent=true)
 Exception ctor, prefixes the string "Fits Error: Keyword not found: " before the specific message.

Detailed Description

exception to be thrown on seek errors for keywords.


Constructor & Destructor Documentation

CCfits::HDU::NoSuchKeyword::NoSuchKeyword ( const string &  diag,
bool  silent = true 
)

Exception ctor, prefixes the string "Fits Error: Keyword not found: " before the specific message.

Parameters:
diagA specific diagnostic message, usually the name of the keyword requested.
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1HDU_1_1NoSuchKeyword.png0000644000225700000360000000113411667502532021526 0ustar cagordonlhea‰PNG  IHDR³Pe´íPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ëIDATxíÛŽÃ Dq*åÿ?yÀ0¾$"U¢-í ´ ßr0Æy-¯õFym« 2“ùç˜EDÌBd“m«2c%UÜ5*; ÝÁ\1aÑÞᙓåÍEà9æÐ²Y§ñÊ® îNš§N²U3©ùÙÌšóøÀaÈpò†Cö4³­g§éõì³nv¶ó(s^C—˜û]ýæ¬ÜAk#K÷ýÌyß%{VÏÍq¢žïbý_kÛhjœôÖë»ì.ægÆõÆLæ_a~{™Ì_ƼÞ(ý¹Ðdä}=è™÷}=è™Ù7ÈLf2“™Ìd&3™ÉLf2“™Ìd&3™¿ŒYÖE–;@2“ùK™E¤®uQ/¨ÛS3iý¦KFø·acç:똻¿.0nÆìíÑ:åXûÂ9{f—¨RD¤i“c[Bx(À¤¥ªìGÛmƪ‰«l´åcæîžf}¦Bºh `;eB߬/2ûÏæIžÁI“h±Bý†|üÍ2_« =K[9³z÷4xì÷™³¾0ÉŒ7:cv{Sw³í#æ¼o¸2žéZ ‘ÙI㆔&cÍê9ög¼.¾¶±?ƒ½9–Þå±Û›a‚¹î®¾˜‡ÈüŸ¸å¾Ýs,Å<‰òaµAf2ÿ"ózãŒë&&ÃË–TIEND®B`‚CCfits/html/classCCfits_1_1HDU_1_1NoSuchKeyword-members.html0000644000225700000360000000661711667502532023351 0ustar cagordonlhea CCfits: Member List
CCfits::HDU::NoSuchKeyword Member List
This is the complete list of members for CCfits::HDU::NoSuchKeyword, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
NoSuchKeyword(const string &diag, bool silent=true)CCfits::HDU::NoSuchKeyword
CCfits/html/classCCfits_1_1ImageExt.html0000644000225700000360000003275111667505546017665 0ustar cagordonlhea CCfits: CCfits::ImageExt< T > Class Template Reference
CCfits::ImageExt< T > Class Template Reference
Inheritance diagram for CCfits::ImageExt< T >:
Inheritance diagram CCfits::ExtHDU CCfits::HDU

List of all members.

Public Member Functions

virtual ~ImageExt ()
 destructor
virtual ImageExt< T > * clone (FITSBase *p) const
 virtual copy constructor
const std::valarray< T > & image () const
 return the image data
virtual void readData (bool readFlag=false, const std::vector< String > &keys=std::vector< String >())
 read Image extension HDU data
virtual void scale (double value)
 set the BSCALE keyword value for images (see warning for images of int type)
virtual double scale () const
 return the BSCALE keyword value
virtual void zero (double value)
 set the BZERO keyword value for images (see warning for images of int type)
virtual double zero () const
 return the BZERO keyword value

Detailed Description

template<typename T>
class CCfits::ImageExt< T >

ImageExt<T> is a subclass of ExtHDU that contains image data of type T.


Member Function Documentation

template<typename T >
void CCfits::ImageExt< T >::readData ( bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>() 
) [virtual]

read Image extension HDU data

Called by FITS ctor, not intended for general use. parameters control how much gets read on initialization.

Parameters:
readFlagread the image data if true
keya vector of strings of keyword names to be read from the HDU

Implements CCfits::ExtHDU.

template<typename T >
void CCfits::ImageExt< T >::scale ( double  value) [virtual]

set the BSCALE keyword value for images (see warning for images of int type)

For primary HDUs and image extensions, this will add (or update) the BSCALE keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing.

WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException.

Reimplemented from CCfits::HDU.

template<typename T >
void CCfits::ImageExt< T >::zero ( double  value) [virtual]

set the BZERO keyword value for images (see warning for images of int type)

For primary HDUs and image extensions, this will add (or update) the BZERO keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing.

WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException.

Reimplemented from CCfits::HDU.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1ImageExt.png0000644000225700000360000000117111667502532017465 0ustar cagordonlhea‰PNG  IHDR…ˆþšØÐPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2IDATxíÝÑ΃ `&¼ÿ#ÿh)þ›Sg³²lˆˆ¥°Û´E(iËÏ*¨ø\¦dä\ÛF¯öÞm4ŸWôÁZEÞUÌý¯PôaZ@Οñ«0œ;mžþóœÂd„éËŠ+âoߥXï‘)nß#þ¼hжGæìtç Op*¨ â:E„’ΗrÁ?¢(%#„¢”Œ î*¨ ‚ *¨ ‚ *¨ ‚Šóe‹PÒ–Ÿ/TPq\¦dä\ÛL/é—ó¸¹#u÷Ø»Šþl«È8³b¾Šy€zzmÒ9C~ƘÚÔpíq.P´iùz›{ù½ Ÿõ«5|A±X¥øV,–isËŠ¬÷ˆK›—ï^ôu7Ñ—,h ½GÜÜ *¨8­ˆPÒùR.ãG¥D`„P”CÁ=BTPATPATPq¾ BIM*¨x¡Pë­RSwR¾DKÒ/»·±¯¨/V¹qXñ÷åó]áôR‚üŒgkc³ê É•o1ñƒŠ—Åj±z“º\¹²³èÓ<¬°±° ¦^•=2&¦>Äo(ÜŠŒv„q5Þkðéz@a[-d^ ¿"b±Þ#sü÷>/d”ƒyáÏ‹è±ÄŽ Yjöˆú“tëñjœ>ýž>ÁÕ)ñäÿÈêPæ*¿£ˆPþÀc7:Œ%fIEND®B`‚CCfits/html/classCCfits_1_1ImageExt-members.html0000644000225700000360000005726411667502532021313 0ustar cagordonlhea CCfits: Member List
CCfits::ImageExt< T > Member List
This is the complete list of members for CCfits::ImageExt< T >, including all inherited members.
addColumn(ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=-1, size_t columnNumber=0)CCfits::ExtHDU [virtual]
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const CCfits::ImageExt< T > [virtual]
column(const String &colName, bool caseSensitive=true) const CCfits::ExtHDU [virtual]
column(int colIndex) const CCfits::ExtHDU [virtual]
column() const CCfits::ExtHDU [virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteColumn(const String &columnName)CCfits::ExtHDU [virtual]
deleteKey(const String &doomed)CCfits::HDU
CCfits::ExtHDU::ExtHDU(const ExtHDU &right)CCfits::ExtHDU
CCfits::ExtHDU::ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int version)CCfits::ExtHDU [protected]
CCfits::ExtHDU::ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector< long > &axes, int version)CCfits::ExtHDU [protected]
CCfits::ExtHDU::ExtHDU(FITSBase *p, HduType xtype, int number)CCfits::ExtHDU [protected]
fitsPointer() const CCfits::HDU
gcount() const CCfits::ExtHDU [inline, protected]
gcount(long value)CCfits::ExtHDU [inline, protected]
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
getRowsize() const CCfits::ExtHDU [virtual]
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
image() const CCfits::ImageExt< T >
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
isCompressed() const CCfits::ExtHDU
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::ExtHDU [virtual]
name() const CCfits::ExtHDU [inline]
naxes()CCfits::HDU [inline, protected]
numCols() const CCfits::ExtHDU [virtual]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
pcount() const CCfits::ExtHDU [inline, protected]
pcount(long value)CCfits::ExtHDU [inline, protected]
read(std::valarray< S > &image)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)CCfits::ExtHDU
readAllKeys()CCfits::HDU
readData(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::ImageExt< T > [virtual]
readHduName(const fitsfile *fptr, int hduIndex, String &hduName, int &hduVersion)CCfits::ExtHDU [static]
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
rows() const CCfits::ExtHDU [virtual]
scale(double value)CCfits::ImageExt< T > [virtual]
scale() const CCfits::ImageExt< T > [virtual]
suppressScaling(bool toggle=true)CCfits::HDU
updateChecksum()CCfits::HDU
verifyChecksum() const CCfits::HDU
version() const CCfits::ExtHDU [inline]
version(int value)CCfits::ExtHDU [inline]
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::valarray< S > &data)CCfits::ExtHDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
xtension() const CCfits::ExtHDU [inline, protected]
xtension(HduType value)CCfits::ExtHDU [inline, protected]
zero(double value)CCfits::ImageExt< T > [virtual]
zero() const CCfits::ImageExt< T > [virtual]
~ExtHDU()CCfits::ExtHDU [virtual]
~HDU()CCfits::HDU [protected, virtual]
~ImageExt()CCfits::ImageExt< T > [virtual]
CCfits/html/classCCfits_1_1Keyword.html0000644000225700000360000005465711667502532017607 0ustar cagordonlhea CCfits: CCfits::Keyword Class Reference
CCfits::Keyword Class Reference

Abstract base class defining the interface for Keyword objects. More...

#include <Keyword.h>

Inherited by CCfits::KeyData< T >.

List of all members.

Public Member Functions

virtual ~Keyword ()
 virtual destructor
virtual Keywordclone () const =0
 virtual copy constructor
const String & comment () const
 return the comment field of the keyword
fitsfile * fitsPointer () const
 return a pointer to the FITS file containing the parent HDU.
ValueType keytype () const
 return the type of a keyword
const String & name () const
 return the name of a keyword
bool operator!= (const Keyword &right) const
 inequality operator
Keywordoperator= (const Keyword &right)
 assignment operator
bool operator== (const Keyword &right) const
 equality operator
template<typename T >
void setValue (const T &newValue)
 modify the value of an existing Keyword and write it to the file
template<typename T >
T & value (T &val) const
 get the keyword value
virtual void write ()
 left in for historical reasons, this seldom needs to be called by users

Protected Member Functions

 Keyword (const Keyword &right)
 copy constructor
 Keyword (const String &keyname, ValueType keytype, HDU *p, const String &comment="")
 Keyword constructor.
void keytype (ValueType value)
 set keyword type.
const HDUparent () const
 return a pointer to parent HDU.

Detailed Description

Abstract base class defining the interface for Keyword objects.

Keyword object creation is normally performed inside FITS constructors or FITS::read, HDU::readKey, and HDU::addKey functions. Output is performed in HDU::addKey functions and Keyword::setValue.

Keywords consists of a name, a value and a comment field. Concrete templated subclasses, KeyData<T>, have a data member that holds the value of keyword.

Typically, the mandatory keywords for a given HDU type are not stored as object of type Keyword, but as intrinsic data types. The Keyword hierarchy is used to store user-supplied information.


Constructor & Destructor Documentation

CCfits::Keyword::Keyword ( const String &  keyname,
ValueType  keytype,
HDU p,
const String &  comment = "" 
) [protected]

Keyword constructor.

This is the common behavior of Keywords of any type. Constructor is protected as the class is abstract.


Member Function Documentation

template<typename T >
void CCfits::Keyword::setValue ( const T &  newValue)

modify the value of an existing Keyword and write it to the file

Parameters:
newValue(T) New value for the Keyword

Allowed T types: This must copy newValue to a data member of type U in the Keyword subclass KeyData<U> (see description for Keyword::value (T& val) for more details). To avoid compilation errors, it is generally best to provide a newValue of type T = type U, though the following type conversions will also be handled:

T (from newValue)U (to Keyword obj)
floatdouble, float
doubledouble, float (will lose precision)
intdouble, float, int, integer string
template<typename T >
T & CCfits::Keyword::value ( T &  val) const

get the keyword value

Parameters:
val(T) Will be filled with the keyword value, and is also the function return value.

Allowed T types: CCfits stores keyword values of type U in a templated subclass of Keyword, KeyData<U>. Normally U is set when reading the Keyword in from the file, and is limited to types int, double, string, bool, and complex<float>. (The exception is when the user has created and added a new Keyword using an HDU::addKey function, in which case they might have specified other types for U.) To avoid compilation errors, the user should generally try to provide a val of type T = type U, though there is some flexibility here as the following conversions are handled:

T (to val)U (from Keyword obj)
floatdouble (will lose precision), float, int, integer string
doubledouble, float, int, integer string
intint, integer string

More conversions may be added in the future as the need arises.

void CCfits::Keyword::write ( ) [virtual]

left in for historical reasons, this seldom needs to be called by users

This writes the Keyword to the file, and is called internally during HDU::addKey operations or the Keyword::setValue function. It shouldn't normally need to be called explicitly.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Keyword-members.html0000644000225700000360000001461411667502532021224 0ustar cagordonlhea CCfits: Member List
CCfits::Keyword Member List
This is the complete list of members for CCfits::Keyword, including all inherited members.
clone() const =0CCfits::Keyword [pure virtual]
comment() const CCfits::Keyword [inline]
fitsPointer() const CCfits::Keyword
keytype() const CCfits::Keyword [inline]
keytype(ValueType value)CCfits::Keyword [inline, protected]
Keyword(const Keyword &right)CCfits::Keyword [protected]
Keyword(const String &keyname, ValueType keytype, HDU *p, const String &comment="")CCfits::Keyword [protected]
name() const CCfits::Keyword [inline]
operator!=(const Keyword &right) const CCfits::Keyword
operator=(const Keyword &right)CCfits::Keyword
operator==(const Keyword &right) const CCfits::Keyword
parent() const CCfits::Keyword [inline, protected]
setValue(const T &newValue)CCfits::Keyword
value(T &val) const CCfits::Keyword
write()CCfits::Keyword [virtual]
~Keyword()CCfits::Keyword [virtual]
CCfits/html/classCCfits_1_1PHDU.html0000644000225700000360000012517311667505546016723 0ustar cagordonlhea CCfits: CCfits::PHDU Class Reference
CCfits::PHDU Class Reference

class representing the primary HDU for a FITS file. More...

#include <PHDU.h>

Inheritance diagram for CCfits::PHDU:
Inheritance diagram CCfits::HDU

List of all members.

Public Member Functions

virtual ~PHDU ()
 destructor
virtual PHDUclone (FITSBase *p) const =0
 virtual copy constructor, to be implemented in subclasses.
bool extend () const
 Returns the value of the Primary's EXTEND keyword.
template<typename S >
void read (std::valarray< S > &image, long first, long nElements)
 read an image section starting at a specified pixel
template<typename S >
void read (std::valarray< S > &image, long first, long nElements, S *nullValue)
 read part of an image array, processing null values.
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &first, long nElements)
 read an image section starting at a location specified by an n-tuple
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)
 read part of an image array, processing null values.
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)
 read an image subset
template<typename S >
void read (std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)
 read an image subset into valarray image, processing null values
virtual void readData (bool readFlag=false, const std::vector< String > &keys=std::vector< String >())=0
 read primary HDU data
virtual void scale (double value)
 set the BSCALE keyword value for images (see warning for images of int type)
virtual double scale () const
 return the BSCALE keyword value
bool simple () const
 Returns the value of the Primary's SIMPLE keyword.
template<typename S >
void write (const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)
 Write a set of pixels to an image extension with the first pixel specified by an n-tuple, processing undefined data.
template<typename S >
void write (long first, long nElements, const std::valarray< S > &data, S *nullValue)
 write array to image starting with a specified pixel and allowing undefined data to be processed
template<typename S >
void write (const std::vector< long > &first, long nElements, const std::valarray< S > &data)
 write array starting from specified n-tuple, without undefined data processing
template<typename S >
void write (long first, long nElements, const std::valarray< S > &data)
 write array starting from specified pixel number, without undefined data processing
template<typename S >
void write (const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, const std::valarray< S > &data)
 write a subset (generalize slice) of data to the image
virtual void zero (double value)
 set the BZERO keyword value for images (see warning for images of int type)
virtual double zero () const
 return the BZERO keyword value

Protected Member Functions

 PHDU (const PHDU &right)
 copy constructor
 PHDU (FITSBase *p, int bpix, int naxis, const std::vector< long > &axes)
 Writing Primary HDU constructor, called by PrimaryHDU<T> class.
 PHDU (FITSBase *p=0)
 Reading Primary HDU constructor.
virtual void initRead ()

Detailed Description

class representing the primary HDU for a FITS file.

A PHDU object is automatically instantiated and added to a FITS object when a FITS file is accessed in any way. If a new file is created without specifying the data type for the header, CCfits assumes that the file is to be used for table extensions and creates a dummy header. PHDU instances are only created by FITS ctors. In the first release of CCfits, the Primary cannot be changed once declared.

PHDU and ExtHDU provide the same interface to writing images: multiple overloads of the templated PHDU::read and PHDU::write operations provide for (a) writing image data specified in a number of ways [C-array, std::vector, std::valarray] and with input location specified by initial pixel, by n-tuple, and by rectangular subset [generalized slice]; (b) reading image data specified similarly to the write options into a std::valarray.

Todo:
Implement functions that allow replacement of the primary image

Constructor & Destructor Documentation

CCfits::PHDU::~PHDU ( ) [virtual]

destructor

Destructor

CCfits::PHDU::PHDU ( const PHDU right) [protected]

copy constructor

required for cloning primary HDUs when copying FITS files.

CCfits::PHDU::PHDU ( FITSBase *  p,
int  bpix,
int  naxis,
const std::vector< long > &  axes 
) [protected]

Writing Primary HDU constructor, called by PrimaryHDU<T> class.

Constructor used for creating new PHDU (i.e. for writing data to FITS). also doubles as default constructor since all arguments have default values, which are passed to the HDU constructor

CCfits::PHDU::PHDU ( FITSBase *  p = 0) [protected]

Reading Primary HDU constructor.

Constructor used when reading the primary HDU from an existing file. Does nothing except initialize, with the real work done by the subclass PrimaryHDU<T>.


Member Function Documentation

void CCfits::PHDU::initRead ( ) [protected, virtual]

Read image header and update fits pointer accordingly.

Private: called by ctor.

Implements CCfits::HDU.

template<typename S >
void CCfits::PHDU::read ( std::valarray< S > &  image,
long  first,
long  nElements,
S *  nullValue 
)

read part of an image array, processing null values.

Implicit data conversion is supported (i.e. user does not need to know the type of the data stored. A WrongExtensionType extension is thrown if *this is not an image.

Parameters:
imageThe receiving container, a std::valarray reference
firstThe first pixel from the array to read [a long value]
nElementsThe number of values to read
nullValueA pointer containing the value in the table to be considered as undefined. See cfitsio for details
template<typename S >
void CCfits::PHDU::read ( std::valarray< S > &  image,
const std::vector< long > &  first,
long  nElements,
S *  nullValue 
)

read part of an image array, processing null values.

As above except for

Parameters:
firsta vector<long> representing an n-tuple giving the coordinates in the image of the first pixel.
template<typename S >
void CCfits::PHDU::read ( std::valarray< S > &  image,
const std::vector< long > &  firstVertex,
const std::vector< long > &  lastVertex,
const std::vector< long > &  stride,
S *  nullValue 
)

read an image subset into valarray image, processing null values

The image subset is defined by two vertices and a stride indicating the 'denseness' of the values to be picked in each dimension (a stride = (1,1,1,...) means picking every pixel in every dimension, whereas stride = (2,2,2,...) means picking every other value in each dimension.

void CCfits::PHDU::readData ( bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>() 
) [pure virtual]

read primary HDU data

Called by FITS ctor, not intended for general use. parameters control how much gets read on initialization. An abstract function, implemented in the subclasses.

Parameters:
readFlagread the image data if true
keya vector of strings of keyword names to be read from the primary HDU
void CCfits::PHDU::scale ( double  value) [virtual]

set the BSCALE keyword value for images (see warning for images of int type)

For primary HDUs and image extensions, this will add (or update) the BSCALE keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing.

WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException.

Reimplemented from CCfits::HDU.

template<typename S >
void CCfits::PHDU::write ( const std::vector< long > &  first,
long  nElements,
const std::valarray< S > &  data,
S *  nullValue 
)

Write a set of pixels to an image extension with the first pixel specified by an n-tuple, processing undefined data.

All the overloaded versions of PHDU::write perform operations on *this if it is an image and throw a WrongExtensionType exception if not. Where appropriate, alternate versions allow undefined data to be processed

Parameters:
firstan n-tuple of dimension equal to the image dimension specifying the first pixel in the range to be written
nElementsnumber of pixels to be written
dataarray of data to be written
nullValuepointer to null value (data with this value written as undefined; needs the BLANK keyword to have been specified).
template<typename S >
void CCfits::PHDU::write ( long  first,
long  nElements,
const std::valarray< S > &  data,
S *  nullValue 
)

write array to image starting with a specified pixel and allowing undefined data to be processed

parameters after the first are as for version with n-tuple specifying first element. these two version are equivalent, except that it is possible for the first pixel number to exceed the range of 32-bit integers, which is how long datatype is commonly implemented.

template<typename S >
void CCfits::PHDU::write ( const std::vector< long > &  firstVertex,
const std::vector< long > &  lastVertex,
const std::vector< long > &  stride,
const std::valarray< S > &  data 
)

write a subset (generalize slice) of data to the image

A generalized slice/subset is a subset of the image (e.g. one plane of a data cube of size <= the dimension of the cube). It is specified by two opposite vertices. The equivalent cfitsio call does not support undefined data processing so there is no version that allows a null value to be specified.

Parameters:
firstVertexThe coordinates specifying lower and upper vertices of the n-dimensional slice
lastVertex
stridePixels to skip in each to dimension, e.g. stride = (1,1,1,...) means picking every pixel in every dimension, whearas stride = (2,2,2,...) means picking every other value in each dimension.
dataThe data to be written
void CCfits::PHDU::zero ( double  value) [virtual]

set the BZERO keyword value for images (see warning for images of int type)

For primary HDUs and image extensions, this will add (or update) the BZERO keyword in the header. The new setting will affect future image array read/writes as described in section 4.7 Data Scaling of the CFITSIO manual. For table extensions this function does nothing.

WARNING: If the image contains integer-type data (as indicated by the bitpix() return value), the new scale and zero value combination must not be such that the scaled data would require a floating-point type (this uses the CFITSIO function fits_get_img_equivtype to make the determination). If this situation occurs, the function will throw a FitsException.

Reimplemented from CCfits::HDU.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1PHDU.png0000644000225700000360000000056611667502532016531 0ustar cagordonlhea‰PNG  IHDRVP´ÑrØPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2IDATxíÝу P.&üÿ'ïJ-ÅE§Õ˜]bfSëBç^Ó2Ò’ÙÛX0‘sÍi•|¢—izÂö«´ÊMv¬Ÿ²=/€œÑNz—e¿‹•™øãBÖì@{³lÐ"øË»Ùy' Kz¼|ß +0n™ës¾Ⱦ›ùC?0Ê‘â§ÙRBܶ”7ˆ}Y'%K–,Y²dÿEÈHˆx.²·°j,AÝÏákë>Kš¨™V­lÏJÐ+†y¬¯J°¾Ï°:iVJh'µç¬ñ¿²2\Èúµm¿¦¬[³e¿³³¥ßÇÎ;Á.é6»Ù ¾o…•N°¾ï[øN ûZ6d|7§íSXæ"IEND®B`‚CCfits/html/classCCfits_1_1PHDU-members.html0000644000225700000360000004415311667502533020342 0ustar cagordonlhea CCfits: Member List
CCfits::PHDU Member List
This is the complete list of members for CCfits::PHDU, including all inherited members.
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const =0CCfits::PHDU [pure virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteKey(const String &doomed)CCfits::HDU
extend() const CCfits::PHDU [inline]
fitsPointer() const CCfits::HDU
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
initRead()CCfits::PHDU [protected, virtual]
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::HDU [virtual]
naxes()CCfits::HDU [inline, protected]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
PHDU(const PHDU &right)CCfits::PHDU [protected]
PHDU(FITSBase *p, int bpix, int naxis, const std::vector< long > &axes)CCfits::PHDU [protected]
PHDU(FITSBase *p=0)CCfits::PHDU [protected]
read(std::valarray< S > &image, long first, long nElements)CCfits::PHDU
read(std::valarray< S > &image, long first, long nElements, S *nullValue)CCfits::PHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements)CCfits::PHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)CCfits::PHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)CCfits::PHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)CCfits::PHDU
readAllKeys()CCfits::HDU
readData(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())=0CCfits::PHDU [pure virtual]
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
scale(double value)CCfits::PHDU [virtual]
scale() const CCfits::PHDU [virtual]
simple() const CCfits::PHDU [inline]
suppressScaling(bool toggle=true)CCfits::HDU
updateChecksum()CCfits::HDU
verifyChecksum() const CCfits::HDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::PHDU
write(long first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::PHDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data)CCfits::PHDU
write(long first, long nElements, const std::valarray< S > &data)CCfits::PHDU
write(const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, const std::valarray< S > &data)CCfits::PHDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
zero(double value)CCfits::PHDU [virtual]
zero() const CCfits::PHDU [virtual]
~HDU()CCfits::HDU [protected, virtual]
~PHDU()CCfits::PHDU [virtual]
CCfits/html/classCCfits_1_1Table.html0000644000225700000360000010525211667505546017206 0ustar cagordonlhea CCfits: CCfits::Table Class Reference
CCfits::Table Class Reference

#include <Table.h>

Inheritance diagram for CCfits::Table:
Inheritance diagram CCfits::ExtHDU CCfits::HDU CCfits::AsciiTable CCfits::BinTable

List of all members.

Classes

class  NoSuchColumn
 Exception to be thrown on a failure to retrieve a column specified either by name or index number. More...

Public Member Functions

 Table (const Table &right)
 copy constructor
virtual ~Table ()
 destructor
virtual Columncolumn (const String &colName, bool caseSensitive=true) const
 return a reference to a Table column specified by name.
virtual Columncolumn (int colIndex) const
 return a reference to the column identified by colIndex
virtual const std::map< string,
Column * > & 
column () const
 return a reference to the array containing the columns.
virtual std::map< string,
Column * > & 
column ()
 return a reference to the array containing the columns.
virtual void deleteColumn (const String &columnName)
 delete a column in a Table extension by name.
void deleteRows (long first, long number=1)
 delete a range of rows in a table.
void deleteRows (const std::vector< long > &rowList)
 delete a set of rows in the table specified by an input array.
virtual long getRowsize () const
 return the optimal number of rows to read or write at a time
void insertRows (long first, long number=1)
 insert empty rows into the table
virtual int numCols () const
 return the number of Columns in the Table (the TFIELDS keyword).
virtual long rows () const
 return the number of rows in the table (NAXIS2).
void rows (long numRows)
 set the number of rows in the Table.
void updateRows ()
 update the number of rows in the table

Protected Member Functions

 Table (FITSBase *p, HduType xtype, const String &hduName, int rows, const std::vector< String > &columnName, const std::vector< String > &columnFmt, const std::vector< String > &columnUnit=std::vector< String >(), int version=1)
 Constructor to be used for creating new HDUs.
 Table (FITSBase *p, HduType xtype, const String &hduName=String(""), int version=1)
 Constructor to be called by operations that read Table specified by hduName and version.
 Table (FITSBase *p, HduType xtype, int number)
 Table constructor for getting Tables by number.
void init (bool readFlag=false, const std::vector< String > &keys=std::vector< String >())
void numCols (int value)
 set the number of Columns in the Table
virtual void setColumn (const String &colname, Column *value)
 set the column with name colname to the input value.

Detailed Description

Table is the abstract common interface to Binary and Ascii Table HDUs.

Table is a subclass of ExtHDU that contains an associative array of Column objects. It implements methods for reading and writing columns


Constructor & Destructor Documentation

CCfits::Table::Table ( FITSBase *  p,
HduType  xtype,
const String &  hduName,
int  rows,
const std::vector< String > &  columnName,
const std::vector< String > &  columnFmt,
const std::vector< String > &  columnUnit = std::vector<String>(),
int  version = 1 
) [protected]

Constructor to be used for creating new HDUs.

Parameters:
pThe FITS file in which to place the new HDU
xtypeAn HduType enumerator defined in CCfits.h for type of table (AsciiTbl or BinaryTbl)
hduNameThe name of this HDU extension
rowsThe number of rows in the new HDU (the value of the NAXIS2 keyword).
columnNamea vector of names for the columns.
columnFmtthe format strings for the columns
columnUnitthe units for the columns.
versiona version number
CCfits::Table::Table ( FITSBase *  p,
HduType  xtype,
int  number 
) [protected]

Table constructor for getting Tables by number.

Necessary since EXTNAME is a reserved not required keyword, and users may thus read FITS files without an extension name. Since an HDU is completely specified by extension number, this is part of the public interface.


Member Function Documentation

Column & CCfits::Table::column ( const String &  colName,
bool  caseSensitive = true 
) const [virtual]

return a reference to a Table column specified by name.

If the caseSensitive parameter is set to false, the search will be case-insensitive. The overridden base class implementation ExtHDU::column throws an exception, which is thus the action to be taken if self is an image extension

Exceptions:
WrongExtensionTypesee above

Reimplemented from CCfits::ExtHDU.

Column & CCfits::Table::column ( int  colIndex) const [virtual]

return a reference to the column identified by colIndex

Throws NoSuchColumn if the index is out of range -index must satisfy (1 <= index <= numCols() ).

N.B. the column number is assigned as 1-based, as in FORTRAN rather than 0-based as in C.

Exceptions:
Table::NoSuchColumnpasses colIndex to the diagnostic message printed when the exception is thrown

Reimplemented from CCfits::ExtHDU.

const std::map< string, Column * > & CCfits::Table::column ( ) const [inline, virtual]

return a reference to the array containing the columns.

This public version might be used to query the size of the column container in a routine that manipulates column table data.

Reimplemented from CCfits::ExtHDU.

std::map< string, Column * > & CCfits::Table::column ( ) [inline, virtual]

return a reference to the array containing the columns.

To be used in the implementation of subclasses.

void CCfits::Table::deleteColumn ( const String &  columnName) [virtual]

delete a column in a Table extension by name.

Parameters:
columnNameThe name of the column to be deleted.
Exceptions:
WrongExtensionTypeif extension is an image.

Reimplemented from CCfits::ExtHDU.

void CCfits::Table::deleteRows ( long  first,
long  number = 1 
)

delete a range of rows in a table.

In both this and the overloaded version which allows a selection of rows to be deleted, the cfitsio library is called first to perform the operation on the disk file, and then the FITS object is updated.

Parameters:
firstthe start row of the range
numberthe number of rows to delete; defaults to 1.
Exceptions:
FitsErrorthrown if the cfitsio call fails to return without error.
void CCfits::Table::deleteRows ( const std::vector< long > &  rowlist)

delete a set of rows in the table specified by an input array.

Parameters:
rowlistThe vector of row numbers to be deleted.
Exceptions:
FitsErrorthrown if the underlying cfitsio call fails to return without error.
long CCfits::Table::getRowsize ( ) const [virtual]

return the optimal number of rows to read or write at a time

A wrapper for the CFITSIO function fits_get_rowsize, useful for obtaining maximum I/O efficiency. This will throw if it is not called for a Table extension.

Reimplemented from CCfits::ExtHDU.

void CCfits::Table::init ( bool  readFlag = false,
const std::vector< String > &  keys = std::vector<String>() 
) [protected]

"Late Constructor." wrap-up of calls needed to construct a table. Reads header information and sets up the array of column objects in the table.

Protected function, provided to allow the implementation of extensions of the library.

void CCfits::Table::insertRows ( long  first,
long  number = 1 
)

insert empty rows into the table

Parameters:
firstthe start row of the range
numberthe number of rows to insert.
Exceptions:
FitsErrorthrown if the underlying cfitsio call fails to return without error.
void CCfits::Table::updateRows ( )

update the number of rows in the table

Called to force the Table to reset its internal "rows" attribute. public, but is called when needed internally.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Table.png0000644000225700000360000000165311667502533017017 0ustar cagordonlhea‰PNG  IHDRèÀ9ˆßPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2:IDATxíÝÝ’£ †á|¤Šû¿ä=„qÕL0ÈÛ•ID›‡?O_ŸÄ»o|Ô×Ï ®g èY¨$™‚ääÜR—ZÅo­ÍRõе¿±úÞ„–í®=IÎ)ü$‡…ñ Ð8[õçÑP³“Ãd?:ÍÒ­/ Ý>u‹­ù„S·~Fh CCfits: Member List
CCfits::Table Member List
This is the complete list of members for CCfits::Table, including all inherited members.
addColumn(ValueType type, const String &columnName, long repeatWidth, const String &colUnit=String(""), long decimals=-1, size_t columnNumber=0)CCfits::ExtHDU [virtual]
addKey(const String &name, T val, const String &comment)CCfits::HDU
addKey(const Keyword *inKeyword)CCfits::HDU
axes() const CCfits::HDU [inline]
axis(size_t index) const CCfits::HDU [inline]
bitpix() const CCfits::HDU [inline]
clone(FITSBase *p) const =0CCfits::ExtHDU [pure virtual]
column(const String &colName, bool caseSensitive=true) const CCfits::Table [virtual]
column(int colIndex) const CCfits::Table [virtual]
column() const CCfits::Table [inline, virtual]
column()CCfits::Table [inline, virtual]
comment() const CCfits::HDU [inline]
copyAllKeys(const HDU *inHdu)CCfits::HDU
deleteColumn(const String &columnName)CCfits::Table [virtual]
deleteKey(const String &doomed)CCfits::HDU
deleteRows(long first, long number=1)CCfits::Table
deleteRows(const std::vector< long > &rowList)CCfits::Table
ExtHDU(const ExtHDU &right)CCfits::ExtHDU
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, const String &hduName, int bitpix, int naxis, const std::vector< long > &axes, int version)CCfits::ExtHDU [protected]
ExtHDU(FITSBase *p, HduType xtype, int number)CCfits::ExtHDU [protected]
fitsPointer() const CCfits::HDU
gcount() const CCfits::ExtHDU [inline, protected]
gcount(long value)CCfits::ExtHDU [inline, protected]
getChecksum() const CCfits::HDU
getComments()CCfits::HDU
getHistory()CCfits::HDU
getRowsize() const CCfits::Table [virtual]
HDU(const HDU &right)CCfits::HDU
HDU(FITSBase *p=0)CCfits::HDU [protected]
HDU(FITSBase *p, int bitpix, int naxis, const std::vector< long > &axes)CCfits::HDU [protected]
history() const CCfits::HDU [inline]
index(int value)CCfits::HDU [inline]
index() const CCfits::HDU [inline]
init(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())CCfits::Table [protected]
insertRows(long first, long number=1)CCfits::Table
isCompressed() const CCfits::ExtHDU
keyWord()CCfits::HDU [inline]
keyWord(const String &keyName)CCfits::HDU [inline]
keyWord() const CCfits::HDU [inline]
keyWord(const string &keyname) const CCfits::HDU [inline]
keywordCategories()CCfits::HDU [static]
makeThisCurrent() const CCfits::ExtHDU [virtual]
name() const CCfits::ExtHDU [inline]
naxes()CCfits::HDU [inline, protected]
numCols() const CCfits::Table [inline, virtual]
numCols(int value)CCfits::Table [inline, protected]
operator!=(const HDU &right) const CCfits::HDU
operator==(const HDU &right) const CCfits::HDU
parent() const CCfits::HDU
pcount() const CCfits::ExtHDU [inline, protected]
pcount(long value)CCfits::ExtHDU [inline, protected]
read(std::valarray< S > &image)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements, S *nullValue)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride)CCfits::ExtHDU
read(std::valarray< S > &image, long first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &first, long nElements)CCfits::ExtHDU
read(std::valarray< S > &image, const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::vector< long > &stride, S *nullValue)CCfits::ExtHDU
readAllKeys()CCfits::HDU
readData(bool readFlag=false, const std::vector< String > &keys=std::vector< String >())=0CCfits::ExtHDU [pure virtual]
readHduName(const fitsfile *fptr, int hduIndex, String &hduName, int &hduVersion)CCfits::ExtHDU [static]
readKey(const String &keyName, T &val)CCfits::HDU
readKeys(std::vector< String > &keyNames, std::vector< T > &vals)CCfits::HDU
rows() const CCfits::Table [inline, virtual]
rows(long numRows)CCfits::Table [inline]
scale() const CCfits::HDU [inline, virtual]
scale(double value)CCfits::HDU [inline, virtual]
setColumn(const String &colname, Column *value)CCfits::Table [protected, virtual]
suppressScaling(bool toggle=true)CCfits::HDU
Table(const Table &right)CCfits::Table
Table(FITSBase *p, HduType xtype, const String &hduName, int rows, const std::vector< String > &columnName, const std::vector< String > &columnFmt, const std::vector< String > &columnUnit=std::vector< String >(), int version=1)CCfits::Table [protected]
Table(FITSBase *p, HduType xtype, const String &hduName=String(""), int version=1)CCfits::Table [protected]
Table(FITSBase *p, HduType xtype, int number)CCfits::Table [protected]
updateChecksum()CCfits::HDU
updateRows()CCfits::Table
verifyChecksum() const CCfits::HDU
version() const CCfits::ExtHDU [inline]
version(int value)CCfits::ExtHDU [inline]
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data, S *nullValue)CCfits::ExtHDU
write(const std::vector< long > &first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(long first, long nElements, const std::valarray< S > &data)CCfits::ExtHDU
write(const std::vector< long > &firstVertex, const std::vector< long > &lastVertex, const std::valarray< S > &data)CCfits::ExtHDU
writeChecksum()CCfits::HDU
writeComment(const String &comment="Generic Comment")CCfits::HDU
writeDate()CCfits::HDU
writeHistory(const String &history="Generic History String")CCfits::HDU
xtension() const CCfits::ExtHDU [inline, protected]
xtension(HduType value)CCfits::ExtHDU [inline, protected]
zero() const CCfits::HDU [inline, virtual]
zero(double value)CCfits::HDU [inline, virtual]
~ExtHDU()CCfits::ExtHDU [virtual]
~HDU()CCfits::HDU [protected, virtual]
~Table()CCfits::Table [virtual]
CCfits/html/classCCfits_1_1Table_1_1NoSuchColumn.html0000644000225700000360000002220311667505546022136 0ustar cagordonlhea CCfits: CCfits::Table::NoSuchColumn Class Reference
CCfits::Table::NoSuchColumn Class Reference

Exception to be thrown on a failure to retrieve a column specified either by name or index number. More...

#include <Table.h>

Inheritance diagram for CCfits::Table::NoSuchColumn:
Inheritance diagram CCfits::FitsException

List of all members.

Public Member Functions

 NoSuchColumn (const String &name, bool silent=true)
 Exception ctor for exception thrown if the requested column (specified by name) is not present.
 NoSuchColumn (int index, bool silent=true)
 Exception ctor for exception thrown if the requested column (specified by name) is not present.

Detailed Description

Exception to be thrown on a failure to retrieve a column specified either by name or index number.

When a Table object is created, the header is read and a column object created for each column defined. Thus id this exception is thrown the column requested does not exist in the HDU (note that the column can easily exist and not contain any data since the user controls whether the column will be read when the FITS object is instantiated).

It is expected that the index number calls will be primarily internal. The underlying implementation makes lookup by name more efficient.

The exception has two variants, which take either an integer or a string as parameter. These are used according to the accessor that threw them, either by name or index.


Constructor & Destructor Documentation

CCfits::Table::NoSuchColumn::NoSuchColumn ( const String &  name,
bool  silent = true 
)

Exception ctor for exception thrown if the requested column (specified by name) is not present.

Message: Fits Error: cannot find Column named: name is printed.

Parameters:
namethe requested column name
silentif true, print message whether FITS::verboseMode is set or not.
CCfits::Table::NoSuchColumn::NoSuchColumn ( int  index,
bool  silent = true 
)

Exception ctor for exception thrown if the requested column (specified by name) is not present.

Message: Fits Error: column not present - Column number index is printed.

Parameters:
indexthe requested column number
silentif true, print message whether FITS::verboseMode is set or not.

The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1Table_1_1NoSuchColumn.png0000644000225700000360000000110211667502533021742 0ustar cagordonlhea‰PNG  IHDR°PŽ-îPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2ÑIDATxíÙnÄ EqFÊÿrÌr½d™6hÄô¢H ì^òZ^‹òÚ–&ð?1 ‘M¶Mef—¨¸kšìÌx0ôg`e„Euà“å ”÷hïïõuþº4x5©'Û$›n} = Ü^;~ãN~ãM¶9ì4=‡ý{üp—yÀyJ T÷âüp–â ‰)‘=ôÃÀy—iz–Ãõà~8ôaôóÙh4ü']¢öô.{xÎx»øÛ;Là/^l”YcŸf™ÀÊ»/F¼ð¾/F¼0» L`˜À&0 L`˜À&ðçe±Qd­À˜À_,"ºn ­H{¡Vªý8N`ÕIñŒÛ´ç/8€•0FpÜ9Û©¡ló5°´""¥H"¤>ЍJº­)¢¡Ô(asŸúº?§ÌgC¡—2>º'6ŽŒ‡uCMK ø=à4õ¨1Ò “HçÀ‰ñ[À)a-ûZ„x&÷› l+> ®‹‚Æ:~ 8ï6{àÌfÛ’;é±ÃKàЇ‘É9®-±Kàõ wØÖ½Ãi¡H¯ùk&0 LàÏ/6~jª%‚™p[âIEND®B`‚CCfits/html/classCCfits_1_1Table_1_1NoSuchColumn-members.html0000644000225700000360000000727311667502533023571 0ustar cagordonlhea CCfits: Member List
CCfits::Table::NoSuchColumn Member List
This is the complete list of members for CCfits::Table::NoSuchColumn, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
NoSuchColumn(const String &name, bool silent=true)CCfits::Table::NoSuchColumn
NoSuchColumn(int index, bool silent=true)CCfits::Table::NoSuchColumn
CCfits/html/classCCfits_1_1FITSUtil_1_1auto__array__ptr.html0000644000225700000360000002545011667502533023466 0ustar cagordonlhea CCfits: CCfits::FITSUtil::auto_array_ptr< X > Class Template Reference
CCfits::FITSUtil::auto_array_ptr< X > Class Template Reference

A class that mimics the std:: library auto_ptr class, but works with arrays. More...

#include <FITSUtil.h>

List of all members.

Public Member Functions

 auto_array_ptr (X *p=0) throw ()
 constructor. allows creation of pointer to null, can be modified by reset()
 auto_array_ptr (auto_array_ptr< X > &right) throw ()
 copy constructor
 ~auto_array_ptr ()
 destructor.
X * get () const
 return a token for the underlying content of *this
X & operator* () throw ()
 deference operator
void operator= (auto_array_ptr< X > &right)
 assignment operator: transfer of ownership semantics
X & operator[] (size_t i) throw ()
 return a reference to the ith element of the array
operator[] (size_t i) const throw ()
 return a copy of the ith element of the array
X * release () throw ()
 return underlying content of *this, transferring memory ownership
X * reset (X *p) throw ()
 change the content of the auto_array_ptr to p

Static Public Member Functions

static void remove (X *&x)
 utility function to delete the memory owned by x and set it to null.

Detailed Description

template<typename X>
class CCfits::FITSUtil::auto_array_ptr< X >

A class that mimics the std:: library auto_ptr class, but works with arrays.

This code was written by Jack Reeves and first appeared C++ Report, March 1996 edition. Although some authors think one shouldn't need such a contrivance, there seems to be a need for it when wrapping C code.

Usage: replace

float* f = new float[200];

with

FITSUtil::auto_array_ptr<float> f(new float[200]);

Then the memory will be managed correctly in the presence of exceptions, and delete will be called automatically for f when leaving scope.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1auto__array__ptr-members.html0000644000225700000360000001361611667502533025117 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::auto_array_ptr< X > Member List
CCfits/html/structCCfits_1_1FITSUtil_1_1CAarray.html0000644000225700000360000001060011667502533021665 0ustar cagordonlhea CCfits: CCfits::FITSUtil::CAarray< T > Class Template Reference
CCfits::FITSUtil::CAarray< T > Class Template Reference

function object returning C array from a valarray. see CVarray for details More...

#include <FITSUtil.h>

List of all members.

Public Member Functions

T * operator() (const std::valarray< T > &inArray)
 operator returning C array for use with image data.

Detailed Description

template<typename T>
class CCfits::FITSUtil::CAarray< T >

function object returning C array from a valarray. see CVarray for details


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1CAarray-members.html0000644000225700000360000000553611667502533023112 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::CAarray< T > Member List
This is the complete list of members for CCfits::FITSUtil::CAarray< T >, including all inherited members.
operator()(const std::valarray< T > &inArray)CCfits::FITSUtil::CAarray< T >
CCfits/html/structCCfits_1_1FITSUtil_1_1CVAarray.html0000644000225700000360000001072211667502533022020 0ustar cagordonlhea CCfits: CCfits::FITSUtil::CVAarray< T > Class Template Reference
CCfits::FITSUtil::CVAarray< T > Class Template Reference

function object returning C array from a vector of valarrays. see CVarray for details More...

#include <FITSUtil.h>

List of all members.

Public Member Functions

T * operator() (const std::vector< std::valarray< T > > &inArray)
 operator returning C array for use with vector column data.

Detailed Description

template<typename T>
class CCfits::FITSUtil::CVAarray< T >

function object returning C array from a vector of valarrays. see CVarray for details


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1CVAarray-members.html0000644000225700000360000000557311667502533023241 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::CVAarray< T > Member List
This is the complete list of members for CCfits::FITSUtil::CVAarray< T >, including all inherited members.
operator()(const std::vector< std::valarray< T > > &inArray)CCfits::FITSUtil::CVAarray< T >
CCfits/html/structCCfits_1_1FITSUtil_1_1CVarray.html0000644000225700000360000001215011667502533021714 0ustar cagordonlhea CCfits: CCfits::FITSUtil::CVarray< T > Class Template Reference
CCfits::FITSUtil::CVarray< T > Class Template Reference

Function object class for returning C arrays from standard library objects used in the FITS library implementation. More...

#include <FITSUtil.h>

List of all members.

Public Member Functions

T * operator() (const std::vector< T > &inArray)
 operator returning C array for use with scalar column data.

Detailed Description

template<typename T>
class CCfits::FITSUtil::CVarray< T >

Function object class for returning C arrays from standard library objects used in the FITS library implementation.

There are 3 versions which convert std::vector<T>, std::valarray<T>, and std::vector<std::valarray<T> > objects to pointers to T, called CVarray, CAarray, and CVAarray.

An alternative function, CharArray, is provided to deal with the special case of vector string arrays.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1CVarray-members.html0000644000225700000360000000556211667502533023136 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::CVarray< T > Member List
This is the complete list of members for CCfits::FITSUtil::CVarray< T >, including all inherited members.
operator()(const std::vector< T > &inArray)CCfits::FITSUtil::CVarray< T > [inline]
CCfits/html/structCCfits_1_1FITSUtil_1_1MatchName.html0000644000225700000360000000725011667502533022207 0ustar cagordonlhea CCfits: CCfits::FITSUtil::MatchName< T > Class Template Reference
CCfits::FITSUtil::MatchName< T > Class Template Reference

predicate for classes that have a name attribute; match input string with instance name. More...

#include <FITSUtil.h>

List of all members.


Detailed Description

template<class T>
class CCfits::FITSUtil::MatchName< T >

predicate for classes that have a name attribute; match input string with instance name.

Usage: MatchName<NamedClass> Ex;

list<NamedClass> ListObject;

... ...

find_if(ListObject.begin(),ListObject().end(),bind2nd(Ex,"needle"));

Since most of the classes within CCfits are not implemented with lists, these functions are now of little direct use.


The documentation for this class was generated from the following file:
CCfits/html/files.html0000644000225700000360000001341611667502533014470 0ustar cagordonlhea CCfits: File List
File List
Here is a list of all documented files with brief descriptions:
AsciiTable.h [code]
BinTable.h [code]
CCfits.h [code]
Column.h [code]
ColumnCreator.h [code]
ColumnData.h [code]
ColumnT.h [code]
ColumnVectorData.h [code]
config.h [code]
ExtHDU.h [code]
ExtHDUT.h [code]
FITS.h [code]
FITSBase.h [code]
FitsError.h [code]
FITSUtil.h [code]
FITSUtilT.h [code]
HDU.h [code]
HDUCreator.h [code]
Image.h [code]
ImageExt.h [code]
KeyData.h [code]
Keyword.h [code]
KeywordCreator.h [code]
KeywordT.h [code]
MSconfig.h [code]
NewColumn.h [code]
NewKeyword.h [code]
PHDU.h [code]
PHDUT.h [code]
PrimaryHDU.h [code]
Table.h [code]
CCfits/html/namespaceFITSUtil.html0000644000225700000360000000552211667502533016645 0ustar cagordonlhea CCfits: FITSUtil Namespace Reference
FITSUtil Namespace Reference

FITSUtil is a namespace containing functions used internally by CCfits, but which might be of use for other applications. More...


Detailed Description

FITSUtil is a namespace containing functions used internally by CCfits, but which might be of use for other applications.

CCfits/html/classCCfits_1_1FITSUtil_1_1MatchName-members.html0000644000225700000360000000506011667502533023415 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::MatchName< T > Member List
This is the complete list of members for CCfits::FITSUtil::MatchName< T >, including all inherited members.
CCfits/html/structCCfits_1_1FITSUtil_1_1MatchNum.html0000644000225700000360000000726111667502533022070 0ustar cagordonlhea CCfits: CCfits::FITSUtil::MatchNum< T > Class Template Reference
CCfits::FITSUtil::MatchNum< T > Class Template Reference

predicate for classes that have an index attribute; match input index with instance value. More...

#include <FITSUtil.h>

List of all members.


Detailed Description

template<class T>
class CCfits::FITSUtil::MatchNum< T >

predicate for classes that have an index attribute; match input index with instance value.

Usage: MatchName<IndexedClass> Ex;

list<NamedClass> ListObject;

... ...

find_if(ListObject.begin(),ListObject().end(),bind2nd(Ex,5));

Since most of the classes within CCfits are implemented with std::maps rather than lists, these functions are now of little direct use.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1MatchNum-members.html0000644000225700000360000000505311667502533023276 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::MatchNum< T > Member List
This is the complete list of members for CCfits::FITSUtil::MatchNum< T >, including all inherited members.
CCfits/html/structCCfits_1_1FITSUtil_1_1MatchPtrName.html0000644000225700000360000000704311667502533022675 0ustar cagordonlhea CCfits: CCfits::FITSUtil::MatchPtrName< T > Class Template Reference
CCfits::FITSUtil::MatchPtrName< T > Class Template Reference

as for MatchName, only with the input class a pointer. More...

#include <FITSUtil.h>

List of all members.


Detailed Description

template<class T>
class CCfits::FITSUtil::MatchPtrName< T >

as for MatchName, only with the input class a pointer.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1MatchPtrName-members.html0000644000225700000360000000507711667502533024113 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::MatchPtrName< T > Member List
This is the complete list of members for CCfits::FITSUtil::MatchPtrName< T >, including all inherited members.
CCfits/html/structCCfits_1_1FITSUtil_1_1MatchPtrNum.html0000644000225700000360000000703311667502533022553 0ustar cagordonlhea CCfits: CCfits::FITSUtil::MatchPtrNum< T > Class Template Reference
CCfits::FITSUtil::MatchPtrNum< T > Class Template Reference

as for MatchNum, only with the input class a pointer. More...

#include <FITSUtil.h>

List of all members.


Detailed Description

template<class T>
class CCfits::FITSUtil::MatchPtrNum< T >

as for MatchNum, only with the input class a pointer.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1MatchPtrNum-members.html0000644000225700000360000000507211667502533023765 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::MatchPtrNum< T > Member List
This is the complete list of members for CCfits::FITSUtil::MatchPtrNum< T >, including all inherited members.
CCfits/html/structCCfits_1_1FITSUtil_1_1MatchType.html0000644000225700000360000000750311667502533022251 0ustar cagordonlhea CCfits: CCfits::FITSUtil::MatchType< T > Class Template Reference
CCfits::FITSUtil::MatchType< T > Class Template Reference

function object that returns the FITS ValueType corresponding to an input intrinsic type More...

#include <FITSUtil.h>

List of all members.


Detailed Description

template<typename T>
class CCfits::FITSUtil::MatchType< T >

function object that returns the FITS ValueType corresponding to an input intrinsic type

This is particularly useful inside templated class instances where calls to cfitsio need to supply a value type. With this function one can extract the value type from the class type.

usage:

MatchType<T> type;

ValueType dataType = type();

Uses run-time type information (RTTI) methods.


The documentation for this class was generated from the following file:
CCfits/html/classCCfits_1_1FITSUtil_1_1MatchType-members.html0000644000225700000360000000506011667502533023456 0ustar cagordonlhea CCfits: Member List
CCfits::FITSUtil::MatchType< T > Member List
This is the complete list of members for CCfits::FITSUtil::MatchType< T >, including all inherited members.
CCfits/html/classCCfits_1_1FITSUtil_1_1UnrecognizedType.html0000644000225700000360000001036011667505546023434 0ustar cagordonlhea CCfits: CCfits::FITSUtil::UnrecognizedType Class Reference
CCfits::FITSUtil::UnrecognizedType Class Reference

exception thrown by MatchType if it encounters data type incompatible with cfitsio. More...

#include <FITSUtil.h>

Inheritance diagram for CCfits::FITSUtil::UnrecognizedType:
Inheritance diagram CCfits::FitsException

List of all members.


Detailed Description

exception thrown by MatchType if it encounters data type incompatible with cfitsio.


The documentation for this class was generated from the following files:
CCfits/html/classCCfits_1_1FITSUtil_1_1UnrecognizedType.png0000644000225700000360000000120411667502533023242 0ustar cagordonlhea‰PNG  IHDRÏP‰oÑûPLTEÿÿÿèìõuÂÀÀÀ‰ÜtRNSÿÿÿÿÿÿÿÕÊT2IDATxí]Žë …ãTÊþ—|ÀæÃmZ¡ƒ2Åüá^×^íx;5ò‡OYSõ]i˜Öñ ò$ópkßéÝ¡—½´â)º†1Çãó'¸f"Tþàè&d­ÛðÏ[<ãxËœåÑš2æÑX—6÷ƒ1ÇÓJ¯Q=˜ñï CCfits: Member List
CCfits::FITSUtil::UnrecognizedType Member List
This is the complete list of members for CCfits::FITSUtil::UnrecognizedType, including all inherited members.
FitsException(const string &msg, bool &silent)CCfits::FitsException
message() const CCfits::FitsException [inline]
CCfits/html/namespacemembers.html0000644000225700000360000000473111667502533016675 0ustar cagordonlhea CCfits: Namespace Members
Here is a list of all documented namespace members with links to the namespaces they belong to:
CCfits/html/namespacemembers_func.html0000644000225700000360000000436611667502533017714 0ustar cagordonlhea CCfits: Namespace Members
 
CCfits/html/namespacemembers_enum.html0000644000225700000360000000435511667502533017723 0ustar cagordonlhea CCfits: Namespace Members
 
CCfits/CCfits-2.4.pdf0000644000225700000360000426214611667511110013704 0ustar cagordonlhea%PDF-1.4 5 0 obj << /S /GoTo /D (section.1) >> endobj 8 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 9 0 obj << /S /GoTo /D (subsection.1.1) >> endobj 12 0 obj (\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n) endobj 13 0 obj << /S /GoTo /D (subsection.1.2) >> endobj 16 0 obj (\376\377\000A\000b\000o\000u\000t\000\040\000t\000h\000i\000s\000\040\000M\000a\000n\000u\000a\000l) endobj 17 0 obj << /S /GoTo /D (subsection.1.3) >> endobj 20 0 obj (\376\377\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s\000\040\000f\000o\000r\000\040\000V\000e\000r\000s\000i\000o\000n\000\040\0002\000.\0004\000\040\000D\000e\000c\000\040\0002\0000\0001\0001) endobj 21 0 obj << /S /GoTo /D (subsection.1.4) >> endobj 24 0 obj (\376\377\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s\000\040\000F\000o\000r\000\040\000V\000e\000r\000s\000i\000o\000n\000\040\0002\000.\0003\000\040\000N\000o\000v\000\040\0002\0000\0001\0000) endobj 25 0 obj << /S /GoTo /D (subsection.1.5) >> endobj 28 0 obj (\376\377\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s\000\040\000F\000o\000r\000\040\000V\000e\000r\000s\000i\000o\000n\000\040\0002\000.\0002\000\040\000S\000e\000p\000\040\0002\0000\0000\0009) endobj 29 0 obj << /S /GoTo /D (subsection.1.6) >> endobj 32 0 obj (\376\377\000A\000u\000t\000h\000o\000r\000s\000\040\000a\000n\000d\000\040\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000e\000m\000e\000n\000t\000s) endobj 33 0 obj << /S /GoTo /D (section.2) >> endobj 36 0 obj (\376\377\000I\000n\000s\000t\000a\000l\000l\000i\000n\000g\000\040\000t\000h\000e\000\040\000P\000a\000c\000k\000a\000g\000e) endobj 37 0 obj << /S /GoTo /D (subsection.2.1) >> endobj 40 0 obj (\376\377\000P\000l\000a\000t\000f\000o\000r\000m\000s) endobj 41 0 obj << /S /GoTo /D (subsection.2.2) >> endobj 44 0 obj (\376\377\000B\000u\000i\000l\000d\000i\000n\000g) endobj 45 0 obj << /S /GoTo /D (subsubsection.2.2.1) >> endobj 48 0 obj (\376\377\000I\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s\000\040\000f\000o\000r\000\040\000B\000u\000i\000l\000d\000i\000n\000g\000\040\000C\000C\000f\000i\000t\000s\000\040\000o\000n\000\040\000U\000N\000I\000X\000-\000l\000i\000k\000e\000\040\000p\000l\000a\000t\000f\000o\000r\000m\000s\000:) endobj 49 0 obj << /S /GoTo /D (subsubsection.2.2.2) >> endobj 52 0 obj (\376\377\000I\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s\000\040\000f\000o\000r\000\040\000M\000i\000c\000r\000o\000s\000f\000t\000\040\000W\000i\000n\000d\000o\000w\000s\000\040\000b\000u\000i\000l\000d\000:) endobj 53 0 obj << /S /GoTo /D (section.3) >> endobj 56 0 obj (\376\377\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000N\000o\000t\000e\000s) endobj 57 0 obj << /S /GoTo /D (section.4) >> endobj 60 0 obj (\376\377\000X\000s\000p\000e\000c\000\040\000a\000n\000d\000\040\000C\000C\000f\000i\000t\000s) endobj 61 0 obj << /S /GoTo /D (subsection.4.1) >> endobj 64 0 obj (\376\377\000A\000b\000o\000u\000t\000\040\000X\000S\000P\000E\000C) endobj 65 0 obj << /S /GoTo /D (subsection.4.2) >> endobj 68 0 obj (\376\377\000N\000e\000w\000\040\000D\000a\000t\000a\000\040\000F\000o\000r\000m\000a\000t\000s) endobj 69 0 obj << /S /GoTo /D (subsection.4.3) >> endobj 72 0 obj (\376\377\000M\000o\000d\000u\000l\000a\000r\000i\000t\000y) endobj 73 0 obj << /S /GoTo /D (section.5) >> endobj 76 0 obj (\376\377\000G\000e\000t\000t\000i\000n\000g\000\040\000S\000t\000a\000r\000t\000e\000d) endobj 77 0 obj << /S /GoTo /D (subsection.5.1) >> endobj 80 0 obj (\376\377\000D\000r\000i\000v\000e\000r\000\040\000P\000r\000o\000g\000r\000a\000m) endobj 81 0 obj << /S /GoTo /D (section.6) >> endobj 84 0 obj (\376\377\000W\000r\000i\000t\000i\000n\000g\000\040\000P\000r\000i\000m\000a\000r\000y\000\040\000I\000m\000a\000g\000e\000s\000\040\000a\000n\000d\000\040\000I\000m\000a\000g\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n\000s) endobj 85 0 obj << /S /GoTo /D (section.7) >> endobj 88 0 obj (\376\377\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000d\000\040\000W\000r\000i\000t\000i\000n\000g\000\040\000t\000o\000\040\000a\000n\000\040\000A\000s\000c\000i\000i\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n) endobj 89 0 obj << /S /GoTo /D (section.8) >> endobj 92 0 obj (\376\377\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000d\000\040\000W\000r\000i\000t\000i\000n\000g\000\040\000t\000o\000\040\000a\000\040\000B\000i\000n\000a\000r\000y\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n) endobj 93 0 obj << /S /GoTo /D (section.9) >> endobj 96 0 obj (\376\377\000C\000o\000p\000y\000i\000n\000g\000\040\000a\000n\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000b\000e\000t\000w\000e\000e\000n\000\040\000F\000i\000l\000e\000s) endobj 97 0 obj << /S /GoTo /D (section.10) >> endobj 100 0 obj (\376\377\000S\000e\000l\000e\000c\000t\000i\000n\000g\000\040\000T\000a\000b\000l\000e\000\040\000D\000a\000t\000a) endobj 101 0 obj << /S /GoTo /D (section.11) >> endobj 104 0 obj (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000H\000e\000a\000d\000e\000r\000\040\000i\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n\000\040\000f\000r\000o\000m\000\040\000a\000\040\000H\000D\000U) endobj 105 0 obj << /S /GoTo /D (section.12) >> endobj 108 0 obj (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000a\000n\000\040\000I\000m\000a\000g\000e) endobj 109 0 obj << /S /GoTo /D (section.13) >> endobj 112 0 obj (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000a\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n) endobj 113 0 obj << /S /GoTo /D (section.14) >> endobj 116 0 obj (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000w\000i\000t\000h\000\040\000E\000x\000t\000e\000n\000d\000e\000d\000\040\000F\000i\000l\000e\000\040\000N\000a\000m\000e\000\040\000S\000y\000n\000t\000a\000x) endobj 117 0 obj << /S /GoTo /D (section.15) >> endobj 120 0 obj (\376\377\000W\000h\000a\000t\000'\000s\000\040\000P\000r\000e\000s\000e\000n\000t\000,\000\040\000W\000h\000a\000t\000'\000s\000\040\000M\000i\000s\000s\000i\000n\000g\000,\000\040\000a\000n\000d\000\040\000C\000a\000l\000l\000i\000n\000g\000\040\000C\000F\000I\000T\000S\000I\000O) endobj 121 0 obj << /S /GoTo /D (subsection.15.1) >> endobj 124 0 obj (\376\377\000W\000h\000a\000t\000'\000s\000\040\000N\000o\000t\000\040\000P\000r\000e\000s\000e\000n\000t) endobj 125 0 obj << /S /GoTo /D (subsection.15.2) >> endobj 128 0 obj (\376\377\000C\000a\000l\000l\000i\000n\000g\000\040\000C\000F\000I\000T\000S\000I\000O) endobj 129 0 obj << /S /GoTo /D (section.16) >> endobj 132 0 obj (\376\377\000P\000r\000e\000v\000i\000o\000u\000s\000\040\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s) endobj 133 0 obj << /S /GoTo /D (section.17) >> endobj 136 0 obj (\376\377\000T\000o\000d\000o\000\040\000L\000i\000s\000t) endobj 137 0 obj << /S /GoTo /D (section.18) >> endobj 140 0 obj (\376\377\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x) endobj 141 0 obj << /S /GoTo /D (subsection.18.1) >> endobj 144 0 obj (\376\377\000M\000o\000d\000u\000l\000e\000s) endobj 145 0 obj << /S /GoTo /D (section.19) >> endobj 148 0 obj (\376\377\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000I\000n\000d\000e\000x) endobj 149 0 obj << /S /GoTo /D (subsection.19.1) >> endobj 152 0 obj (\376\377\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000L\000i\000s\000t) endobj 153 0 obj << /S /GoTo /D (section.20) >> endobj 156 0 obj (\376\377\000H\000i\000e\000r\000a\000r\000c\000h\000i\000c\000a\000l\000\040\000I\000n\000d\000e\000x) endobj 157 0 obj << /S /GoTo /D (subsection.20.1) >> endobj 160 0 obj (\376\377\000C\000l\000a\000s\000s\000\040\000H\000i\000e\000r\000a\000r\000c\000h\000y) endobj 161 0 obj << /S /GoTo /D (section.21) >> endobj 164 0 obj (\376\377\000C\000l\000a\000s\000s\000\040\000I\000n\000d\000e\000x) endobj 165 0 obj << /S /GoTo /D (subsection.21.1) >> endobj 168 0 obj (\376\377\000C\000l\000a\000s\000s\000\040\000L\000i\000s\000t) endobj 169 0 obj << /S /GoTo /D (section.22) >> endobj 172 0 obj (\376\377\000M\000o\000d\000u\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 173 0 obj << /S /GoTo /D (subsection.22.1) >> endobj 176 0 obj (\376\377\000F\000I\000T\000S\000\040\000E\000x\000c\000e\000p\000t\000i\000o\000n\000s) endobj 177 0 obj << /S /GoTo /D (section.23) >> endobj 180 0 obj (\376\377\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 181 0 obj << /S /GoTo /D (subsection.23.1) >> endobj 184 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000\040\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 185 0 obj << /S /GoTo /D (subsubsection.23.1.1) >> endobj 188 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 189 0 obj << /S /GoTo /D (subsubsection.23.1.2) >> endobj 192 0 obj (\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 193 0 obj << /S /GoTo /D (subsubsection.23.1.3) >> endobj 196 0 obj (\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 197 0 obj << /S /GoTo /D (subsection.23.2) >> endobj 200 0 obj (\376\377\000F\000I\000T\000S\000U\000t\000i\000l\000\040\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 201 0 obj << /S /GoTo /D (subsubsection.23.2.1) >> endobj 204 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 205 0 obj << /S /GoTo /D (section.24) >> endobj 208 0 obj (\376\377\000C\000l\000a\000s\000s\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 209 0 obj << /S /GoTo /D (subsection.24.1) >> endobj 212 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000A\000s\000c\000i\000i\000T\000a\000b\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 213 0 obj << /S /GoTo /D (subsubsection.24.1.1) >> endobj 216 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 217 0 obj << /S /GoTo /D (subsubsection.24.1.2) >> endobj 220 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 221 0 obj << /S /GoTo /D (subsubsection.24.1.3) >> endobj 224 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 225 0 obj << /S /GoTo /D (subsection.24.2) >> endobj 228 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000B\000i\000n\000T\000a\000b\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 229 0 obj << /S /GoTo /D (subsubsection.24.2.1) >> endobj 232 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 233 0 obj << /S /GoTo /D (subsubsection.24.2.2) >> endobj 236 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 237 0 obj << /S /GoTo /D (subsubsection.24.2.3) >> endobj 240 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 241 0 obj << /S /GoTo /D (subsection.24.3) >> endobj 244 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 245 0 obj << /S /GoTo /D (subsubsection.24.3.1) >> endobj 248 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 249 0 obj << /S /GoTo /D (subsubsection.24.3.2) >> endobj 252 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 253 0 obj << /S /GoTo /D (subsubsection.24.3.3) >> endobj 256 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 257 0 obj << /S /GoTo /D (subsection.24.4) >> endobj 260 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000s\000u\000f\000f\000i\000c\000i\000e\000n\000t\000E\000l\000e\000m\000e\000n\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 261 0 obj << /S /GoTo /D (subsubsection.24.4.1) >> endobj 264 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 265 0 obj << /S /GoTo /D (subsubsection.24.4.2) >> endobj 268 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 269 0 obj << /S /GoTo /D (subsection.24.5) >> endobj 272 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000D\000a\000t\000a\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 273 0 obj << /S /GoTo /D (subsubsection.24.5.1) >> endobj 276 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 277 0 obj << /S /GoTo /D (subsubsection.24.5.2) >> endobj 280 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 281 0 obj << /S /GoTo /D (subsection.24.6) >> endobj 284 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000N\000u\000m\000b\000e\000r\000O\000f\000R\000o\000w\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 285 0 obj << /S /GoTo /D (subsubsection.24.6.1) >> endobj 288 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 289 0 obj << /S /GoTo /D (subsubsection.24.6.2) >> endobj 292 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 293 0 obj << /S /GoTo /D (subsection.24.7) >> endobj 296 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000R\000o\000w\000N\000u\000m\000b\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 297 0 obj << /S /GoTo /D (subsubsection.24.7.1) >> endobj 300 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 301 0 obj << /S /GoTo /D (subsubsection.24.7.2) >> endobj 304 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 305 0 obj << /S /GoTo /D (subsection.24.8) >> endobj 308 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000R\000o\000w\000P\000a\000r\000a\000m\000e\000t\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 309 0 obj << /S /GoTo /D (subsubsection.24.8.1) >> endobj 312 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 313 0 obj << /S /GoTo /D (subsubsection.24.8.2) >> endobj 316 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 317 0 obj << /S /GoTo /D (subsection.24.9) >> endobj 320 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000N\000o\000N\000u\000l\000l\000V\000a\000l\000u\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 321 0 obj << /S /GoTo /D (subsubsection.24.9.1) >> endobj 324 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 325 0 obj << /S /GoTo /D (subsubsection.24.9.2) >> endobj 328 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 329 0 obj << /S /GoTo /D (subsection.24.10) >> endobj 332 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000R\000a\000n\000g\000e\000E\000r\000r\000o\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 333 0 obj << /S /GoTo /D (subsubsection.24.10.1) >> endobj 336 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 337 0 obj << /S /GoTo /D (subsubsection.24.10.2) >> endobj 340 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 341 0 obj << /S /GoTo /D (subsection.24.11) >> endobj 344 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000W\000r\000o\000n\000g\000C\000o\000l\000u\000m\000n\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 345 0 obj << /S /GoTo /D (subsubsection.24.11.1) >> endobj 348 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 349 0 obj << /S /GoTo /D (subsubsection.24.11.2) >> endobj 352 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 353 0 obj << /S /GoTo /D (subsection.24.12) >> endobj 356 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000E\000x\000t\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 357 0 obj << /S /GoTo /D (subsubsection.24.12.1) >> endobj 360 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 361 0 obj << /S /GoTo /D (subsubsection.24.12.2) >> endobj 364 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 365 0 obj << /S /GoTo /D (subsubsection.24.12.3) >> endobj 368 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 369 0 obj << /S /GoTo /D (subsection.24.13) >> endobj 372 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000E\000x\000t\000H\000D\000U\000:\000:\000W\000r\000o\000n\000g\000E\000x\000t\000e\000n\000s\000i\000o\000n\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 373 0 obj << /S /GoTo /D (subsubsection.24.13.1) >> endobj 376 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 377 0 obj << /S /GoTo /D (subsubsection.24.13.2) >> endobj 380 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 381 0 obj << /S /GoTo /D (subsection.24.14) >> endobj 384 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 385 0 obj << /S /GoTo /D (subsubsection.24.14.1) >> endobj 388 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 389 0 obj << /S /GoTo /D (subsubsection.24.14.2) >> endobj 392 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 393 0 obj << /S /GoTo /D (subsubsection.24.14.3) >> endobj 396 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 397 0 obj << /S /GoTo /D (subsection.24.15) >> endobj 400 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000C\000a\000n\000t\000C\000r\000e\000a\000t\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 401 0 obj << /S /GoTo /D (subsubsection.24.15.1) >> endobj 404 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 405 0 obj << /S /GoTo /D (subsubsection.24.15.2) >> endobj 408 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 409 0 obj << /S /GoTo /D (subsection.24.16) >> endobj 412 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000C\000a\000n\000t\000O\000p\000e\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 413 0 obj << /S /GoTo /D (subsubsection.24.16.1) >> endobj 416 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 417 0 obj << /S /GoTo /D (subsubsection.24.16.2) >> endobj 420 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 421 0 obj << /S /GoTo /D (subsection.24.17) >> endobj 424 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000N\000o\000S\000u\000c\000h\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 425 0 obj << /S /GoTo /D (subsubsection.24.17.1) >> endobj 428 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 429 0 obj << /S /GoTo /D (subsubsection.24.17.2) >> endobj 432 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 433 0 obj << /S /GoTo /D (subsection.24.18) >> endobj 436 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000O\000p\000e\000r\000a\000t\000i\000o\000n\000N\000o\000t\000S\000u\000p\000p\000o\000r\000t\000e\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 437 0 obj << /S /GoTo /D (subsubsection.24.18.1) >> endobj 440 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 441 0 obj << /S /GoTo /D (subsubsection.24.18.2) >> endobj 444 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 445 0 obj << /S /GoTo /D (subsection.24.19) >> endobj 448 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000i\000t\000s\000E\000r\000r\000o\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 449 0 obj << /S /GoTo /D (subsubsection.24.19.1) >> endobj 452 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 453 0 obj << /S /GoTo /D (subsubsection.24.19.2) >> endobj 456 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 457 0 obj << /S /GoTo /D (subsection.24.20) >> endobj 460 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000i\000t\000s\000E\000x\000c\000e\000p\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 461 0 obj << /S /GoTo /D (subsubsection.24.20.1) >> endobj 464 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 465 0 obj << /S /GoTo /D (subsubsection.24.20.2) >> endobj 468 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 469 0 obj << /S /GoTo /D (subsubsection.24.20.3) >> endobj 472 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 473 0 obj << /S /GoTo /D (subsection.24.21) >> endobj 476 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000i\000t\000s\000F\000a\000t\000a\000l\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 477 0 obj << /S /GoTo /D (subsubsection.24.21.1) >> endobj 480 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 481 0 obj << /S /GoTo /D (subsubsection.24.21.2) >> endobj 484 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 485 0 obj << /S /GoTo /D (subsection.24.22) >> endobj 488 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000a\000u\000t\000o\000\137\000a\000r\000r\000a\000y\000\137\000p\000t\000r\000<\000\040\000X\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 489 0 obj << /S /GoTo /D (subsubsection.24.22.1) >> endobj 492 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 493 0 obj << /S /GoTo /D (subsection.24.23) >> endobj 496 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000C\000A\000a\000r\000r\000a\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 497 0 obj << /S /GoTo /D (subsubsection.24.23.1) >> endobj 500 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 501 0 obj << /S /GoTo /D (subsection.24.24) >> endobj 504 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000C\000V\000A\000a\000r\000r\000a\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 505 0 obj << /S /GoTo /D (subsubsection.24.24.1) >> endobj 508 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 509 0 obj << /S /GoTo /D (subsection.24.25) >> endobj 512 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000C\000V\000a\000r\000r\000a\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 513 0 obj << /S /GoTo /D (subsubsection.24.25.1) >> endobj 516 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 517 0 obj << /S /GoTo /D (subsection.24.26) >> endobj 520 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000N\000a\000m\000e\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 521 0 obj << /S /GoTo /D (subsubsection.24.26.1) >> endobj 524 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 525 0 obj << /S /GoTo /D (subsection.24.27) >> endobj 528 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000N\000u\000m\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 529 0 obj << /S /GoTo /D (subsubsection.24.27.1) >> endobj 532 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 533 0 obj << /S /GoTo /D (subsection.24.28) >> endobj 536 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000P\000t\000r\000N\000a\000m\000e\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 537 0 obj << /S /GoTo /D (subsubsection.24.28.1) >> endobj 540 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 541 0 obj << /S /GoTo /D (subsection.24.29) >> endobj 544 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000P\000t\000r\000N\000u\000m\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 545 0 obj << /S /GoTo /D (subsubsection.24.29.1) >> endobj 548 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 549 0 obj << /S /GoTo /D (subsection.24.30) >> endobj 552 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000T\000y\000p\000e\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 553 0 obj << /S /GoTo /D (subsubsection.24.30.1) >> endobj 556 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 557 0 obj << /S /GoTo /D (subsection.24.31) >> endobj 560 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000U\000n\000r\000e\000c\000o\000g\000n\000i\000z\000e\000d\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 561 0 obj << /S /GoTo /D (subsubsection.24.31.1) >> endobj 564 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 565 0 obj << /S /GoTo /D (subsection.24.32) >> endobj 568 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 569 0 obj << /S /GoTo /D (subsubsection.24.32.1) >> endobj 572 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 573 0 obj << /S /GoTo /D (subsubsection.24.32.2) >> endobj 576 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 577 0 obj << /S /GoTo /D (subsection.24.33) >> endobj 580 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000I\000n\000v\000a\000l\000i\000d\000E\000x\000t\000e\000n\000s\000i\000o\000n\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 581 0 obj << /S /GoTo /D (subsubsection.24.33.1) >> endobj 584 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 585 0 obj << /S /GoTo /D (subsubsection.24.33.2) >> endobj 588 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 589 0 obj << /S /GoTo /D (subsection.24.34) >> endobj 592 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000I\000n\000v\000a\000l\000i\000d\000I\000m\000a\000g\000e\000D\000a\000t\000a\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 593 0 obj << /S /GoTo /D (subsubsection.24.34.1) >> endobj 596 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 597 0 obj << /S /GoTo /D (subsubsection.24.34.2) >> endobj 600 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 601 0 obj << /S /GoTo /D (subsection.24.35) >> endobj 604 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000N\000o\000N\000u\000l\000l\000V\000a\000l\000u\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 605 0 obj << /S /GoTo /D (subsubsection.24.35.1) >> endobj 608 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 609 0 obj << /S /GoTo /D (subsubsection.24.35.2) >> endobj 612 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 613 0 obj << /S /GoTo /D (subsection.24.36) >> endobj 616 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000N\000o\000S\000u\000c\000h\000K\000e\000y\000w\000o\000r\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 617 0 obj << /S /GoTo /D (subsubsection.24.36.1) >> endobj 620 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 621 0 obj << /S /GoTo /D (subsubsection.24.36.2) >> endobj 624 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 625 0 obj << /S /GoTo /D (subsection.24.37) >> endobj 628 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000I\000m\000a\000g\000e\000E\000x\000t\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 629 0 obj << /S /GoTo /D (subsubsection.24.37.1) >> endobj 632 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 633 0 obj << /S /GoTo /D (subsubsection.24.37.2) >> endobj 636 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 637 0 obj << /S /GoTo /D (subsection.24.38) >> endobj 640 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000K\000e\000y\000w\000o\000r\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 641 0 obj << /S /GoTo /D (subsubsection.24.38.1) >> endobj 644 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 645 0 obj << /S /GoTo /D (subsubsection.24.38.2) >> endobj 648 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 649 0 obj << /S /GoTo /D (subsubsection.24.38.3) >> endobj 652 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 653 0 obj << /S /GoTo /D (subsection.24.39) >> endobj 656 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000P\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 657 0 obj << /S /GoTo /D (subsubsection.24.39.1) >> endobj 660 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 661 0 obj << /S /GoTo /D (subsubsection.24.39.2) >> endobj 664 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 665 0 obj << /S /GoTo /D (subsubsection.24.39.3) >> endobj 668 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 669 0 obj << /S /GoTo /D (subsection.24.40) >> endobj 672 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000T\000a\000b\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 673 0 obj << /S /GoTo /D (subsubsection.24.40.1) >> endobj 676 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 677 0 obj << /S /GoTo /D (subsubsection.24.40.2) >> endobj 680 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 681 0 obj << /S /GoTo /D (subsubsection.24.40.3) >> endobj 684 0 obj (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 685 0 obj << /S /GoTo /D (subsection.24.41) >> endobj 688 0 obj (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000T\000a\000b\000l\000e\000:\000:\000N\000o\000S\000u\000c\000h\000C\000o\000l\000u\000m\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) endobj 689 0 obj << /S /GoTo /D (subsubsection.24.41.1) >> endobj 692 0 obj (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) endobj 693 0 obj << /S /GoTo /D (subsubsection.24.41.2) >> endobj 696 0 obj (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) endobj 697 0 obj << /S /GoTo /D [698 0 R /Fit ] >> endobj 700 0 obj << /Length 258 /Filter /FlateDecode >> stream xÚ‘=O1 †÷ûر}IG TbÎ ІN ŠDÿ=Éå8è€28–_?þBãÊCƒÞèFt¬fûÒ9³/ÁM‡³Ès!V÷LÔ.aK ÑéYrñ«! ñoÕ&ïÐË$@,ô2u7Dž•Lz6F(b5‹.íîúõúÞ9:¾é¶eÔš2e ƒ ±1—®«ž€«ÔX•2I)ëjýFÛäC~{<æÝ`I\ÿtjöêõó´Ï‡æ Œ €KÁQ•§GŇ2“RYuE¦¥ÿÈ3(oÛG›!‡8Su…´’ Û]§Ÿm~Ÿ-DðÊñÿWûoisendstream endobj 698 0 obj << /Type /Page /Contents 700 0 R /Resources 699 0 R /MediaBox [0 0 612 792] /Parent 705 0 R >> endobj 701 0 obj << /D [698 0 R /XYZ 133.7684 667.198 null] >> endobj 699 0 obj << /Font << /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 708 0 obj << /Length 2048 /Filter /FlateDecode >> stream xÚåZ]oÛ6}ϯðÛl æøý±·6mÚ H4éZ`Ûƒj+‰P¶Ò6ÿ~”DRiQÊ6m†<ÄŽísϹ佼š@ýƒ&ˆ ¸¤®0@òÉb}'7úÅ×GÈ€Õ „ª§^S!ŠMæþ›¼¸:úù„² ¢€PŽ'W×Þ‡10adrµücz¼Ý”ù¦ÜÏþºúõèÕ•{ßM H°æÃ«—v7óÖ£áðs¥¡€â˜wYXXÅÍæB8=>þB¬ÙÌ1ƒÓ—ÛÅýZ“ËÊb» b- ÇŒuj€P%QH+T…Jí&Ž Ó!U,~î/¨?c_•è}ëµ.Z‰ÓM¹Û.ï…ÀH‰BN¡5ÀcF0›3mÏÓú…«ŒKXŒ Pàñ{ R[Xc16?ÿ¸½/›¼/o ³βÍ}¶ŠSŸë]ÍX@1J}ƒ †JÑ%öc»Š{]eJÊÆ›êážZTc)1–¾ÍWy¶Ï+Ï·en\½Þîš¿Ïô¹>Íwûj[×ѧ9ûò…ù DQŽ¢ó†sÚ&ðßÒ1"€R wbøž “º¾)®Æ;æ-HYfagtÀ³“bÓ”oÄ.©€Ÿw0öN—dÈÂÀ"ó j œÖ=?œoné·O0À(ãíó¤ì³°Æ>öoíÃ̓ËüÎZUlÆQ¬‚ "ë j ”Ö:?”oní·ŽÀ$gã­ó¤¬³°Æ:n à}y»Ý¿²Í²yð|ñi³a6ý²Ê—7ùúP¯J Jp0}±¨žJ óCty~Wåõvë:çRŒîÖý‰nÝÁ*-°éÖO7û2[­ŠÍí[ÌÆ»˜!máâSv“ǽ J0zƒàçÚö?ÖŸÒXéä)í-H¥´…Õò¸¶ýb••ºØ¯£ŒÅ" …*XÔ Œ$ TÑ.'Ù³§w³ ˜;ó¤l¶°ÆfÛº¿¸/VËj„.CX]ê;|B—-j€E• JÞeñ”]N›-ôŽÇútÖÚéû lé-~î/8`vô¾ÆìzWcsìíš»xØÐ»L¨Ÿu§¶×xw~úa¾*>Ug¤9/ïì9ñK%ÕM<%*Œ2œYÔ@l”0 tÒíàhÊ{§ŠIåh½=|Bn‹²jãaµÏŠÅn»¿6·æ÷3 §ÅfÙt ûq†á´2%R–p AªNØ3XP:¢;8RíH?ˆÿ6ÿEoɧZAE ]òý‰’ï`U0Ä–üõÝ*ogr^›}`<¹`½ã¹5@ÊÕù)Ù¯ ƒ¢áñ\«‰· ¥‰…UO&öwö²îÚV·õ£a¾)VóÈ.ÃhXgP¼ZY|^ª·.R"diù uÑÁjY\ûã´>\^¼:ŽÄ š5(àŠaQl°6‰(‚ºlž`)Lø‹9@ðö¶ø”»Õ˜k›žó¼>gÍ´*+³ÎE{È}Ê•¬ËòÀ⤩¹‘¥OíÉšŠôŽ¢€ù R¶ZXã«Zžm—÷«lW”ñ¥E{Ä E—ƒàá¾hèðx’ ,ª~Ç“@WUˆÒíV£‹•‡OÔ*‹jnÄM©z—¥kO/ËlWæËØfª{»´"— (M†êþ‰!.;d(as’H° ãsÝ_Èu«Åpê宨±ÏÕ™•›¦òb·½Ùeë¸VQP5Ì]†Q©j@´0… š+uXý_rIÝ*s4>Ù½©l·°JKnÒý½>Æ\º_ìŠu¶{hžœ®³›<œ5Öl¾úZæ›}}çï T©xHxo0 öíöðÙ#ܯч+‘ã{}AJ= «>_Ø/ãw3$§yÖJè”ê[ní«fd»_Eóðj¦ð4û¸ UDÕñ ‰Y`¨ªE „ÕÊꇅú§¦DŸf Ãñ×AJV kn+ÿPV3Z(6.{GËÊ`¬:ÿ:F—\ƒ«•Õ õß°>ô9Ä|´¬þ‚„¬ÖÜvŒ¬Û»OÑP™f—_òÜ<9)Vù¯°>Á™ ¸G_%Ôc§X‡1&ýŠ øˆÙJ«˜· ¥˜…™ú[ŸÖ—ù*_´ù$UÝÒGE¡¨ xFUРصêøì0íW§*çœo”ü)u,¬V5ê¼Í³v’÷F?± B±¹®š†úŽã2ëºÞÔÛug˾yù.Ê/}a\·ÝXÂü²¨ZýpÿA‡õKªÆW_AJA 3õ+VÐîȦÆFS0D8àME j€U«ŠÏ ó~U Šè«ÈhU¼)U,¬V…Råqç9æÕøñ€p(“ °lUòYâþ9#’Àß9•ü •¬V‰PéKQÞzÊ,óe{‚›d¶6.6eöõжÓ? ‚8°íjÔu']‡:î/„HWX¨ØøBè/HIga¦¿©¥{›•?͈˜îmß[÷û|S>3mF€8+ö{-ö³p†é·{|rzuyú[$l¥E(1Ö¢k…õÃý³¤ûlDáøïsý‰û¢ƒ5ÂVFæ„cÌ w¾-­Æµ¾ñÄKU …žÑÌË ع©W‡Ý}S$ý³D@’‘ñÞz RÞZ˜ñ7ÞŽÉvLë´Ä·ÈOƒ`Tm}C‘]FOb@úR©ÿŸîœà¹'endstream endobj 707 0 obj << /Type /Page /Contents 708 0 R /Resources 706 0 R /MediaBox [0 0 612 792] /Parent 705 0 R /Annots [ 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 731 0 R 732 0 R 733 0 R 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R 739 0 R 740 0 R 741 0 R 742 0 R ] >> endobj 712 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 634.2018 244.6218 643.178] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj 713 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 622.2666 221.8776 631.1132] /Subtype /Link /A << /S /GoTo /D (subsection.1.1) >> >> endobj 714 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 610.3114 247.3418 619.158] /Subtype /Link /A << /S /GoTo /D (subsection.1.2) >> >> endobj 715 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 598.3562 332.2627 607.2029] /Subtype /Link /A << /S /GoTo /D (subsection.1.3) >> >> endobj 716 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 586.401 335.3016 595.2477] /Subtype /Link /A << /S /GoTo /D (subsection.1.4) >> >> endobj 717 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 572.3886 333.2391 583.2925] /Subtype /Link /A << /S /GoTo /D (subsection.1.5) >> >> endobj 718 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 560.4334 302.9729 571.3374] /Subtype /Link /A << /S /GoTo /D (subsection.1.6) >> >> endobj 719 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 538.65 243.7051 549.5292] /Subtype /Link /A << /S /GoTo /D (section.2) >> >> endobj 720 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 528.6177 211.3668 537.4644] /Subtype /Link /A << /S /GoTo /D (subsection.2.1) >> >> endobj 721 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 514.6053 207.5015 525.5092] /Subtype /Link /A << /S /GoTo /D (subsection.2.2) >> >> endobj 722 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 502.6501 432.4357 513.554] /Subtype /Link /A << /S /GoTo /D (subsubsection.2.2.1) >> >> endobj 723 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 492.7522 368.0281 501.5989] /Subtype /Link /A << /S /GoTo /D (subsubsection.2.2.2) >> >> endobj 724 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 468.9115 244.0637 479.7907] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj 725 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 446.9937 223.3218 457.8729] /Subtype /Link /A << /S /GoTo /D (section.4) >> >> endobj 726 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 436.8418 231.0234 445.808] /Subtype /Link /A << /S /GoTo /D (subsection.4.1) >> >> endobj 727 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 424.8866 247.4813 433.8529] /Subtype /Link /A << /S /GoTo /D (subsection.4.2) >> >> endobj 728 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 410.9938 217.4541 421.8977] /Subtype /Link /A << /S /GoTo /D (subsection.4.3) >> >> endobj 729 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 389.2104 215.8399 400.0895] /Subtype /Link /A << /S /GoTo /D (section.5) >> >> endobj 730 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 377.1208 235.0282 388.0247] /Subtype /Link /A << /S /GoTo /D (subsection.5.1) >> >> endobj 731 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 355.3374 350.8922 366.2165] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj 732 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 333.4196 359.7788 344.2987] /Subtype /Link /A << /S /GoTo /D (section.7) >> >> endobj 733 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 311.5018 362.5485 322.3809] /Subtype /Link /A << /S /GoTo /D (section.8) >> >> endobj 734 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 289.5839 303.032 300.4631] /Subtype /Link /A << /S /GoTo /D (section.9) >> >> endobj 735 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 267.6661 236.7912 278.5452] /Subtype /Link /A << /S /GoTo /D (section.10) >> >> endobj 736 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 245.7483 327.7595 256.6274] /Subtype /Link /A << /S /GoTo /D (section.11) >> >> endobj 737 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 223.8305 227.1974 234.7096] /Subtype /Link /A << /S /GoTo /D (section.12) >> >> endobj 738 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 201.9126 263.1023 212.7918] /Subtype /Link /A << /S /GoTo /D (section.13) >> >> endobj 739 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 179.9948 327.1018 190.8739] /Subtype /Link /A << /S /GoTo /D (section.14) >> >> endobj 740 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 158.077 384.0374 168.9561] /Subtype /Link /A << /S /GoTo /D (section.15) >> >> endobj 741 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 148.0447 250.1013 156.8913] /Subtype /Link /A << /S /GoTo /D (subsection.15.1) >> >> endobj 742 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 134.0322 242.0914 144.9361] /Subtype /Link /A << /S /GoTo /D (subsection.15.2) >> >> endobj 706 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 745 0 obj << /Length 2179 /Filter /FlateDecode >> stream xÚå[Ër[7Ýó+¸š"ÂàýÐn"˧&ʌì’,hêÚaEzD2±ÿ~p ¸À¥l©Xžr¹DЧéƒ>Ý &Slÿ)a )©ùTŠærºz˜àéûâ÷Ò®êʇ}·˜üý5SƒŒ¤rºxï¿›@Ò:]Üÿ:»ùénq{·øy~E5çl¶^Ï_ü0¹]¸À‹#HaIê·ÿïä×ßñôÞ²ùa‚3ZLÿ²O0"ÆÐéÄqDßl&?OþãÞÒ{µ Z–ÃØGHÛ¥µ¨úµÇèíp„B” ^JÀê49¿Ïþý8'zV͉˜ý¹Þ÷6-ÏÞV›j¹¯Ú'w»Cµ“D¹DŒ ï]‡ÖäPŽ\*$ˆÔ!G†ÓÒ0Qb|޼€\ŽÖäHµ9ZÌ íîwm:þµÞz¼´A˜cñŠ ¨›S6|6Œ¥³A˜õ•Qã³áä²°&ºÍÆ»û㦳ƛí}õ©g ¬%ZF´bkª@æ” ŸÌ@2¸¶Û‡²©Äq΋Öü•Ðüû”úÉè½o› Dl:¤£¿?°D܈˜N/ ª@‚ŒŒR2$ZA¾å¤þ™q¾P *Ç;ßÈ8ßÁ±MËçnùPí?.WYóSûÇÌbÝUàãÌðɘ_ÔŠŒ7¿1¿ƒµùóG*¶š#Á„‰¨Å TåØöFòùñ:·cŒ`gxÝ Èy`u.)nùüs]=.›Ù`õÇzµÜd-oÛšŒèõ ß` ”Nv÷)1ž¶»]ƒ4ZŽ·»³;ÀÚ”€Ýo6Ë}7!µùYý1³ÏC–çZÒˆÞ€åT”³¼Ï雲Øsgåû¡SÝñru`mNâ ùúúûÕzÝ4ëå;89{9KÖ F(¶#‡ÄãžÑ lHh&C¶—_z¨´ÓFùëTz¼€\éhö¥' ˜.=Yb®ôø¼.¹ô°´d„#Añø£Œ“ `N²n.¾Ùm÷‡Çãê°{lUû›/øu~@“¶êÓ7  ¤™ˆ‰º^ú¤_N;G )ÆMü€œst“ðÕûªKó9S±-õØ(Ž“¨M8™,_pK¤oã©ÁHLFw? Óy¬ÓƒÆç»õö)} ¤!ïÞa¥Cغΰ½2&’{ˆ*¤àfôò2{ÈÁ@³§wžb²óä‰Aç x]rçQiɤDrÄ7›N’y9Éæ${–ÎÒOvž~^órÌIð•:OH8Ùyò4¡ó,_pKètçá)møøÎãä:À:=XÜynv›ãÃöœžc•6ÒDŒ{=§Cxºû–€çeÕ1“ÞD #ÍøøñÍÈm"€h_ÐzŠéÖ“%æZÏë‚[àiÉHý™­÷ìä$˜“ìyZO@?Ýz²¤O­Ç'ýr`‰ eg l^@N€9 ¾Vë §[O–¦k=>ËÜéC1ܲÔã¯Ûü€Lëq°N>Üz®¯ßl÷Ç÷s*fõ «µÕãvSÕ²ìÏhKÚ ÛÐy´šX,@ÖÀŒBJñp OνL_Í&lüædö‚ƒAîŸÞABŠÉ’'$àuÁD¦ËWý×Õs´d^@N2€9Éž¥ƒ„ô“$OÚu€ô³Kà*‹0ˆ`FÇW,/ W±ÖI ÒkÎñìϺf-7ëûWËÃ2üŒTÉRvH0JFˉ%TaLS;›áh/°¸B6ã*? ·Z|A (¦+X–˜«`>¯K®`é3Âl2 ?€ù9Éæ${ž ÐOW°,éSóI?»®ÒÔŸ¢3uÆÌåä*À: äÈ vw¬GäŸÞ¿ÝÕ¿ùëŒÁ‹cŒ8*ZR$‹C±5 &\ÈWI=|2nG@&‡ïbí_‚Œ_áÿ{ŸØLWµ¹˜Ú€b:ø¼XÕËý¾ÚÖ_ƒwú™¡³#|‰¬ZµdûƒbBÚGD^z-ºgÍ\ û+ü.è»Ï°ë>}þPõö[ýõm®ŒJØÿ†;Áqendstream endobj 744 0 obj << /Type /Page /Contents 745 0 R /Resources 743 0 R /MediaBox [0 0 612 792] /Parent 705 0 R /Annots [ 746 0 R 747 0 R 748 0 R 749 0 R 750 0 R 751 0 R 752 0 R 753 0 R 754 0 R 755 0 R 756 0 R 757 0 R 758 0 R 759 0 R 760 0 R 761 0 R 762 0 R 763 0 R 764 0 R 765 0 R 766 0 R 767 0 R 768 0 R 769 0 R 770 0 R 771 0 R 772 0 R 773 0 R 774 0 R 775 0 R 776 0 R 777 0 R 778 0 R 779 0 R 780 0 R 781 0 R 782 0 R 783 0 R 784 0 R ] >> endobj 746 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 656.1196 247.3217 665.0958] /Subtype /Link /A << /S /GoTo /D (section.16) >> >> endobj 747 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 634.2018 190.037 643.178] /Subtype /Link /A << /S /GoTo /D (section.17) >> >> endobj 748 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 612.284 209.2148 621.2602] /Subtype /Link /A << /S /GoTo /D (section.18) >> >> endobj 749 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 600.3487 207.4916 609.1954] /Subtype /Link /A << /S /GoTo /D (subsection.18.1) >> >> endobj 750 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 576.5081 224.6967 587.3872] /Subtype /Link /A << /S /GoTo /D (section.19) >> >> endobj 751 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 564.4184 236.5322 575.3224] /Subtype /Link /A << /S /GoTo /D (subsection.19.1) >> >> endobj 752 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 544.538 230.0563 553.5142] /Subtype /Link /A << /S /GoTo /D (section.20) >> >> endobj 753 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 530.5455 236.4825 541.4494] /Subtype /Link /A << /S /GoTo /D (subsection.20.1) >> >> endobj 754 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 510.665 199.2522 519.6412] /Subtype /Link /A << /S /GoTo /D (section.21) >> >> endobj 755 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 498.7298 212.2035 507.5764] /Subtype /Link /A << /S /GoTo /D (subsection.21.1) >> >> endobj 756 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 476.792 250.161 485.7682] /Subtype /Link /A << /S /GoTo /D (section.22) >> >> endobj 757 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 462.7995 239.8699 473.7034] /Subtype /Link /A << /S /GoTo /D (subsection.22.1) >> >> endobj 758 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 441.0161 265.6429 451.8952] /Subtype /Link /A << /S /GoTo /D (section.23) >> >> endobj 759 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 428.9265 289.3735 439.8304] /Subtype /Link /A << /S /GoTo /D (subsection.23.1) >> >> endobj 760 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 416.9713 287.2318 427.8752] /Subtype /Link /A << /S /GoTo /D (subsubsection.23.1.1) >> >> endobj 761 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 405.0161 342.0562 415.9201] /Subtype /Link /A << /S /GoTo /D (subsubsection.23.1.2) >> >> endobj 762 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 395.1183 303.8497 403.9649] /Subtype /Link /A << /S /GoTo /D (subsubsection.23.1.3) >> >> endobj 763 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 381.1058 299.884 392.0097] /Subtype /Link /A << /S /GoTo /D (subsection.23.2) >> >> endobj 764 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 369.1506 287.2318 380.0546] /Subtype /Link /A << /S /GoTo /D (subsubsection.23.2.1) >> >> endobj 765 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 349.2702 240.1983 358.2464] /Subtype /Link /A << /S /GoTo /D (section.24) >> >> endobj 766 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 337.3349 313.5023 346.1816] /Subtype /Link /A << /S /GoTo /D (subsection.24.1) >> >> endobj 767 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 323.3225 287.2318 334.2264] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.1.1) >> >> endobj 768 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 313.4246 370.2498 322.2712] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.1.2) >> >> endobj 769 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 301.4694 340.0934 310.3161] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.1.3) >> >> endobj 770 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 289.5143 306.8674 298.3609] /Subtype /Link /A << /S /GoTo /D (subsection.24.2) >> >> endobj 771 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 275.5018 287.2318 286.4057] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.2.1) >> >> endobj 772 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 265.6039 370.2498 274.4506] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.2.2) >> >> endobj 773 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 253.6488 340.0934 262.4954] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.2.3) >> >> endobj 774 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 241.574 302.6931 250.5402] /Subtype /Link /A << /S /GoTo /D (subsection.24.3) >> >> endobj 775 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 227.6811 287.2318 238.5851] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.3.1) >> >> endobj 776 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 217.7833 370.2498 226.6299] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.3.2) >> >> endobj 777 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 205.8281 340.0934 214.6747] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.3.3) >> >> endobj 778 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 193.8729 390.4427 202.7196] /Subtype /Link /A << /S /GoTo /D (subsection.24.4) >> >> endobj 779 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 179.8605 287.2318 190.7644] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.4.1) >> >> endobj 780 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 169.9626 370.2498 178.8092] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.4.2) >> >> endobj 781 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 155.9501 374.2939 166.8541] /Subtype /Link /A << /S /GoTo /D (subsection.24.5) >> >> endobj 782 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 143.995 287.2318 154.8989] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.5.1) >> >> endobj 783 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 134.0971 370.2498 142.9437] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.5.2) >> >> endobj 784 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 122.1419 401.4119 130.9886] /Subtype /Link /A << /S /GoTo /D (subsection.24.6) >> >> endobj 743 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 787 0 obj << /Length 2287 /Filter /FlateDecode >> stream xÚÕœKsE…÷úZQÖÂM¿^â<€* $…Q&ÆU¶dd ’O5Ýs{¤¾ê±3ÎP©Ä’}®r¦Ïܯ¯¤‘Ù”ú?lÊ„ F[9ÕŽF¥ž.n'tzåøzÂÑiTBÙ7óÉׯ¤š:â4×ÓùøhŠhÇøtþþÝÉùó—ó·³Sn™V'××׳?æßO^Îãÿ 1T³úñÿž¼ûƒNß{;ßO(Ϊé¿þ%Ì9>½é‹cá;7“·“ŸãC‚Ÿ>”:.A±Jø’Xh;Qý£õU£y—Á0âTùeP†p¡d\Îá2]”ÕËÀ%Ñ„ÍN ¥'/ªÍåõMõÞ/‰ªïÝ/Ö×w›ëÕ²»0Üêúôþ{ÇUGŒq'Ó6õEf§Ê[ÙVÕzïD‰K+á–öˆ `‘YŒŒï";_-ï7ëíb³ZïRû*†—|ûÅj±½­–›ËCq íWBwìwOË :bZE„²ÓƒG ­o,î{Õ7­àêXA~ ôè>j³þÆÛñ«z~þ;¥|svv¾ºÙÞ.Ïξ[Î$=ùgÆÕÉåÍõû7«úÖ¿ÛÛ?«&‰ó›ËûûÝÍ7Õ‡j]-Õ^ ¾s(w6=˜nA„‚p5Ô Â-Àñ§Š-oP€µ@…ž@­ÄbžZ¨±H-èkÌÔ2ùȨ#’IS(À" ²ÙÔêÚ?L­£¦jÉÔôàìø"¦Ê"•+Ä–Ÿ `A–[àq›l?pý4cþþúò¶Úôâ—ï ߬sXÝh‚êÈÁÿScdz,Côß´ˆ¢R÷,@ú ÊBGWj1‹.ÜX@WâkÌè²ùÈŒ Jö˜‘aYÅÈAWj?‹.ÜtDWbzð"b4#ÊÉrrµz \ªY—ãÖÅêb{sóëÌ?§òàÚV= ¥±Ôòôºn[hC¬Õ:±ýì½ Ñ–O^°ë… Y<_‰Å<¾Pc_Ðטñåò‘ C´å“,À" ²Ù0øJìçñ…šnñMA WÄpÛcòÀ‚¬‰€ÑÚÒ‚½¹\^U/×ëUŸK=¼ŒÄ;î÷àÕ¨ŽxšîFÞÄó—j æMÑcXKYÌ£ÆÆyŒ¡Î"Æ ±cÌÐ|f”Ël) `™Y›ßeö™9–øÏs uÝr º<ƒÀiý¤¢E1Æ€¡XP…Xb¿­WË«ÝùÌÒ“OwU¿—»´5*=†/w=ˆpçñå.è|ÀS_C5åC,@Ný(‹+ÿx\¥³¸Â\%ÆÆŒ+–ÏL+â/Ÿº`–Yµ™ ‚«ÔW¸ëˆ«ÄõàD°øÙÄ9S>vÁ XA2àb½ü¸ùöÅ/=àD¡TªŽãïÙ=¨ŽøÔúÓ‚™Ôçÿ¦q$'TòòÙ `d1´'À.ñ˜‡ê,Â3ìT>3A µ¦|6ƒXfAÖf6 ìÿyØ¡®[ØA×Ï—ó]/zDÐê±U€ØðCÕ¾Ýøj»\<¬oÁ’ G¨3,µÛ]ñ ÂM ©ˆõlý“‹"îTf´-ßw@¶ïYHCÜwšIÙß©–÷>ƒG Ëõ»!B³Î‘ì½·Ò¨Žø—~ßâR¹Ôÿ·ùMC8I8gåÓ,@Nÿ(‹+þøM#õ˜Ý4pgaÓHŒxÓÀ2³žæZ«òÌ@–Yµ™ ²i¤þ³›î:n‰ëÁ3DÆ?“e¬ü=,@He!Ù!իﮊ+ä÷O¸©¡ºã·ÛCAuÄeì!hrÌ=Äó=¤¬?}v –õ(Àz(Èb~Oà^â1Ï=ÔYÌ sfùAMHM$íY«ÇkTm`Ã@šÏ3³Ü"X~¾Õ’H©Ê_KƒØúYÀgš”SÇÙQ÷fåÄæóµƒË¿¦,8'ÒQ]¾l ²ˆ:°_.7çëêrÓg<–”ø'y¶ã½MPq£†Ÿ1¤W%¾Ÿ{Lh ë• ‹Ñ—Á bA20!v±z»]üÕï]4éÖÚŽó½©l':bW(Nœä.µû]‘¿tœ Klýþ_qW€¬+‚,&ò†%óCEŽAcc&’×ÄJ×cXfAÖf6 Éÿy’¡®[’A׃g‰ãŸ‹['{Œc #Y… ìA’ùQlý°È«ÍÛíÝÝj½ Uö^ #Z¦s{ïÅ4ª#æÃç\ï_ôü…âœz€ W~Þ·zì´oTqÅŸ@*h0*ÌVäp5fLåÓbŽgEùÀ ¼¢¬ lL¥þ³˜Â]GL%®Ï à„G¨?óŠ1 LEYÈÀu1u½¹ï{m8UDiÎ:¦\°ô :b5^°”XWïä/&gÚjDùX °Þ ²˜Ûãa—zÌÒwp—3ïÌ”ògœ-Ë`–Yµ™ ûÄžw¨ë–wÐõàD.Éútåc,ÀxdMœâÝÇEu×¾Sļú3NÂuw?¨ŽØ‚ÅMÇî—hê¿úò½"˜_ãA«Ç:¥QÅž7h0Ï6ÌVDp5R²íâÊ_VÃjæ(Þ#/P€dmbà-ñŸGêºEtý¹CàÙ_ædZ|ráÿ2â”ú ¿è üv*Fp¤TSMœ©GØû®êµx]-ë§¥¡Ïç3ÇOÂ'œ_T‹Ý ½ûÂiýÙœúÓgŒŸ©æÞ‡ú÷8Äñ±áìîÞŸŸBö?]U{©×ôÆ©C ö™|Ɖendstream endobj 786 0 obj << /Type /Page /Contents 787 0 R /Resources 785 0 R /MediaBox [0 0 612 792] /Parent 705 0 R /Annots [ 788 0 R 789 0 R 790 0 R 791 0 R 792 0 R 793 0 R 794 0 R 795 0 R 796 0 R 797 0 R 798 0 R 799 0 R 800 0 R 801 0 R 802 0 R 803 0 R 804 0 R 805 0 R 806 0 R 807 0 R 808 0 R 809 0 R 810 0 R 811 0 R 812 0 R 813 0 R 814 0 R 815 0 R 816 0 R 817 0 R 818 0 R 819 0 R 820 0 R 821 0 R 822 0 R 823 0 R 824 0 R 825 0 R 826 0 R 827 0 R 828 0 R 829 0 R 830 0 R 831 0 R 832 0 R 833 0 R ] >> endobj 788 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 654.0823 287.2318 664.9862] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.6.1) >> >> endobj 789 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 644.1844 370.2498 653.031] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.6.2) >> >> endobj 790 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 632.2292 387.0261 641.0759] /Subtype /Link /A << /S /GoTo /D (subsection.24.7) >> >> endobj 791 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 618.2168 287.2318 629.1207] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.7.1) >> >> endobj 792 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 608.3189 370.2498 617.1655] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.7.2) >> >> endobj 793 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 596.3637 394.6173 605.2104] /Subtype /Link /A << /S /GoTo /D (subsection.24.8) >> >> endobj 794 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 582.3512 287.2318 593.2552] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.8.1) >> >> endobj 795 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 572.4534 370.2498 581.3] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.8.2) >> >> endobj 796 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 560.3786 360.8045 569.3448] /Subtype /Link /A << /S /GoTo /D (subsection.24.9) >> >> endobj 797 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 546.4857 287.2318 557.3897] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.9.1) >> >> endobj 798 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 536.4683 370.2498 545.4345] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.9.2) >> >> endobj 799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 522.5754 354.7075 533.4793] /Subtype /Link /A << /S /GoTo /D (subsection.24.10) >> >> endobj 800 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 510.6202 287.2318 521.5242] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.10.1) >> >> endobj 801 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 500.7224 370.2498 509.569] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.10.2) >> >> endobj 802 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 486.7099 387.6838 497.6138] /Subtype /Link /A << /S /GoTo /D (subsection.24.11) >> >> endobj 803 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 474.7547 287.2318 485.6587] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.11.1) >> >> endobj 804 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 464.8569 370.2498 473.7035] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.11.2) >> >> endobj 805 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 452.9017 306.0008 461.7483] /Subtype /Link /A << /S /GoTo /D (subsection.24.12) >> >> endobj 806 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 438.8892 287.2318 449.7932] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.12.1) >> >> endobj 807 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 428.9913 370.2498 437.838] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.12.2) >> >> endobj 808 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 417.0362 340.0934 425.8828] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.12.3) >> >> endobj 809 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 403.0237 398.7323 413.9277] /Subtype /Link /A << /S /GoTo /D (subsection.24.13) >> >> endobj 810 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 391.0686 287.2318 401.9725] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.13.1) >> >> endobj 811 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 381.1707 370.2498 390.0173] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.13.2) >> >> endobj 812 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 369.2155 291.0668 378.0622] /Subtype /Link /A << /S /GoTo /D (subsection.24.14) >> >> endobj 813 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 355.2031 287.2318 366.107] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.14.1) >> >> endobj 814 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 345.3052 370.2498 354.1518] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.14.2) >> >> endobj 815 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 333.2304 340.0934 342.1967] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.14.3) >> >> endobj 816 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 321.2752 341.4271 330.2415] /Subtype /Link /A << /S /GoTo /D (subsection.24.15) >> >> endobj 817 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 307.3824 287.2318 318.2863] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.15.1) >> >> endobj 818 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 297.3649 370.2498 306.3311] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.15.2) >> >> endobj 819 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 283.472 337.004 294.376] /Subtype /Link /A << /S /GoTo /D (subsection.24.16) >> >> endobj 820 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 271.5169 287.2318 282.4208] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.16.1) >> >> endobj 821 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 261.4994 370.2498 270.4656] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.16.2) >> >> endobj 822 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 249.5442 350.2843 258.5105] /Subtype /Link /A << /S /GoTo /D (subsection.24.17) >> >> endobj 823 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 235.6514 287.2318 246.5553] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.17.1) >> >> endobj 824 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 225.6339 370.2498 234.6001] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.17.2) >> >> endobj 825 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 211.741 392.346 222.645] /Subtype /Link /A << /S /GoTo /D (subsection.24.18) >> >> endobj 826 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 199.7859 287.2318 210.6898] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.18.1) >> >> endobj 827 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 189.7684 370.2498 198.7346] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.18.2) >> >> endobj 828 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 177.8132 306.5584 186.7795] /Subtype /Link /A << /S /GoTo /D (subsection.24.19) >> >> endobj 829 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 163.9204 287.2318 174.8243] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.19.1) >> >> endobj 830 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 153.9029 370.2498 162.8691] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.19.2) >> >> endobj 831 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 140.01 325.9355 150.914] /Subtype /Link /A << /S /GoTo /D (subsection.24.20) >> >> endobj 832 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 128.0549 287.2318 138.9588] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.20.1) >> >> endobj 833 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 118.157 370.2498 127.0036] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.20.2) >> >> endobj 785 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 836 0 obj << /Length 2477 /Filter /FlateDecode >> stream xÚÕ\]O#É}çWø)²¨­ïEJ`ØÌ®–$;ž(Òfµòšɘ‰1Ù!¿>Õ¸«úVÛu»Œ1ck4ÂÀ¹Íé{úœºm—ÍÔÿc&1ÚÊvœ0*õ`zwB7þ—ßž°tQ§ö—ñÉ7—R qšëÁø<š"Ú1>_ÿ4<ÿÛÕøÝÕøÃè”[.ØðvÄè𿣟Çß¼Ç?j1T³úOüçä§ŸéàÚ3úî„á¬üî¿¡„9Çw'Bú"ÆXøÉìäÃÉ?â!ÁoŸK7š ŠX%üI¬?»¨þÕâ¦Áü;añ'«|'”!\(;Á9ìDÀEXÝ . ÷\|#(þPÝýZ-ücE‡—óéòö~¾úîâ~úxWÍ—“çuú$„#Ô6€ÖO+ zx ©ˆ„«i’Ñ©ò÷û…Qÿ•Q¾vHëEãb =5ni¯" 6(²vÜ «9 ÏÏÿM)_>œ]Þ..GL 'ËÉl¥Èùlòð°zøcõ©ZTóiµ& •D0­;Ä×®·ÕCWPKü¥kRºo¢Ì.âÅËÞ»YpU©AEå[yé¢ZNngÕuãŸêaº¸ý¼É=Üêú:×)ÁŽF„ÓâN¦mÂêPÚV.ßJ¡-× `‚X«_)v~?X.§Ëû&ÿµK~Œg¡v„+Ñåßµ\@õ°F¡ê²~mD>ð¨#’ISx  ¼ "ðnà½ø¸¼M—÷¿L‹ÉÓ/Ÿ—‹šé7—~ýUÒ¯ÿTx*õÑþ¸‚¤—zó0Õ þµá Žh+LøSï!@øŽG†«»Ï³É²ê‰c)4±¢V3ikçÚˆ¨žfJɉ¦Š§ÍLÄeÅ NPΩ\y"ÂÄaÅ}y&¦³¡ˆ3 ©˜;èX”YG*«ˆ¢R; ŽŒ° šÈ:òüÏÏvÜdEîˆQÌ[q¼á –(cl¯õnVd>O­d~v­P=]”~„fÖé´‹/•:úÈ¢äó?,Àü`Qêü™pÌûeý ‰«?5#ÊÉr{¶xÌ *(&óæügÞ~aqR…;Ÿÿ K»¹f΄÷PrC´öç{Ø#¯Ê{RúIAØò©`ž °¨ðžL8æ=‰2‹ž„ÄÚ“*ïIaVã]±)AæÊ ¢)Ä–#ë<Ì/œ–h©ß™;ްõAŒåž®Y³Aõt²]7a'_*wôWÄp»Å\ 0X”{&óE™EBbÇêQ&ˆ1b‹¹` ° šÎzô‡ÉrúÛÕä®ÚdP)‰vJÁÚÉ5Þ|ŽvP=}”Â_äBtú¸IÞú^Sç=I±Ìn1˂̓åÝÁ“ Ǽ'QfÑ“ØA{Rg=)­#V—[àGTPÌôòñn£)±‚²cð#'Rs™vsÍŽ ïaœea·–7xGC5å³,,@<aQá—{2å˜õ$Î,x2!v¬žÔŠ8ÅËgYX€¹2À‚h·åß—‹ÜR©ê¥…™#°¦Ÿ:®ÓÔµçcTO+ãó±I+×ÖH“÷£Ä9S>·ÂÌ¥ÝÁ ǼQfÑØAûÑäýèU§’o±H‚ÌDsý~ܼR*¿´(-ŽÁŽ’Pku§§kvlP=lí;¹õÈ”¬°³c€Eew°cÂ1oG”Y´#$v¬vd>ÜDù €ÇÌØ ÅŽ8Y:|ú\eæVe?‚gzüHÊ™iK7Ì­Ï ¼‘íÜ Ù£±Í“ú›<£·˜[AfÌ‹2ï`Ì„cÞ˜(³hLHì i³Æ®~!˜•Ï­°±f„ÑXÖ›ç‹jz3¿ý_u-Z¾—Ê‹¦µéžIwcG@õðŽúëËÿ(á¿ÂÕ-¬·ªÖåÓ%,@\aQ€—»&å˜u Î,¸&!v¬®1þ2a¬|º„˜k,ˆÖÝó׋åÖàÎk^w:¥ÛÕ/ zH J‰Î¥$S9—·›²Ä_¬¬Ün ³[€Eåv°[Â1o7”Y´$vÈvcù=‡Bj"éšµxL²Õ*Æ_g»uB7»Û%6[CŽ_W‹Qþ>OJeË£`Ñ`A±}ggïç#Y¿#€«ádv{ýî˲š?x-^27b©ížÐÚÜРzN£àiì®Cþ6XÔOM;ªËM 0WXÔa‡ K8æƒ eƒ ;è C†=¨„ÚbؘhÖŠ¶—ÍÓ)ÿìæiœuÜ<°Þ¿!i¸ó7ê––o°I° "È‚{7¹©.&ËÉK¬¾{¦sBk Ö zN#&Xrû4Cš«òe fˆ°¨ÃË,å˜M0œYH°„ØA'X~~æFmÊ%‹pL°¨•k/Ù™g“ ãs ðÝãcºhîÈò¹ `©`¡ýjSj]Ý_=ÎfÍf¹Ùã6)%}oqè*P=´…âÄIîRÚ_ÛŠ£\ù( 0_X”f‡ K8æƒ eƒ ;ä ã4/š°~²—å£,ÀD °V´ýÄYÂ?h(ë6Ò ëý‹Çkb¥ÛbX¨XAoµÓß¾¯G±ª~ïÓïõÛÍï×[¤›ö ¬_ôIÏdMŽÕÃ_hC¬Õ:åÿöÖ`’X'·Ì@f‹ªìg Ç|ž¡ÌbžAbg,/õ+£påšµxL²Õ*¶Ÿ0ƒäóY†Qn£ PÞûCâ0ûä¬(Ï`’dènË|¾|÷e¹éͳ¼~u÷Þ½ L½ÝŸdÚÅî…P=½«_`²‚vz÷dÆ곧؃°1a„Åkàå¹™rÌæ&Î,äfBì s3ÿÚók.5¢|„˜hÖŠöJ//¤Œ³¯/à<à ͯ«HŒ<åïs˜- a¥én¥Ým¬7ƒh*;ô×>Ó¥Aõö‰J”:%}(nÊv“u2ˆòÑ`n °¨Ý˜pÌG Ê,F $vИC;ŒpZ¾o à1ÉT«Ø^FÇ„|vtD)ÇÑR~íöçßÉXÍ’oÑP€ `­¯ôyb)ãü „òŒ+¤ù–†PÙÏ•³ÎßéÈ·#þ?#N©WøÌ9ðYyŒ26iJ5ÐÄ™zrý´ÎªîÓ·Õ¼ZøÁº‰½ ßxäø0<;{QMWôê §Œ­1}Æø™j¾ûT/{Áta5\}÷ëS¸,¾<ÝTkDýÆiœÚÔ°ÿ€¢Ð)endstream endobj 835 0 obj << /Type /Page /Contents 836 0 R /Resources 834 0 R /MediaBox [0 0 612 792] /Parent 705 0 R /Annots [ 837 0 R 838 0 R 839 0 R 840 0 R 841 0 R 845 0 R 846 0 R 847 0 R 848 0 R 849 0 R 850 0 R 851 0 R 852 0 R 853 0 R 854 0 R 855 0 R 856 0 R 857 0 R 858 0 R 859 0 R 860 0 R 861 0 R 862 0 R 863 0 R 864 0 R 865 0 R 866 0 R 867 0 R 868 0 R 869 0 R 870 0 R 871 0 R 872 0 R 873 0 R 874 0 R 875 0 R 876 0 R 877 0 R 878 0 R 879 0 R 880 0 R 881 0 R 882 0 R 883 0 R 884 0 R 885 0 R ] >> endobj 837 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 656.1395 340.0934 664.9862] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.20.3) >> >> endobj 838 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 644.1844 305.3129 653.031] /Subtype /Link /A << /S /GoTo /D (subsection.24.21) >> >> endobj 839 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 630.1719 287.2318 641.0759] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.21.1) >> >> endobj 840 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 620.274 370.2498 629.1207] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.21.2) >> >> endobj 841 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 606.2616 437.8347 617.1655] /Subtype /Link /A << /S /GoTo /D (subsection.24.22) >> >> endobj 845 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 594.3064 287.2318 605.2104] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.22.1) >> >> endobj 846 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 582.3512 412.3803 593.2552] /Subtype /Link /A << /S /GoTo /D (subsection.24.23) >> >> endobj 847 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 570.3961 287.2318 581.3] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.23.1) >> >> endobj 848 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 558.4409 419.5733 569.3448] /Subtype /Link /A << /S /GoTo /D (subsection.24.24) >> >> endobj 849 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 546.4857 287.2318 557.3897] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.24.1) >> >> endobj 850 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 534.5306 411.2745 545.4345] /Subtype /Link /A << /S /GoTo /D (subsection.24.25) >> >> endobj 851 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 522.5754 287.2318 533.4793] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.25.1) >> >> endobj 852 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 510.6202 427.324 521.5242] /Subtype /Link /A << /S /GoTo /D (subsection.24.26) >> >> endobj 853 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 498.6651 287.2318 509.569] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.26.1) >> >> endobj 854 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 486.7099 423.4586 497.6138] /Subtype /Link /A << /S /GoTo /D (subsection.24.27) >> >> endobj 855 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 474.7547 287.2318 485.6587] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.27.1) >> >> endobj 856 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 462.7996 438.9502 473.7035] /Subtype /Link /A << /S /GoTo /D (subsection.24.28) >> >> endobj 857 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 450.8444 287.2318 461.7483] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.28.1) >> >> endobj 858 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 438.8892 435.0848 449.7932] /Subtype /Link /A << /S /GoTo /D (subsection.24.29) >> >> endobj 859 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 426.9341 287.2318 437.838] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.29.1) >> >> endobj 860 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 414.9789 423.2097 425.8828] /Subtype /Link /A << /S /GoTo /D (subsection.24.30) >> >> endobj 861 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 403.0237 287.2318 413.9277] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.30.1) >> >> endobj 862 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 391.0686 387.6636 401.9725] /Subtype /Link /A << /S /GoTo /D (subsection.24.31) >> >> endobj 863 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 379.1134 287.2318 390.0173] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.31.1) >> >> endobj 864 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 369.0959 292.1628 378.0622] /Subtype /Link /A << /S /GoTo /D (subsection.24.32) >> >> endobj 865 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 355.2031 287.2318 366.107] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.32.1) >> >> endobj 866 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 345.3052 340.0934 354.1518] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.32.2) >> >> endobj 867 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 331.2927 384.8045 342.1967] /Subtype /Link /A << /S /GoTo /D (subsection.24.33) >> >> endobj 868 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 319.3375 287.2318 330.2415] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.33.1) >> >> endobj 869 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 309.4397 370.2498 318.2863] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.33.2) >> >> endobj 870 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 295.4272 388.66 306.3311] /Subtype /Link /A << /S /GoTo /D (subsection.24.34) >> >> endobj 871 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 283.472 287.2318 294.376] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.34.1) >> >> endobj 872 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 273.4546 370.2498 282.4208] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.34.2) >> >> endobj 873 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 261.4994 350.2741 270.4656] /Subtype /Link /A << /S /GoTo /D (subsection.24.35) >> >> endobj 874 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 247.6065 287.2318 258.5105] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.35.1) >> >> endobj 875 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 237.7087 370.2498 246.5553] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.35.2) >> >> endobj 876 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 223.6962 366.3741 234.6001] /Subtype /Link /A << /S /GoTo /D (subsection.24.36) >> >> endobj 877 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 211.741 287.2318 222.645] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.36.1) >> >> endobj 878 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 201.8432 370.2498 210.6898] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.36.2) >> >> endobj 879 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 187.8307 375.2901 198.7346] /Subtype /Link /A << /S /GoTo /D (subsection.24.37) >> >> endobj 880 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 175.8755 287.2318 186.7795] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.37.1) >> >> endobj 881 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 165.9777 340.0934 174.8243] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.37.2) >> >> endobj 882 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 151.9652 307.1566 162.8691] /Subtype /Link /A << /S /GoTo /D (subsection.24.38) >> >> endobj 883 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 140.01 287.2318 150.914] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.38.1) >> >> endobj 884 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 130.1121 370.2498 138.9588] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.38.2) >> >> endobj 885 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 118.157 340.0934 127.0036] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.38.3) >> >> endobj 834 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 888 0 obj << /Length 3031 /Filter /FlateDecode >> stream xÚÍZKsܸ¾ëWÌ)EUy <ùÐ1V¼ö¦²›ØòÉëÅ¡4Œ8ä˜äX;ùõéF’óLÖÞrmy 4@£__#1ã😠¥XÆz&’ ®ÃY¶ºâ³'üéJ8¦yÏ5²ýõþêæ6³„%¡ g÷ÃÕ !g÷‹O¸žKÃׯã\v-õîêl³Ê«.튺’ФÎÏ÷?_ýí¾ßy° `îûåêÓg>[€˜?_q¦’ØÌ^ Ã™H9[]) “„žR^}¸úW¿ä`ÔN=t^%cØ6–f1œ™¸p¬yrLï‡úÑÀ/$êÇDL*£{ýH9ÔçëÙP?Rƒ$×óŠnoÿùöî£S[™¶NgïóǼɫ,ŸªI&!hÇD³áö{§ê¹ÎH©8g¡J’±” %ä?ÌGpø îyL$œÃÌBm˜ŒùYÓyþùpÂÓí­Û›Ž¡ƒƒ4wy—e¾pž·YS¬­{O͇¨×p"ãÔ\žëŒd2QL„ñX°ÌZc£ÅÇñ®¤¹Üf;þS&s\;‹I²Øëºj»f“uuCFûKo»yœ¬&«Ö3j"ü4£x¦Ó"«È0e0ß DþÖêOŽ«_ ’Æ—ë0á”<ÛΊ,ð|õ;-¿ÙT™Cƒ³:‡x z,ñTéžëŒœ "GûÓ"è¨E(Ô,ä ÓBG—‚“& ÁºÎ"šOèþ:æAúPæÿ P£™ ½‡BŽëŒ¨;ŠúC&4¥ŽF”I"¦MryFN8Q=[o¿ÿ…Æ2E¡Ó’y ö#£ÒÇf¸V—m0á”Ñ<ÛÎh߈ÆòE¢ÓR÷P4’ú[Á7B¤˜ÑÉåõÛpÂ)#x¶¾%>ŠE§åôX4óÏ s‹L(˜IôÅP4à?DžË›C¢ÛÛ_ê›lùº.7«êrXR°”JŒåß‹ ÇtZjF,ŽÃp$õw2Äñ*ü 1¾¼LN8ž­·Å•‘ŒÇAå¤d=¨ û¡AåxmmTÄÂXE—m0á”Ñ<ÛÎhßTFò•“Rï@e(õ÷7‚F2PáG‘¢ã9ðsð­kÈlb¢™,ÂŒ»tƇþ±ËJ1xí’ñiFŒ!4(ŒƒX4—„ÉiʬY ÍÓ¾cZqhéˆCÕ¦“#aèùz6˜<×¹½c¸“%:ïÝä_6E“ïí­„aIw…ñÞ4ü<ó­¿<×ÏØ—ÃÄCÏÝ[ÙêàÍ»ûï~ÝÃLˆ(>£ˆV®Dæ"d‘ŒÄE^©ÁÀ¼’³È$ã'X­ džE˜MäÖ/ßU]s-LP/6Ùig„ù"ä‹HÂk&µ8›Ívb ‘‡G²Y¿«g;åaÂ@¶ÑrÀ}ðÑÚsÛ;TŒG`ìÑÞD®ŠMVô­þg¶uP7Ä2¢!ŽÐl¯T)P|XRW»ï2§¤pô²xhÒf{ÌZ‘Øcèw§ÏK±ÈË--µiacPÞ¤™âºÈm •Š~iHÉqðˆ)j–`•VÅzSBú©žh—Æ~ㆿ{>8Åï…½ð#õÝ*}ʉõþZ™ I«v]7‘>lÛ._] œ,ú½ViGZ.ž§Ì[8^Ê`n%æ^TaE½_â1ÁGanYÖ׊òI˜¿˜ü>\Pê©¥ñuSXüúsEs¡>A‘q´~¤!kÙ—öB9‰šV "¶õ*‹HÚœ.D´t»¥! D»‘Qq|`õW $ž/Ë"[¯U0õÑäýúÈþõ’—%Ñ` ÄúŠ6ËËz/Ü‚x ÇH¯%n˜UÜîQÇ_oÀ;p¥-õÖà&¨$°_ Gº àû<]ä…5l*òûUQ)xCCä—¢[RË©]êàEØtD¶‡b•Û’(Vw@YC(ÁÞä@wó+ ì¯i‚EÚ¥4Úæ)mr"-Šù!U4Ÿ©H¸ SûEƒaíÕ´uÖÃ.(i“–¯°´’‡Š<àW°%¤d1ªÔ¤(v¹`ÙuëÛ››ež¶is­ÀKØSû˜± úì©F}~½ïooÚú±{!žüÆ Ó7ز[•´Ý(ÍûýFç~W‘ãÛhÒÐéCæÀ¦=¿VÚ©I¾Ôöƒ6bsLm¸v¹•ÚÒÆñ OÛIûÚ²ë6õꀾ&YÂ鋎½¯ªè=V»4“ïÜÞà‚õÜE¹çŸ'€’½uOÂX²d*ÃĈçܾB£}{(2„|YcŒ…´b#%²È†#ü¡ni3$ ¦>1·Ô§Ü&mVj©&J19Ñ}œ†Þ,hÙçHÓrˆë7õæi9ÊÞa°,ž–ór˜óˆNI¥(6¢à¡¬³ç–F ÂAîw Dd—üÃà­Mi¸ÔüÎ «¢sŒoïBØÇ@N%‰u4¨k“ X­Ë|^1§üc þ⩲i/¦ „Ô%eûØå"bÄ+wKT{øŽÒ#0¹£Á%J ù¨š&>ªEDH–ÓÜbR€A5Ñ_ DÛjŠÎ1gà-5É)°5´´‘¯%`„ª$7áaKß57Õ"t&¨R äH8YeÑZý÷ˆ Ý5°Lëá§£N“¯á2`³2¾½ûØ:@|F¿¶µÍö›u³ðCU8NÉìIäœb@ŠƒÌ¾7a%£¿( ·èè1ã•+ÜàáÊtÛuÚÜR·¿Á@/üÚùv“–Äâu“kú¦Y–·Žf%ÜOŸR‡Ló0vpƒÎkÏÏžìÿ¡ƒŒ %CE;»D/È@äåռߘjM¿êÈHYÝœ°ŸY÷×=•Ñá’Ì”‘S)&9½ç:··’,ŽAÕ£½m"AùDâî bjJ/1¬sYÛk@›}…B¥ÔI»zUd6A1`¯‰ Í¡ëAЉ íltÑuYS¾Œb”Š\}Çñì6…JyÝ«â?ýkÈ4Œº<[VÅ— º{Œö©\i[¾"Z¶¬k—_´(lØ=l(wd<‚© „zÚ%uû(Tpö§6Ïw«HVÃB&ïJEŃ×ËtÝVê@¨Ï®D^æÕ¸ˆíKW’–øëÊÌEW¤¥SŠÐ»~&&ì.wE5¤Ý©[É87z&bÃTûM¥çŸ'pнuOGô'f"Å48<×™½û,w!RìÖ èe[Së!§oVƒó)bvé>¡Œr$ç\ÐÚ•±v…­£®ó¬À³eבˆàd—§_"h§þݵ=|qhå2÷0-ô¸ÌP'§*‚.bi„V 2„¹øf8á”R=ÛEÏ0c)Ž>ÜÙ;”ø×ib¼w•#à¥MaqSÇCñg±‘½I"9¥îãìf+¯ÒOXÐöÇ¡Ž¸ì©‡B¢"rÅ’\Q=‡,OyeQ™2mÌFc“®ñ壩èšn] ŒMKO(@Â6}&!S$u¡‹“èܯÍ=ÿ|8áÀƒéÞº'k50ép*Åô¥ÒsÛ[kPŽP㽋öj'™$¶Îi$%ùÒ‘»Òs:Þö]Ý„ ŠéÓò@ÙÒº—¢,Šö™ZþÆŠƒ¤m4‘`àWÉ$[[1¬´]C­²Ø ÑhQlÑ¢¯ˆÇ‹ÿµÑ-c‘Öð)Ö鄾»€þºG}ÁŒÌI…{“)PV@ª†œ0~]†Pÿð_ÌÓLÉáÿÂõ4Rñ(yx©P×?ÙÐéü/‡þÅéþ:‘Á&÷¿GeÔé#¹p2,Â[!oëÙ8ö?ZÿšøaëÊú} Ñzz(ì¿Ðe1endstream endobj 887 0 obj << /Type /Page /Contents 888 0 R /Resources 886 0 R /MediaBox [0 0 612 792] /Parent 705 0 R /Annots [ 890 0 R 891 0 R 892 0 R 893 0 R 894 0 R 895 0 R 896 0 R 897 0 R 898 0 R 899 0 R 900 0 R 905 0 R 906 0 R 911 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R ] >> endobj 890 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 656.0199 297.702 664.9862] /Subtype /Link /A << /S /GoTo /D (subsection.24.39) >> >> endobj 891 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 642.1271 287.2318 653.031] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.39.1) >> >> endobj 892 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 632.1096 370.2498 641.0759] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.39.2) >> >> endobj 893 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 620.1544 340.0934 629.1207] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.39.3) >> >> endobj 894 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 608.3189 292.4716 617.1655] /Subtype /Link /A << /S /GoTo /D (subsection.24.40) >> >> endobj 895 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 594.3064 287.2318 605.2104] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.40.1) >> >> endobj 896 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 584.4085 370.2498 593.2552] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.40.2) >> >> endobj 897 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 572.4534 340.0934 581.3] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.40.3) >> >> endobj 898 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.7161 560.4982 362.2193 569.3448] /Subtype /Link /A << /S /GoTo /D (subsection.24.41) >> >> endobj 899 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 546.4857 287.2318 557.3897] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.41.1) >> >> endobj 900 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6302 536.4683 370.2498 545.4345] /Subtype /Link /A << /S /GoTo /D (subsubsection.24.41.2) >> >> endobj 905 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [252.4338 467.3018 279.9004 478.2058] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 906 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [314.9784 467.3018 358.814 478.2058] /Subtype/Link/A<> >> endobj 911 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 408.7655 160.2387 419.6695] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 915 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.5197 289.8306 177.9862 300.7346] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 916 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.8823 218.0996 431.3489 229.0035] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 917 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [451.0092 182.2341 478.4757 193.138] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 918 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 140.6994 160.2387 151.6033] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 919 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.3764 128.7442 242.843 139.6482] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 889 0 obj << /D [887 0 R /XYZ 133.7684 692.1046 null] >> endobj 6 0 obj << /D [887 0 R /XYZ 133.7684 521.7734 null] >> endobj 904 0 obj << /D [887 0 R /XYZ 133.7684 487.8405 null] >> endobj 910 0 obj << /D [887 0 R /XYZ 133.7684 458.3355 null] >> endobj 10 0 obj << /D [887 0 R /XYZ 133.7684 453.7278 null] >> endobj 886 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F58 909 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 923 0 obj << /Length 2450 /Filter /FlateDecode >> stream xÚ¥Ymã¶þ¾¿Âß"gEÔ )-ÚÙ½»ô4HîÜ6@’´DÛêÊ’CIÙÛß)K^­U X,4$‡3äð™ÒlÀ[±(òOãÏBŸ1_å§»`u€Áïï˜eÚ \›1ÛÃöîÛq²ÊüŒ‡|µÝ¥%>ÏX¸Ú¿zÌ×÷Ý®é»õ&L¯;–-Qÿu/+ #žE^¸þ}ûÃ݇í |$“ù"à Uÿq÷ëïÁª€•þpøQ–&«gh>˲puº‹b˜Äs=ÕÝ—»Ÿ‘£Q3un˱~,²dfËa8»åDøa”DfË'Y—ç¾’*`c)ƒí*" ÙI¤ÐºéÇ«q­öJ«:W­¿ÞÄAä}\³Äk4Íù-ÂJµÄú\vvö¿uÙÙù2‡©íDhàUåNKýB½`w01ìrØŸ% 3+.T[j³\y]Cß§5 <¥ÎØŠ­<èþøiû…¨f÷•w–®é[”íQeMÛ—:§»fTá„Ô©1k:oΨñeÍöf©·u|²(Ê®ljÀÊdý²AJœ]¤|•u®•lÕ`ô¡UÛô:W†ZýÑ—ÚwV”¤Á\VUY¨ï¬›ƒ–'j˜-šéÝšy½¶Í½91o›“š[/œd¤ðh¿–»²*»a±ô¥c$•Æ[ÿm bŸÇ¡0ˆöÃAŸyW1\'bÅ_$ÙØI*|–"Úg}9L/¾¼^OG4»D”0Âí83f»át ý4г¶íRŠ&ïOª¶¡¦’/¶}¬=Û³ÊKôª\"¶Æ‡gÙ®6…‰ŸbT›à>XžÏ£- ü›ñ„×[z-·ôøˆkëÚW«Hà Ò ¼ZÅ•9®%Ý ˜SéT· ÆÁpÂËãaÂça[³£-yäÕ„çŽZ-İhK­Ñ‰pçû<¸·¸–³= såªèµ•)ëb2$£Ã,=c (f£]¹¼ižvðOœÄϹˆ`2>ËüH8”ë0ñþÄ­¹PAû”§såzš=}ûV,²l¤ÃàÑœpë­µ¢Ó41"EùªjPÙ³ 5éØˆ±˜,…Æ%}ª²íˆ2 Ö磴=Æ'ð‹ËÅuPˆK)Ôë€1Ó ‹=KíxL4a˜xËf.¦M³I¢ì’¼¢Px;™Cˆ„ÔÀ¼ƒªAªÇŽBË·;ÙSÅI#“­ë ïÈüÄ«ÓÊJq¼4bíG}âr ÑŒ;“dzÌ‘›@«´_c øî}û–Ò» [Â÷—/?}x|‡4·Q$˜¯³]˜Ÿ¤ÛèòPBZ«^¨íR1ÊÉøxúI¾ÌÙ½UzF­æ5r¯Â$ÄBÙ g2”M> øØ¹†“sI>faŽÎËÖBš'÷v^ŠyäÑÿ––F¼·²R'~"xf³Rd³ÒgUa®§lôcÓ)›˜öC­cpb€ óZ "Ðú1ïUn{ÆÞÞè„ÈòؘíF‹CˆÔ¡H)”_)ÚÜ¿©=Âú:Š¢íc¶í œBÀÓ‹4S˜„aòJ/$(ÎÅ‚^ǵ¨7õ¹H¦j!î@EF»/OIñð7°7õà£Ðk¼:Ÿ¡øíTM®¾L¼‡OÛŸ>ýò×(êÈÒŠC×þjç~hÔVänÖÍÀ#”v~ Û<×DêÌEÈ,¥…)µ6+Ï(†™Q“è^Îf{0©ìhœ»媚ú`~ ’ UV(DÑ'Z¶.f+yÁ»iUÙ¶½jA {ÛG±X™K±Ý‚”c[†ÔM½H-赫ݜ„A@ŽÔ¥ÜUjó\ ©ySõ§º}7>E ÐîF%¼}_Išõ8OH—±± ^AZ«ˆ6™8‰låÉRxösË!Ad¢ˆ­GÑUÚïQD씲qØ@¡ÑOÃUáRwÎQV1ìØ”#fÇ7ÀÀ°L,—Û-$8¶e$ÜÔ{A‚^‹„±Z*QáP꾪6…ª7}Ùµ¹‡£sWEè8kðjº?§¶$…a[îªÚ&‘ôâü@ʦ°0{ú`Mõíƒa*ÁÆ·jÌv㠶Ńº­w8¨%½tPµö.X¶%¦aÎÝctæ¦ðïóÎ85 å&Xòqb€^¡Eeå\Lh~'Ëš\O}Õ•gÇ:9Îvî„l%Amp”ë0j+[„Òù9Rõ@}÷ã{âÍòô§ÿ„Jæ82Á îLOò©¶M=÷m»²ªh°n:ê“sA+º‚ª¸D†ÊÝ€EáÂåc~xkq 0aK÷ö1Û-¬9¶e¬ÝÔ{ÁÚ‚^‹µ±Ú‡²Þ®S®¾Áh ²(Mˆ¤¦s^j€Ñ¿ï¼±ä÷_¨«Í} !&é ÍÊ.»VU{¢íPÜkWãÄ]‡S®»ª\^?fÀ}D»ÕÖ߬ÈeŽ1^Ç·|Ú"êÃ×îïïÿyïÖŒÓ#­ Ay»|YèGa°T>ŒÙnáñ-ãã¦Þ >ôZ|ŒÕ>ô6L¸z‘Û tͧ€»G§>BÚ)zÀ¹£$sE(HRZ»(FYs—ÕaJáËݭ5`¦é»Íœ«Ÿñ…‹A%n­ð鿬 ÆDuØÚëÆöOjÃXÓ—ôæÃS2ÄqwËàZ*÷²ÃzØ2¶Ìv í E–)Ü3Rìgç@À.‹éµéaRÖ<>¾.d?a!ûöµˆÅ™Ï_úcÌv„Û"oë@¸¤—@8Q{y@Áp'Šxfjì®9ï®WŠØÒˆ]­îÍ—Êa¯åÞz© ³ÌOÁnÛhàZБFÙTõ“Ñx)s6¢”,o¨øì>×`¿¤¦¶×50Ö5Œ´#\Wì'<ž†çáæfê|iÌÍ ½ˆk¯ {Ô²¯j¯.ç~W™b'åtÇÜ?ÈÕôm©©c÷°À4öðG'G«Ž~˜½bP|p•CÎø„˜‚ÈOO¢lüxÊcŸ¥©°O¢™y4¾ˆƒÌ2lçDR³ [’poî’}Œ"è[^Ÿf~ÄãÙ—ø·›ÿ¿4Ç€AšÿÊýLDéäIÇ­ 7ö½ª1»òË¥òí: ½Þ=;Áéc^Ÿ Åø= ï{ ŒÜ£wJ¼Ú(ù¾ùúr€Ø{e°á'̓ý9 Xßendstream endobj 922 0 obj << /Type /Page /Contents 923 0 R /Resources 921 0 R /MediaBox [0 0 612 792] /Parent 930 0 R /Annots [ 926 0 R 928 0 R ] >> endobj 926 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [324.8099 559.6804 352.2764 570.5844] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 928 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [273.0868 146.0235 300.5534 156.9275] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 924 0 obj << /D [922 0 R /XYZ 133.7684 692.1046 null] >> endobj 925 0 obj << /D [922 0 R /XYZ 259.5252 621.3698 null] >> endobj 14 0 obj << /D [922 0 R /XYZ 133.7684 604.6427 null] >> endobj 927 0 obj << /D [922 0 R /XYZ 133.7684 477.6073 null] >> endobj 18 0 obj << /D [922 0 R /XYZ 133.7684 463.037 null] >> endobj 929 0 obj << /D [922 0 R /XYZ 133.7684 115.1393 null] >> endobj 921 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 933 0 obj << /Length 2289 /Filter /FlateDecode >> stream xÚ¥YYã6~ï_á·•XuËosuv²ƒl6ã$™`AKl›ŽŽéöþú­b‘2í‘¥A£¡R±È¢ª¾:H³•lÅ‚ÀMâ4\Å™ï2/ŒWyõà­0øÝÓB›Qjc‹½Þ=|ûF«ÌÍb?^ížìÕ"7Θ¿Ú¿9Ì ×æyžó“(ïÄzãGžóCÓ‹ŽÈǵ9MK/¿¬AÖm'›š8¾˜)0æ|Ñ\y°n˜±Ø Ö¿ï¾x··l턹‰3ÜðŸ¿ýî­ ø¾ï<7ÈÒhõ /žË²Ì_UA“c†S>||øÏ¸¤5ª¦Nj”Ùø¡›y1™Óõ#ÄÇ´Q㦣M£dÅ<7‰²£F‰ëQpר~:ÈGeP ~Y‡hÏ5c޶)0ɦjÆšEʦÈE›Þ5%è÷‚8\‚ˆ%¦>Ç÷'!ønšÆ‘wõ‘×¹¨DÝkHôÍí>|/tcÏg—™j8Ô´ÌOÖŽFù=áë}½.îèÍ›OžçÃnnwx®—Ä·»¸±Æ(µ¤û«ÕP÷ö¾ <€@Æ’%Xb.ˆŠ^œ^VC¥Ÿ|?úJo@É‚^#µ¨7uã$ºV ( ħV`ø"›¡+ÏÈcÀ0çýš9¢ ÎÓPç=@¸£I&)¢npò3 U¼ÐìÓ°/e¾]oBÈÿBX??ciÚb»ýŒ1ûóI|ò"þÙ70ŸÎ4|ä†17‹"¦vüÏ·?o·¬N¥-˜åuAÄJF­ûÒ‹º0rî]ÇFI䆌 ޵Åf;Š-:v^ïèØ%½äØ+µ?í4ˆqÜ ë9ï^ze!Ù½i*p}׉¿b£–O—*”%5g!-µl 9¥ûÌ+Õæ±tþÜaš†*ã”ðõH¥N%ª¦=·ZYˆî‚Yñƒ Ù²áÅ(МDËu\àûf~$N-L¡%SB'rG\ªjp…pß ¼›qƒ_íE‹~°ÄæaÄ–=1«÷⊽ڶÚ_ªbiSQêìy'sâ}As™vÇš§+áÌy|¿ûHC9ø o‡¼Gàìô/K•ŧ×ùµ•½^¡j M%|Ê1*òžìzå~LxX¨J¡rVäÈž˜Ï²,‰²’£ïð¡o*À îG§ÙVp^_}ø@Rê A_ÄdÀ4 X;ŠÖHðIý1t°Ÿ…´†ÙÔ€1Ž8€ÈÝ̓B§LÜ‘¨ÔsÁœ€åŠ˜B³Ë¦¸}µ~CÃZOý~ZUY÷âÈ×¾‡õ¥Ån蛩ÄNé;‰I}’\í ØýLÞÑt\m€ügäöíYyEI7Äã§“0 ×cN„Œ²kQr¤f·÷\Ö¸Þ„}¹n‡ú³ö¯fÔCµº“F7âó2È¡W¹óîG¡{ò×<ÿ¬ª#o ݈a†Àìe)û3&hµ±¿7Êà€»z=èõ勊šî~+ Qe iÄ›I#£Øb™×;¦‘%½”F®Ô¾ÇÐ M^§‡N@å%Çdd]{/ÞiX1Çþƒ9 /+ɺ 'Ò+9Y¯¤‚ž\<àÜ)x7û? ›Rèò³2?ùÔ”e3âÒ×m± Õk!QÛ²…È[Õµ±ý™žM-_€ã ¾€}¯ \O¢m?A G¤Ø[ê˜l±üŒb‹ø™×;âgI/áçJ- œZt>À§òØOõL5Ã÷"»V#Ú£8Oç-zãô¨‡²„£5y9˜!8¦Îa@ªœAÛ&)»ãxÞ e1妽Îʯ{É À)1àtSlD1ñ~AððRji˜ µè¿9WÕÂJY§F¨Ú™6$S7M²¥üa‹Íù߈-ûVïÅÿ zµÿmµäÿ *¶…²'Ъ—ó3–ÀÁt²ÝæÍ }|ÖR ô¦LŸ¡£/±Ë ošr¨n`]Yߌê"Uê¥!À7“ht9Ór¹AÔ_‰5ïK1ãH»Y–-]+ØbsŽ4bËŽœÕ{qä‚^íH[íN¥í€]$×]$0TÚ´_‘¡ËPv©šè™n3p\ê§i aluŒœÊ¯=ÔM{§‡ cщöë(rtÉÇŽð-ïùcÉ7'Ûæ„0㥎Rs¾Àë,Ý™? ý}Çûiä2¶À–ÔŒÛÔ¢×g•ŽN_PJ>·u¾RQ‚‡[ ØH–i€•úÖ¢©hÀNžªÔ)©÷tÈCÝ. p%æi¢#ŸQ5º‡Nw–X_šÀj­,y?Þ³>Cêבl AI;ÏíP"ìáïúÌèwnH-ÇZbsž5bË®Õ{ñí‚^í\[í¿k<9Nnöx8@úƒ¬‡"›ºTǼòB,¸ÈÝó‚ªnHit );zö­<D+´,9 œõ?P‰ŸtTCŠk©ñJ À„2äç“ ÓˆÚ´„îÚá9Ônê”kHK°˜SðSRX¾¦³Iªº˜ ë7o[~&Ž ž~ŽZSs:5õ)£ÞoGU­éŸ´X)¡åenèù‹9Ûƒ–[†Ö¬Þ ´ôjhÙj_a×îxTçO²"TçÉåøn÷{ðzéÃãØl Ê0Âé‘EþY¯ÙÐÓܲêL@Ìj({y*µV`·RLöæ¦7“CÇ+qÓ<µ*»aÉ€s/oÇd#ë›ÉôyWwQæ Pw¸¯ŠŸî£%‰ÛÐ`‹Í a[DüÞ Kz WjѾWÈéW ”åáyiÜ,¦‰ðø*šc§lêC§ãX‡f¬c±Wb Gæ2£€º¯dE!±‰zhí'`q)>à´R<õæfBBi+åÿDáÎ],Ü8ë}× s— iæq8žð¯3ÍßþÐÆ”ÇÜÀ·…þ/ Ò«Ÿ¸Ì®ð;¿5VlÓ3›’»[C nŽLo…®³ñø §Žo™¿5‘ñdÿ\:þPE­·6ØÛæå|õ­ÁB[˜dÑ”Áþçž/žendstream endobj 932 0 obj << /Type /Page /Contents 933 0 R /Resources 931 0 R /MediaBox [0 0 612 792] /Parent 930 0 R /Annots [ 935 0 R ] >> endobj 935 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.6058 631.7904 231.0724 640.6371] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 934 0 obj << /D [932 0 R /XYZ 133.7684 692.1046 null] >> endobj 22 0 obj << /D [932 0 R /XYZ 133.7684 667.198 null] >> endobj 931 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 938 0 obj << /Length 2524 /Filter /FlateDecode >> stream xÚ¥YÝ“Û6ß¿ÂÓ—ÊÓ³Bê[yK“l›Î43·ÙKš>È׫«,9úÈfÿûHÓ^[º™›ÌF$ðÐr%àŸ\É0ôÓ$‹VIøRDɪÜ߈Õ^þr#™ic¹6.ÛÏ÷7¯n£x•ûy$«ûw·ØOr¬î«?=éÇëBxwªQÅ Ö› ÞÇnT o×Aìu=M>¯×SýPw-Q? Á'u`Š9ì‹4ð¢õ_÷¿Ý¼¿·ê:ZH?‰De¿Þüù—XUðm¿Ý?̳xõáË<Vû›0‚ERJCin>ÝüÛné¼ÕK/ÉòÀÈÏÀPK¦ŒS?ãÈš2\SÆÂD’­,šòKÄ/>7ÁÖaºr7|)×p-ÊÍü$OÅ~x³‘÷ÜM?®Áü½¢yY4MÝîpzªUO/n?Üzýºwêý÷QµìLxõ0µåhgo>¾³[Ó6Å:Þ·µŒ=–28”ŠH½zØ àÛ6RúyÔT¯Ú’Pzc‡ÏÈ+Z\úLÄ+@½_ßý‡ˆÝö¿ªyùÓc]>ý¡kš1úÄ;ÓâÈ£/¬xk½ú_8‰½Ðm˜‹ñ’®ãc§C!ŒX”‚ܺiˆÜZ™09³ 0-½©ÛJ!ù;‘Ûi¿Õ~€W’xsP†WmÕC×+½ EìÝ?ªº'Ø­Fžh,µÆ¬à¨LÊ®ïáÛgšî‹‘ì&À„Å€‰=Žó¢'€ 3ÖÞlM¡QC£/B (w5²…ô£h9[9ls!fØ–ClVî1Äärˆ¹bÿxT-ú"õ¦A‡µep°-†º¤!!€³#Ñ'ÌdF•];ŒýTŽ˜[‘Póš?úzdî}WñÈlXÐãЫË1¦±V#©™¥ì-~H d¤Fô³éÚâ1̯U,H»ãÚ~i‚ù„F”@zUœ±e©±Œ›Ù¸ÆÚ Yá‚Òa÷( îƒþhé=,¤q‚ñý4v€èºÔ¸Mb>3”!$¥½Ùa ç{P‚5ÓÎ ½úb`áæ:‹$9E<ï´ 8Baœ&‰÷+)©ðñH•á;Eãá±›šªýq-3o$R¯¾Nu¯Ì*=È€ºïp»o¸qÑÐ[*™ë‚I]é4ÁqþÐw{z“%è+¤@óÛŒ,œ¬²‡ôm’ÖsB¯ª©­Šväœñ@ÏF=J{=MÄaâg9D8†«Ä±ø¸˜,\f´qº’ÂOãü´¶‰eîGa’^­m‚ÌÖ60¼Õu >¯#,kÖRzæ4̸´•6HÁÒæêÉÔ—©ÌòžËv!ÿ¾ª4‘¥”€Þ·œRíU;²!æÎôDä'"Ç•Z|Õï˜çÎÑÈòoÜ/5z¹/jôö-&‡qx¡E(|‘&çZœYÃr-É~±Ê~}ÕQîÏC¹à—mæè±l‹Gϼ\{ô,É¥£çD웪RÃɘõ6;Õª¾Í»Ãß» ä3ôÉÎ=¥-XNóa,ÚjS@ögBGF_o±Š™°¼¶Q”ûq’fK&vØæLlØ–M<+÷hâ¹lbW,›XæTµá³;P,s¬/{"–A6u;`Á<ÖÇ,OoUôå£>vqZóNÚä¸)eI Ë»_gàÏmÃ{¼íšiß^Êç;5n¶Ï›Vl:‹s¥>Ìx M’¥Ñ’§¶9O¶eOÍÊ=zjA.{Ê{¯ñ ÕÅaÚ6XsPTXKЫRÛð‹ˆüIbÑöÆ—P~ƒ‡Ó·gÅ;°mV z%‡uq£ ìÑ ÞªÛQõÐ*CItå\U=;*9 ¥º›s¾²BxÜ× ÁÉ]{µ:¯Tï ’“‚ƒ.}È7Å0—0‹ýL$KÇ—Ë6˶—y¹.Kr .'b?*§ꡪïlAD€DÖÇ©i>ÃÑåb3ÇO͇èÿdÐtÉäRä²ÍÔ°-tVîÑ  rÙ ®ØûCÏ¥¨™” B€xÕ•–(_!À;²›4HJ{nl)ܶi .]޺ˬݥРÀ«'Ý%]¨×÷Š[ìYêŽÈÏE’À öã<Šõ‚Ÿ'>2oëïZ‘ázŠÀOÃ4^ò©Ã6çSöìÓY¹GŸ.ÈeŸºbß‚«"ë]P„!^‘´]%½¦D¦…À—ºá ¸ # *z¡[•¢ï‹g¢¨–·¯AÝÒõØîÅIdÛ½0¦¤x!–·Ý:ާv¬Í)Hín©N¨R«§Û]ÎÔÍhz™‘¯>~¯Ë¾:Ó¥|^'R‡©àVçíO?Ñà[î‹ëñ¤ÂÏât©ØtÙf°`Ù±0/×baI.aáD¬>_à ·Ñ†c8Ïd çª™Ž :Lžðäëú¿šê€, Z NêYÖh„bf Ãgºˆ†¢ÇŽy§3 ¸)нz-õ% uÞ€gÈŸŠú¢Oӏɿ Ý•höŽˆæ–,2W‘¸oYU1²˜ð¬³!*Ó^О,;ª õ¡ÙZ*Ú\¶9P¶ePÍÊ=‚jA.ƒÊ‹YuÆe |j‡ÃÀ¢ Æ:¿Á|1ÁÁÎ4†ÜÅ¥îçõRÆ ݼÃûè»'ûªÞ\:3Yè5ªÝé,c®Ñ2ð/A-ãkkxbwE‡Eµyª+³„ŠO}“!ðéx(š¼¨÷hÿʪ€]™^BP¥¨²œL^£¸ÑùÊÆ gG[¶ç¹ÑVŽÓ`˪®Ìòhj¦¯“FS}ÎÜùÊ,ôe/u….Û l-Û"lçåZØ.É%ØžˆÕ° §/`ÙA^‚ Õ0@àZjÙí½ïçaþ¸¨éˆ4”U³Ò 'Ènt€lo`qòÏ.ÞüÞQþÁ\蹊¸ÐÎëí­²‡,~Ôh bJ_üþÄÒE¼”¸\¶9¶eÌÊ="`A.#À{§°ÝÖWͶÜ_¡éz>à[V23ÿŽvl-q•“Ä%\v²à÷â`Öè ð œO7Ô¡GOΜZ‰Ë·þãèÇ<2‡æª7·?P‘ƒsÎc@'UÐL×ôQŽ¿›•Íš/ßq^ÐC_—Ójþ-ˆ‡N÷ºDÖG»¾"Ÿ¨ð tºü3›é‚MC¯±ÛšœsÁÀ¸Í«[8[﹟DA»k¸׉¡ôÏdhyì €Ó&\Gw–ûa]ìQáO’ÿû—l7N 1pÉOü< ³“;b£~Ñ/§‚æçùûuxæ@x§ØÄ‰ù¥^²dòZ¯­=ÜŸüíM/% ¾x×}Þ©öÜ`QšúQšÇ— ö7¡êÖendstream endobj 937 0 obj << /Type /Page /Contents 938 0 R /Resources 936 0 R /MediaBox [0 0 612 792] /Parent 930 0 R /Annots [ 941 0 R ] >> endobj 941 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.6058 493.9918 231.0724 502.8384] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 939 0 obj << /D [937 0 R /XYZ 133.7684 692.1046 null] >> endobj 940 0 obj << /D [937 0 R /XYZ 133.7684 543.497 null] >> endobj 26 0 obj << /D [937 0 R /XYZ 133.7684 536.8968 null] >> endobj 936 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 947 0 obj << /Length 2737 /Filter /FlateDecode >> stream xÚ¥ËrÛ8òî¯Ð‘ª 2§±—g&oìì¦j2š‚%–)RÃGï×o7¤H‘²\µ¥ƒ@£ÑÝè'È ~|Á}ßÓA(A$<Îd°H¶gl±†ÅgÜ"¹=–;D»¸={ý^ªEäE·÷CjÊ ".·«¿îK—3Æœó¥bNSoвZºà8_pž<äÅ’3ç13«µÙš¼®#Áµüûö·³w·=?ƒc¸§YÀ‘›Îþú›-VÀüogÌó£P-aÀ<Eb±=ó%lâœw3ÙÙÍÙ¿z’ƒÕv뜤֞ԑšÑ‚³ZPÚ¾ò[-\ÄÉÃ#J—++ýe±ÝÅuz—fiýDSWUÕ˜7ÇöA™’E§ni€6ßbž`A¸§†ü}bªhåÃ5úúĹÖÉsC/Ðj|ìí2dN±t}©œ]i–B9?–\9`8)awSeVÄ«4_v¼½K×M«9Ä+MÕdu¿z_[Z¨7†¦ò–ú#Í~gÌ;J«•YX´üîgýÑEu€ˆ.ç^¤óÛ¯¯[–ã» ÈŠ@8kS»wOnoíÄe‘5Ûœàû&Oê´È+;,J’¸2nšW&¯Ò:ÝKM«•‰ËdcªW8T$ÎïÊb–©Ú$u+A ¤È–ܾ3Ūº¼²ÁÎ×ï¹^ ×^$¹‚­ €RktqÒ‹Bî÷8ŠÓIl8 œM\Ñô1vª4¨ËW«Y˜¬LMìxK7Àó«V"— áEÂïã$Ø&Eª~àtÿ1þiÔD/4Ìv¬€Â|Ú+‡ùdçk W›¢É,~^Ô–Ü=êþHݪ†J«Mw»‹ûCçö¢…‚`§µ’ä¸T®-ΗaøèðÝᆩ›Lé¢&.éâ]Ÿ…^(y46€K¸9QWÿ…ˆ¥˜\¨Ð÷BÁļûZ$wˆ5㽇´ð\˜Âàé«`!ÌS¤\{ÝÚ»j¯M(ål‹ÒÐD±/3µei…®‹ö®àŒ!t2|X¿üxþùû ¬™ÅX¥hâwKyŬá1­7YÊ©ŠûÚF_†ç Ýó7ãOà~YjJ É6öTèůh $€éöPO(<ÿfó×¹=ZégžVÑ8Á*.<úþ¤Ì’ÊŒ%ç*H„¶Ôà<Á mË NåÆÒ [reŸEž–ályƱ‹qy*씡‘âDÑ£µ>~ÌÉUä )ØóIÚb:;pZÏ&×ÁÌ ƒ–i]·1žÉ~r—5A)i…†¥qM¾NscJJÎ0g(ê´ERZÄ Ü|s¿ÄO´¸ŠkK*Îãì©J»»dèŠ"Sä}x]Æ[Ls¾Ý\¿»D¯‡zUÓÿ^"¬L•®sÊT>D}b¾Ä˜UâÌŽ t0„ZcB (S-β'§ÕДL‡ å5(’ÎM‘Åe+Oòdq ŠØÒÒÝÍ^´Š†‰·°[¸Í¥°ø¸):ô¬-?p²Ïs8mè?®ë Š(ACusüoRËÄlEqçU+6㤪¢|À¿V,˜k³>ýµs{í¼»B¾WEl‹˜ƒsñN¸´ ×èqcÏúGMþ_a 3I»L¡'‚¹+î…AHeAË‹ú}x»îp Å•p˜x'”Q»ûs÷k•ʼnי›E…c}aÝ—·ò̪™¤ +£èúp÷çoåÑf„ھ*Òï,Ú¬ e?’"ÇØ±nJ{ œ bk(8ùt5©±ÃÉv÷x7-ÒêGš@sW8wäØV  íóû. U}qV¶þƒRloBAˆþ{ßT†üÀuûáÈICȤÚTl bæP¡ÍÀu#á4¦S`B@@p'ˆo¸x£ì¨mº´Ñû©Õ~Ì}[ü|‚ì? ÉÝw䎵Êþ˜p„>endstream endobj 946 0 obj << /Type /Page /Contents 947 0 R /Resources 945 0 R /MediaBox [0 0 612 792] /Parent 930 0 R /Annots [ 949 0 R 950 0 R 951 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 961 0 R 962 0 R 963 0 R 965 0 R ] >> endobj 949 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5207 592.6223 478.4757 603.5262] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 950 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 582.7244 178.5003 591.571] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 951 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.9566 543.8347 309.7761 554.0214] /Subtype /Link /A << /S /GoTo /D (releases) >> >> endobj 953 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 484.5811 160.2387 495.4851] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 954 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [404.7522 448.7156 478.4757 459.6196] /Subtype/Link/A<> >> endobj 955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [132.7721 436.7605 206.4956 447.6644] /Subtype/Link/A<> >> endobj 956 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 383.2706 160.2387 394.1745] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 957 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [385.2432 383.2706 478.4757 394.1745] /Subtype/Link/A<> >> endobj 958 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [132.7721 371.3154 212.4732 382.2194] /Subtype/Link/A<> >> endobj 961 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 241.8795 160.2387 252.7835] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 962 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [360.2835 241.8795 404.1191 252.7835] /Subtype/Link/A<> >> endobj 963 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [307.8739 229.9244 423.4406 240.8283] /Subtype/Link/A<> >> endobj 965 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.0291 171.3881 242.4956 182.292] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 948 0 obj << /D [946 0 R /XYZ 133.7684 692.1046 null] >> endobj 952 0 obj << /D [946 0 R /XYZ 311.2705 546.2705 null] >> endobj 30 0 obj << /D [946 0 R /XYZ 133.7684 530.2607 null] >> endobj 34 0 obj << /D [946 0 R /XYZ 133.7684 322.8124 null] >> endobj 959 0 obj << /D [946 0 R /XYZ 133.7684 286.197 null] >> endobj 960 0 obj << /D [946 0 R /XYZ 133.7684 286.197 null] >> endobj 38 0 obj << /D [946 0 R /XYZ 133.7684 286.197 null] >> endobj 964 0 obj << /D [946 0 R /XYZ 446.235 233.0775 null] >> endobj 42 0 obj << /D [946 0 R /XYZ 133.7684 216.3503 null] >> endobj 966 0 obj << /D [946 0 R /XYZ 334.4239 150.6308 null] >> endobj 46 0 obj << /D [946 0 R /XYZ 133.7684 133.9037 null] >> endobj 945 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F14 944 0 R /F57 903 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 970 0 obj << /Length 2305 /Filter /FlateDecode >> stream xÚ­koã6ò{~…]Ñ"õ^`èf»{é-î’)Úâ Ët,¬,º’¼»þ÷7Ã!%ÊV6{¸"DçÅá¼HóE|ÁÃ¥I-’\0DÉ¢Ü_‹'XüpÅ ’?`ù.ÚÛ‡«Õû(^ä,OD²xغÜb–ä\,6¿y‚‰¥Ïƒ ðÞ«zS5OK_dAƽdùÇÃW?< ’œ¥AÂQΟW¿ý,6 ÖW ó,^|†IÀxž‹Åþ*Œ€ˆsn!õÕýÕ¿–Ϊ&Û_”¦,JóxfqºÈ`I8Ý_œ2Æ¡Ýãf‡wM׷Dz¯TÓÁ.Eæm—<öTKÇ0»½ý=DoUCß_~º{ôë꣤é¡.zÃcß½~Þ`qÌD–§/Ÿƒ¦÷'Äìù…‚eYBçÇÙÒyàݪõ}:¶ÕÖ>OY"¢H£½=Zz ê^q¬ûWIs¯ßIZúp{KƒRíU-[šÍ‘WWÍG¤µ Ÿ«º¦ÑÚp8vrê$<÷î¶DtRGƒ­Å6=Íz55J²ªs–Ç1תk¹`mûŽ•›j»±·•­Dθ2*Zy;ÊG÷ŠNO+‡heÑР“†M§ö’@²AŠOU«šý åŠ-ÚªX×m-·Ê1½ÖŸN¨=6ö*ž'dm”Îy öº²­=˜OäÂ{oýQ%N¾ûC-Qñ ÕæÃ08ß››e L~ûÝwVб†Ù4Ðn‘ šlU]+ÜÏgÐRûðê=Däèxg®ôwB™úfÇc@E °¢±ˆŒÁ7Íà–¾¿qPv;št§¦/¾ˆkëù–—Ja ¶ø #KTÛнquZߨ üuÉÁ¥´ 9ÒJÃ^›źSõ±7³CÑ)xŽDÇ{av²¬Çàq©ôéã¢@YÊ®+ÚÓ2‰=öl6Šƒ a³.µOçß³yÉ%øJ^ÐÐ6Cú<×"ΙˆÄ¹ç9Ñb½$;,ÌÀG&²[ùç±je‡™½À¬ÃMð!èöýÝÃýÝÏ49åÇâ C+ ¸,€dÛU˜ñq9dAFäœ?D’TFP±É UM™ÁÄ(ÁÓlÉ™DÆØá4Mt§®—{“Íï¥|öø¢4dIp2-\ØÑ?çÐ%¡Â™Íà€†úìúþðzµÚÉ<ªdOݶd ŒÙ“ú´Ú¨²[ujÛ.Z¹ÚV=ØË|˜?—Äwý¾¾tˆ¥4KQ¡!‰Ÿñƒä;X_qÂ(ŠX͉–ºÕ¥=N¼=æf=ªî ìÐÖ"õvfi’’@)™ÆäEr¬‰ÊÄ@AŠ7XU™Ž¦…«C¯ý É)zùA–Õö4W1†tP«²°”h¶gÙbpcÊ*ÚÙ´úSöÄj,‚ÈP¡C PCI+è̬ W*jðaîm,„¾!n ÂÊ^A²ÑP0^Wu=µO°¬¶ì4K]­oÚ×z¬Û?k‹¢¢ê)¢Ä»%åp´â¡¦»XíÔ5©<}¸©š²>nä MÏtDÐe*v`:«âîK+×­ŠàÂøç¦(„\t¸4q7XÜ M«ЂhSDr'Ý*¤c«€+g­è¤kÃD¬ÝÌ\˜Ž®srüWØØ)}ûE –²ÛOQVÇ®]¡׫¥#yeÈ•y‚Ü An£hæl$ØŠÎt¿¾öôÞ8Š]ÚãÑhð\Ä)6)'ÿydTSpÍqBî­ “³»u˜Y5hù›¢s’ò„v“d©oà"ëX‚勊÷ʰP´nZ>¸·é-ò•Eod´ÔökUW%õÝyFsÛü Œúîûû(ƒ.ÄšÂtøn0Ñ‘0ü™ëcÆybîjs·¹œ¥iÆ ÂÜñ¸ :éFgméé¶Ÿ‘,J“d!DÄ¢ˆç/܇|ß%¸lE/ù~í>E)X48×âü Ìb½$;‚q–æSÙ½z4м0èâéº~ e«²­mjÅkÉ3Þ1£•ÓW(w£",ðå`ž,yéöiÑ}ÿrÃ\¿fëgLäñ¹g¶°^ 1ÍÒ,N§²9>ãú¢íp"åš™‡…,eOÃiß1:„–mgn–<ò$AÌMvè‰`,(Çéž³mOZ Õùg¤ë؆à•!/hÚÉCÑê„€@§Šãâ¶U{Z4èàZ[Îf6—’¡.aNò`NÐ{I  EN…w‚©eaOcï®! ¬¨‘@̲èt‡ž‚^a2žæ£¢&Ëø¥”ŒWx›’CsÅãcÂÄD‘÷”‘g(‹GöåËhY[|¸Ã=A„޵U7…“Þ%„£Zb³=e‰=S«i1œ“º½Y<ô€.öYÏpF`™ÏµÑgÍýäqëò‰zbõýžºDlvêXo†Î‡¤vÝQX]ÑEÛŠ¨º¿äå’­ÎÊqðíw‡ÙÇš,gaÍ&uø7çõÿŒâ<õð€³P¸¿%,OÃlòHbµÂ-på€x7†µ Ë\xGcƒw²¤ABpN#ž¼æâulfú5^µö±wøѸÎ;õåô$›‹2hä™1ØÓ)ç[endstream endobj 969 0 obj << /Type /Page /Contents 970 0 R /Resources 968 0 R /MediaBox [0 0 612 792] /Parent 930 0 R /Annots [ 972 0 R 973 0 R 974 0 R 975 0 R 976 0 R ] >> endobj 972 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 500.0766 160.2387 510.9805] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 973 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [132.7721 471.1197 478.4757 481.0175] /Subtype/Link/A<> >> endobj 974 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [132.7721 460.5443 158.675 469.0623] /Subtype/Link/A<> >> endobj 975 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.4803 221.2888 448.9469 232.6362] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 976 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [291.8248 209.3337 319.2914 220.681] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 971 0 obj << /D [969 0 R /XYZ 133.7684 692.1046 null] >> endobj 968 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 979 0 obj << /Length 1870 /Filter /FlateDecode >> stream xÚ­XkÛ¶ýî_á2ºâФžnÑfóÀ¦HÚ›5zqÑ…,Ó¶YrD)›í¯ïCÊ”¬Ým°Xˆáp8ÃCÓetI9'Iœ†Ë8c„a¼,Ž‹`¹‡É× j„üAÊwÅž¯ׯÂh™‘,fñr½sµE$Î([®·¿xŒ°•Oƒ ðž÷eµ-ëýÊgiR/Yý¶~³x¹vrP’1Uû|\üò[°Ü‚YoáY-ely\ðQJíHµ¸[üwPéÌê¥sç “„„IÍœ±ÙóE a<âú|·;užÐ{hzllõå^w8°Y±ÀSgÇnYã7G1)Ny›wFv[¶¢èšö»»¶9N´É¦o qŒ7=æfE-„Ù§3v”Röf­R>‡cû”’,Ѝ>BÑÔ¿Û÷­’‹8óz‹ÙEwÀ¸A·*?¬hàI˜Ï”ÎëWà䳯Ô ‰Yê¾E‘±;p"@TIr}s£¬èäõ…=¾_v¿Àù²ùÏu/Ûëª)òêzÔ'ó­ÖÑökí¼˜ON ²hËS‡íû²ªŒX+0"±u<4Þæxp¥ vIw˜ˆòa¨™L[Oe%ZìaìÔð¡iäl`~ ¢ QâYæ½¾¹QÔÛ<àÀVì”=y_u G!#¸êê°Á4î c¬Ô§RïæÕíúîöG+W|È÷‚¬ü0ŠŒË`xì2\ ¹Û5ßÀ-†®9ueSË+“K}qÀ,4 db\Ö²ËuT’AhÕ:‚‡Z¯RÐdTˆ!õ„£MÌøÃI|•ŒœËèN³‰Æ Ø¡ÁêÏ8Û:H™9<4n¾ùò·º€)…JÛ´¹F˜À¸BãM®àäÓŠEA`¤¨r)…ÄŽIbhmŒîmS T˜÷]s¿BÙTFíÆ|Û¾®•Y3Á<ænÁ«Œoúα]ÑÔÛ÷GQwòÁÿ›ÁØV<^åÜ8ÿÖdÒŒûÝD2 wuΚ¯béØ]¥cËØÄ騞a€9¡fmEàFYoÌj!oPj§°CMvv!¥Ô´N©ÉÚ².ª~+æò@kcIj²‘ou'‰‡¨(U²ÐûÿŠÂQ4À\‘צqÈë½À*5pÔ€¨«Ù÷O­ÚÏØÇÇ…÷aÔ= œ õjG›öœ¼O^j„¯ãxñònýâö½{iÙ«î"IféOb' ²Â"E`Ôg–£¹ÂšÃDÉ2;c>â0<ÊHÒØr´¥©êiûÂ*K=HË]·eÑê¾Üu8ò¿²Êðroä7j^áܳÇO»sÈ«§é¦#õã<"AîP'¹ÑW¬A²ÑÖIJ’$fgq½·šj÷Fæ½k…•÷Ý3f\èÕfØøN¬`A ¦VL<0H}ao@¨â÷6IÎ3ïíú¦ÞÏx½ÀH+>öÀ0%öìxê%$À!føVÀÚðUÐA (UšEøµµÊ3—Õp5y‡h—0’FY6eÿó*†"}^aÿ®ë·eCÞ½\¯’PY _æmU AŸTЉVš$U±³°",& f%HTbš@p•’ìøï–sà¡ùºËTà†Î ïØ9\% ´E”NOʉ’®F 8ÄŒ/YÄHÚ¾:VÞẁ΅ާ@‡¦'<'VLa×J}iï4&agã½ÏþŒ f0|³á¦‡–ýÖMwö™n¹ÔoZpx/ÍØ(¿ ïÀ.nð+¶åTÊ«¨2LÆS–FãÀÙt‹ì«)RÕqþܵ¹å–‚CÇ‘ï ‡.bßHF 1I]õœvRñ|Ý‹ílI¿3&^úG/ Ùîå*ÜœVz‹Æ@•å;I_7Æ–€S3øSž¬´ºÛNm³oóã•ýù ù°ÿ«Ç 7ˆcåÈÐ@Ä ƒ83þù¾‡H{I-â®›€C~&„faŠIŽÓ–¶õƒ“ðv…ï.AÊ”º ¡Y™ñðôßèë?¿“U^…ÿ@·Dlû©iœe„…ÑIJIùY¡KcFÕÇ9% J72æ=bT)… ÅÏ»FåÒ'ì° ˆM> endobj 982 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.7799 331.9394 205.2465 342.8433] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 983 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.7661 248.87 185.2326 259.7739] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 984 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [166.854 184.0417 330.2413 194.9457] /Subtype/Link/A<> >> endobj 980 0 obj << /D [978 0 R /XYZ 133.7684 692.1046 null] >> endobj 981 0 obj << /D [978 0 R /XYZ 307.8231 391.6363 null] >> endobj 50 0 obj << /D [978 0 R /XYZ 133.7684 376.6775 null] >> endobj 54 0 obj << /D [978 0 R /XYZ 133.7684 169.3469 null] >> endobj 977 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F57 903 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 987 0 obj << /Length 3038 /Filter /FlateDecode >> stream xÚµZ_“Û¶¿O¡ÉC"MN4$ávúP§ŽqêiOil?ð(Ü 5EÊ$•óåÓw P¤D‘žétnn ìbÿá· Ø"„?¶`BIœF‹Xñ€…Q¼È÷7áâ¾aŽhÝQ­ûdÝܼxÉ… TÌãÅæ¡¿š bÅøb³ý°«5—áòíþPè½.Û¬5UI}¯ZÝ@S$‰Z¦«O›_nþ¶éøö–cAÆ ¹~¹ùð)\lAÈ_nÂ@¨T.žà% ˜R|±¿LbŒùžâæîæÝ’½Q;ul·Q’Q¢äÈne²`†!o/”+Tp¦Ø™ gÊí¨æX_¬†¼ƒÕZ„Éòß«4\:=•`è3ÕÕUqÒ*H¹Xó˜‘ 0. ””.9mÄTàG*^šòÂ_b$i”,b–"ŠäŒZ;úuˆç\¬;¥X!Îez.Ź×zª9Þ "ˆñhÈ;kHV‡Ø8–[]Ϧ|¤÷ïtùhJ}ûÝ9]ãèÀ°öiäÕ?R£i³r›Õ[z+Ì}ÕÏ«X¢5¹â5q4+šŠL‹ Š¢¡ÁôŠÉå×C‘ ¦|üp?ÐCN|W™Ü¦<Ýg[×±CS;©ÀKES+H%°Ùº¡wˇ§µÍ0á ¼¡—”YI×”u³¢ †žO;“ï¨iÓ8Üi_žêìÐP³Î€¤¦v»ËJ׫Á V½Ôï±Þ€ Ü/>{!Öcò§Õ: îc :2ò¶²V‹c ml$˃®Án{êÝš+ lMó™zß¾xPkc5ƒM¾ÓÖ= Ó*'جª·ÔÛVô¬uK.;ÿÅÎ']kp.—¿£ßé¢:ÀÄc?¬˜:7…i ÉÎÈàñ@Øý1”!qbËCV·&?Y½‚Tu‹Ò³gÎ×[ q¸õsCn,Û<ƒó}…Õ˜-Á™‰jŸ}FqÜ*°Üžfd+ðàßq7™)²ûÂTc6°±Ëe¼<ÔÕcÁÑecA& 0¹çû÷ÔÿTVWOȽª?cªæjyG ”ú‡q¹ÑeŽÛ{¦ãÖ.¬¯bO…£¤õÚñ#’ÇZÿ@]¯ß®Ç6±¹#‹ö2*+í™2×s§°±V×eVP÷+z˜sd„dÙ]ú=ÀÛñ´§}CDµþr?u^Z„Xi0™Ž¸y°¸ly_TùgÂhK›¥àÙ<™Ö& lƒ+p #JŸµÔÊ]*Àu4=!L*ráìOR4ŽVZEÃ63ÀKöx•Ë7•5dÏõ‡Ž(ùÉ©ï^¦7:xqzRs~¬kŸ^ÜâM§Û¦­ ¹¯Ó\æÕÙT¥wÚÁ¨tošŽyû¤µ[ãÙò”aÀÃ8=­†Ûþ^{Áœ)V"™áë©fù¦AœÈ!Û7?ýfÁ øT­©á½nK¯yw¦t4ôxýÏlU÷ÿ± Û.“öèšvûòåþX@–ɸ¹¯¡îK"Ž8ìeù3‘ „N ð •#À´X>¢ç¥$_»¢&ÁšY²¡ýæøEƒÅ$­É@Œˆ*ežæ/#10ž€jœ(hÿ—ãT-Cô~¥RqDë>ÕX‘”L¨ÞbȘ]òLdã=Á4SO5Ç5 ©x:äºñ‘„ö¤8t€mp°Ð1o],•Q×uæbw¯÷÷H¹+xbr®·’MWÁÉ5ÅÂ6¤ŠãÅö¨¦ëÉp‹|B±“LOŠæÚ)¶Ïõ½U£­Ò$¸yeS5籫¹<†iž»xµäPι$m ä8›)æ–n Ð}ÝÇ&ŽÃð„ǪÈR/aÖ½)»,Üè¬öu\«ó]i¾>]³Zá¬Ä\8ô¨¦¬æÉìØ„Õ&™ž¬6͵³ZŸ+…CåAea3–ë¶ZCR¥þ‹'‘X ®lˆ†*q»Hñ¼¯êÃÎ4û—ã X©JM“Ý‘»É9³ »¬=bOÆÜrŸ•á$`¾Ý,Êôƒ3“r½ÐâzDQ*ŒflÛ£š²­'ÃÍE¶dz²í4×ζ}®wö¬¡¢ò¤¥XXÄ“ï²zì|I®Òøâ„9;Ñâ0ed®pµá ë×ú0|†êÝhyÿLOW;:V›ž|y‘5Í-U þfºw™9£ƒ2XÆÉ°êª»‹˜Ãñ¾0¹CJèήž×CÄÕù®L€"Р„?áªáeÀuHÅSPZÈÅ ¤ê“M@ªŽlRMóí Õ_òëÛ»<ûŒ5WXŽÇ=j@û6k3êý@q -Ÿ§•½Ü!º\Å'ê#§P½Ü:…êÀŽYw ”ž·U=†³”ýZÏá¬ÔlFÖˆƒ0Mø0BÌ„±ˆÏRÅ΄È8ˆXÄæ G6åžlÞ&ùž`†¯s€>Û­–?Ö0_‘¬Ø²¤WçÐú`Áñ¡Àë êq¥–ÚÐ}#—©Í¼_»3+7@÷XµqW0R;lå®hp­O~×yq@B{¯K|*‚ÆÐë Ã{4罎N‹Õ·z[wTZ¼\Sò€§Qô­Ã782lFŒú3‰tôíÍÔîà·ZðUˆdcgõgûp•Ý-½Ù×~té®8¡—0^š@ñ¼7ø~°®®mކ—Óm–ÓQ¼ìójˆM9‚vîÔ]QõÏû‡Êã2µ¤Opµw1 ÐY{„#êå5(ÀT A«Ä4èSM@Žl¦ê™fÚA® ¸¢nÜ '“.:äóç2Û›Ï]Η÷¨ÑcK4½ëux³×ë0Á^H2B€yÖúaúˆF?Zx„•ëé *ã{ÜWˆ±›<ûM¿#9¹ðÑDcþpG h€‘3"ÖD¿¤¶@eKˆP–°÷–@쇎ͤ¦ÎRkç±Ü}4–v¡Øê ? –^¬@Z³@#ÀáÎoØ„ ƒ4M¿uWÅdbVøÞ;7 ø‘«"HéI¯{¾`]ÒÏ?My¾£š©ˆ'9ž<’eçù=–'Ïç"ÂãÉ~½2ö“³ßt¾³0 R!þ¯@-L:0œÅ3ºÚ†Ä~è»H½ù­ëê4ïÒæ­ûhT]‡H\¹Å8œ!">ÃÃ>ˆ}•D§oå¾¶d¾²Ò¼®¢æTáÍ©³!ü»XüŸ¼ÔÃß,dàý_aÅJõä¥Âþ¬KÔ”Þïù6+> endobj 990 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.7488 626.1466 397.2153 637.0505] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 991 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [168.7884 614.1914 196.255 625.0953] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 992 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.9556 471.3462 252.4221 482.2501] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 988 0 obj << /D [986 0 R /XYZ 133.7684 692.1046 null] >> endobj 989 0 obj << /D [986 0 R /XYZ 133.7684 644.2063 null] >> endobj 993 0 obj << /D [986 0 R /XYZ 133.7684 403.1892 null] >> endobj 994 0 obj << /D [986 0 R /XYZ 133.7684 387.3413 null] >> endobj 995 0 obj << /D [986 0 R /XYZ 133.7684 359.5382 null] >> endobj 996 0 obj << /D [986 0 R /XYZ 133.7684 331.7351 null] >> endobj 997 0 obj << /D [986 0 R /XYZ 133.7684 210.514 null] >> endobj 998 0 obj << /D [986 0 R /XYZ 133.7684 172.813 null] >> endobj 999 0 obj << /D [986 0 R /XYZ 133.7684 143.0722 null] >> endobj 985 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R /F14 944 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1003 0 obj << /Length 2523 /Filter /FlateDecode >> stream xÚ¥YKoÜ8¾ûW4æ2j`Z+RïÙS&“™C°;éÅHr%º›ˆZê¥8ίßzQ-Ûr<À"T,Éb±øÕǶÚDðOmT‡yV$›¬Ô¡Š’lSŸ®¢Í:ß\)1ÚÍV»¥Ùoû«¼NÒM–™Î6û›åli˜•JoöÍÇ ÙîtÜÙÔ,V]ÃÂË—Ÿ¢H[E¦‚rûyÿÇÕ«ý¼ôbFæQ¦pá¿®>~Ž6 øùÇUÆe‘nn¡…ª,õæt'0H)å5íÕû«ÏS.zièÚ†cU„E{ÛÅIXÀ¦×Ã’a–ƒQ–桎ÓdŽŠÖ˨dE¨â2ÝÌf•ðÑ^sšR »ÕE½Õs«Q˜–º¸¿êþh¶* î¶»¸Ì‚óÐcë«m *òÀµ¶¶Ý{û³ªÑöãöGgÄl<VýôÆŒã<àýX £i~â–35æ7ýÀÚ w ;Ù)–iÊâìéÜN òï[…ŠÏáÓé ã0Îtò\º.ÌVB”F¡Ž²â2:óIëôѺi ùçϬ뭞]—óæÞ²¯¾Õæì£ê  ‹CjP£Ûq„ë;ß×vtót<ähá,‡ú¸Å³ÏÒàPçEp{´ #‹ó`»QÖî§qí˜Nƹê`Ð(‰š:I3 ý :ºØ¨Ì8 h뾇¾åž±gåíÑÀ5l wgÖrfᬔ—=@ŸuÜUWÓá8†Û]ZFÁî¾£Š}×w»ïâ¶Se¸±'ÇòW\±j'Cmï'{1Žø­•¬L@GAzZyi›nº®ÛÊÉüz È6‰0È^ä•xúë¸ä£àÆ.Êu? Æû®™U>inÛî ‡%#yŸ(Ãâê1ŠÁ{ùðó6…°U«2xºÞ­ùH{£#ÉÉ ‚ ‘¼í¸ƒŽôÕ0Tw¬ºî§®q¬žSç ¥,Ž:HñÃPNŒ$óp?ÉUð'.»rÊo1de©>£xIFTÇjdÉBëjó{«á æÛ­óö~í½†ësçµ²ynbt_ãèj¬ÚµÎ>º‰O ¹éWi|¨æ%A˜ Hƒ9÷ÃÃîë­›ÃÓ™¢PÄ\ßB"Xág'—Æ„Wi¾Q:,±Î,ëz Ê8.b_×U] ».¤°ƒ0ö'Ý‹Ê0ƒÛñ €/ÍV€ÔÛ%E&‘Î¥Æy¤¸” hxå< ã( ÌuU9 ˜¸„.:ø‚ ëoø{¡,ØêŒŸ¤ëGžd0•¨ìøËf\IX9„sÇK’%«™˜@§2å¸([{AT™fž¯›­ÊD·r;ÐM™ Çt‡ñ茼5Õ—Upè cqºA2³µ_Ð-ÓÞIÊö’±ÒO—‹RÙ:¯±£…»#Ùޚʙ§;Aþ–¥úo%öÒxNì(ÌÓòAé,Œ#–$T’Ú/®{BWÈèïÿõêåÓNÁx%ôôé¼4ûQ:G䌜áuwIœQ'qŽe?ÓAQowçi8÷Î@µIŠ88Míhw'ëe>~Øý‰¨ŒSàUŒ5v4Y2eWµwŽÈO'Ó”ZIp-…Œ¥ºXo;ÖKˆQ„áßPÊ$ûAUµ2ÊõVˆØÚ☱¡F@ÆNè:ª^¿Ý¿g .ÞÉwc°~Y«h¦ÂØê<¢ŠEWÙ6¹:Ž1JyâË Ïg¥÷Ç;þºéŒÅƒÀš5ÑŽœ÷ÀšéÌ_º®ðMøSuµm-#NVÊÊ@èÜãz+·ùeéj–ÈÎPò™’È\bIèÄzr2ÎbB Tˆ½?>AäˆðKôæáÌ4püôMö°â«ŸLcŒl™ŒƒÁ é0]ûqFždÂpü@˜äJà P mí(ëyZ·rÊ\5•fè…ï¢ôc³jO=>7Q!R·”ü„„fà=È6ð‡ÈUþ-çàꥴ¯^j. ¸8náØ/O˜³rKÕöjg‘y„-² ·)²óHT¼`¥_)· b’HøÎPÁÌ­ÈÙ››;¾;…¿QÞ¨¿&ËŽfh§SçÖÜ”_-Ò€ß6Ä ä zWF)óDðJsp á{!¹îÊO` “Àä+«'EÄŸ7aäG¬t¸›:#kP ŵF4ºü”µš3mK’´?JíŸ_˜ˆÃ쾂Báì¡óÄ7 °<÷@2’k8è?„B1¾Z4U vVÊ8Øú‰åíg¿–ÂÀdµDcõÂD¼YŒÅüXÞàs0Höÿ‰ol¼„C¸¼Ô`l+3pcbÉ@z£Á}Ú7òÅ€âwÃ_ŸÛJxÚ¶Vä…;g$ììi¬-ÊHj¹†cð_Nëÿþ«Ç¼.c½ü N–y\ÜDïîç =4¹jÁ¶üöö[`á“T–ßýßv2þèH)–Tö«Ò¿¦Ò¢ ÷Ãã?ÿDLgpªþÛ¼m,Éó0ÉËt-`ÿB'òGendstream endobj 1002 0 obj << /Type /Page /Contents 1003 0 R /Resources 1001 0 R /MediaBox [0 0 612 792] /Parent 1000 0 R >> endobj 1004 0 obj << /D [1002 0 R /XYZ 133.7684 692.1046 null] >> endobj 1005 0 obj << /D [1002 0 R /XYZ 133.7684 667.198 null] >> endobj 58 0 obj << /D [1002 0 R /XYZ 133.7684 533.7834 null] >> endobj 1006 0 obj << /D [1002 0 R /XYZ 133.7684 499.3092 null] >> endobj 1007 0 obj << /D [1002 0 R /XYZ 133.7684 458.3355 null] >> endobj 62 0 obj << /D [1002 0 R /XYZ 133.7684 443.7652 null] >> endobj 1008 0 obj << /D [1002 0 R /XYZ 133.7684 258.3944 null] >> endobj 66 0 obj << /D [1002 0 R /XYZ 133.7684 243.8241 null] >> endobj 1009 0 obj << /D [1002 0 R /XYZ 133.7684 128.1271 null] >> endobj 1001 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1012 0 obj << /Length 1799 /Filter /FlateDecode >> stream xÚ¥X{oÛ6ÿߟÂXLjFÔ›]1`Mš>€­Ýb Ú¢ %Úâ*Kž(5ɷߊ”ÊI!Hx$ä=~÷PèÒ‡º¤aHÒ$‹– õ£d™þr›¯Ô2­®õ˜íÅfqvÅKFX$ËÍn|[LFƒå¦øàE$\­©ïûÞoMÑW¼•Ýíj$aB=ê¯>mÞ.^n†ÇFwP’ú ŧþ]|øä/ ìíÂ'!Ëâå5L|B –‡EÁ!J©[©W‹?†+G»ú蜊Ï:ˆócÄȈü9’ÌkÄé’ú$Ù=sÄ) Â8¹‹g% +¹my{;§‚:Š\¢ãôû±ï•ˆ®¢“‘ÖãµìJC™w€¨…; ámˆÃ¸´N$’“ >) ã€~W¹3õ& ŒÒx’çc’¿Ÿjmc[l^‰Î¹)ó®:„9Ó‰â´h>7ªÖõgÌö@í‰2pAJC[{Ð’™W‚ŒB5_¶ðKò›tm–ÊxÕì wäÐ8Èœ'€¸;2s"º’ÚUÙàG<¤Ý< o%x9 Ö:•bÀ³ÐÛ‹Z´\Aœ¢z cœE6Q1LP‡tä³pˆ5“ ˜Ík,¼c?òV'}»ç ¬'&c™·g è­ƒK¢ÜÁï¡ÉÅ0Kº!BÐ{Å÷‚ ·¦$ ¢hä¦0­ KÀC†p–7˺ÔÀØ ¤èsmt˜ÛÐÊš__vеUùËvÚâMkš{^ V7ë¹YÐ҇ѩįu™ê9D­³g{§ã1‚ÛÒ8 ¿+ÇÌõà^°È`?&Ô†äE+¿êò ù¾EM xOÉ2Ô”Í7°Ðf]kÊH„é˜çÛà 2’f)¶½i@¢0u°Ù2ÅV’Npl¨ÀÙÙj€øHœŸï4˜.¡pˆÖNt…„¸œ«Ã'±!Ž[»+¡¼ªÜ6¦N}Ú Pý ‰1Õ `pû•Cïßs^~"wpÀ0¾þõ¯—ŸÏßý~ùæÕç×38z2ÁÍàëÜ“ò‡9Vø‘»PÕ• SûÑ`ªg÷x$9w^Kg¤¡_›˜n–©©ÓÐ…©Š<îQ(M´jr[Of•˜`k¢…³Æˆ¸?ß½Û €Î¬mÎF¢Ÿ0çýø™R@¥qAË +óú̓Mì¡§m“Ä™ËZÒ¥´»`lGÀë¡îE7Þ1 Ÿß|1‡ïÎÒðAM€”Ί¶™µ¡ó”€+á‹|>3×ü Ô>7çÄî•îz&|cˆþ|²ÌeŒ„IÄæªüÚ¦çÿShTÆ©mu0þ—V%0Ì&%ÐI…º½ºku§a;«ÍŠ^o» ‘"1CàSj(š<£Á³ØÎô·¿ûŠ8?lí·ÄEss è}ƒEi ˆƒv`Æ`ÿ•î3endstream endobj 1011 0 obj << /Type /Page /Contents 1012 0 R /Resources 1010 0 R /MediaBox [0 0 612 792] /Parent 1000 0 R >> endobj 1013 0 obj << /D [1011 0 R /XYZ 133.7684 692.1046 null] >> endobj 70 0 obj << /D [1011 0 R /XYZ 133.7684 667.198 null] >> endobj 74 0 obj << /D [1011 0 R /XYZ 133.7684 531.3521 null] >> endobj 1014 0 obj << /D [1011 0 R /XYZ 133.7684 496.794 null] >> endobj 1015 0 obj << /D [1011 0 R /XYZ 212.8013 428.4815 null] >> endobj 78 0 obj << /D [1011 0 R /XYZ 133.7684 411.7543 null] >> endobj 1010 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1018 0 obj << /Length 1489 /Filter /FlateDecode >> stream xڥ˒Û6ìî¯PrèÈ35W$õܤ‡f“Í£“N›¸½¤9È2mkª‡KIÙu;ý÷å•loj·³ã%áM¤Äþ¸Ã¥dQûN˜Æ=?t²râ9kxøzÂ-ÓlÏ5²½˜O®nýÀIXŠÐ™¯†Ú&\8óå'7`|:ãžç¹/u>åžûÿ)=‰ÀsÒS»õZ§%|ù.çÓÏów“Wó½ÅœE^ÈÑþ“OŸ=g î¾›xL&qàÜâ1ž$Â)'Ò!ÎyO)&'?ïUžÑSqûQÄü( NÄÄNÄ’Èãã¸yÂdIw^µÓYa—i^ýæüø3 ´Ï懼ãÎ[õ¶L×ê|öï›,ÏÏg‘W©ÞÅŸÕÛÝ›—¿œÅÛ¨Beí‡ú®9‹]«tù~JŸÍ~~Z{ž.Šó¹_Ý·ªZªåÇ]Õ¦÷Gbh›síˆ]îq;kõXòbÃÿ©°Ž/6;êðKÌŽ/6{zT\bÿ´†‹9ž¶ç:p,ylxvj ü}§,m³Íƒ[·yÛ¼ºÏÔ¶Íëê›GãÕ•m³¼(lá?hI{šêÕ4„·]ßU/v´ÞܬÀà·„äUVt˼Z[y­kÝ|ÅüªîªåX_†êòú!ž¦MÛÎ:ðä;Z¿>ïO%îëû9#hŸ9Bç'"nUcOŸUWe¼gnÞÌgQ,¸õ;4O´j;mÕx½†„qËQ|FÃÕ­ƒÛd@ÁͰÌ7 .p"p›¼Ü^¸ñtãd«ûÛ P]Óêb#BKjB·™rWµ­ÙSÄë1X]xt¡„” U­GJ·È&ù4 \¨!¡ð69”[˜r–]SËôws/?|/ Zô=|¥«´ ²BëƒêDŽ/y“/0bdhk"`Ã-!ü pÙt÷CHVníäVÉVçeªóbGd Ò—j6ö–ŽþÅTxn·^›ôH_¸ÛNo!%Í3@ãøÈOdIµ" ¯p•nS—–’¥²\]£–a(fÕiÕ¬pû k]µº.†šX–PŽ'Òšå:ëJè¥*# Ü4—bkHEKSÕ6 »£ qš´g÷D¡n6uW÷ -,-ƒ©Ú’ÏÜ­{ÙíÖLYÂ(nÝåtÈŸò¶Þ*¨EL6:x(¡$Þרwø²bj0ðl}p˜f¤ÑhC¨ª­ÔÀ²Ë¬LJK©š@Bºª´Wž["—éšàžG¶÷ÒkËóaðÞ´çŸ Ì{Óh‚ëÅHnnpÇÛæÐ -’á¡ïl{®±-g1lS‹@àF4˜\K"®t]4:ë`²Há& ÌÞ˜ÁÛb<..ÜB)h¶n½iöÍlGšVÐ`ªÂAÔª´S é¢FOÈ"Ñ^¦8l±•BßN”£óPYƒTTuõ§Ò5!PÔÐ'æˆ3^ÕÈbÔÐ90FÑa\3Ú$<0EîÉÔ!°¢ ²¢ Ž"Prð–“µ„âÐ*3ΡŠv“Ú'}¯ì°â·-r8S"1=þÝé¡ÑK̆"ýKü  Ž4›ñ5¼ô§ÉOûÏcŸ ³ÿàíÁâ8JNqÁÏfþà|µágR ¿Ù„,‰d<úv'L†>]^« ç Ùs{­óiçƒY/UF@H‹ð8'ˆ‡×\\[aÔökϾ· fŠUÕ÷»µªÍkïÚ aÿm4ÅFendstream endobj 1017 0 obj << /Type /Page /Contents 1018 0 R /Resources 1016 0 R /MediaBox [0 0 612 792] /Parent 1000 0 R /Annots [ 1020 0 R 1021 0 R ] >> endobj 1020 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.2659 140.01 319.7325 150.914] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1021 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [386.8194 116.0997 478.4757 127.0036] /Subtype/Link/A<> >> endobj 1019 0 obj << /D [1017 0 R /XYZ 133.7684 692.1046 null] >> endobj 1016 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1024 0 obj << /Length 2484 /Filter /FlateDecode >> stream xÚ­Ymoã¸þž_áO… ¬TQ"))‡~Hö5Wô°Ýuq-ö…"ÓŽz²ä“ä˦¿¾3’z±wÑ"4$gÈáÙ!gÌV!ü±‹ã ‘)_É, XÈåª8\…«= ¾¿b†Éw\þ˜ívsõÇw\¬² “‘\mvãÙD 3­6Û/ž\û‘½ŸÛ²/ë=5>¶å!oŸ¨qwÈ÷ª#:¯·£N"ß~ëUÝ•M <,Bz,ZÝüxõvãt-Í‚$” 5üíêË×pµ… ýxq–ŠÕ#4€eY´:\Å„c¶§ºú|õW7åhT‹.!Ó$àI&‰¢EdDD±ˆ52µÊÛ @ˆCéåUEÄîT=m›­êOm´ðrꪛÚÿ·jju}ÞŸ sÑlQMM_Õ¶M»æ¡÷ Ú‘Áò54_3á©Éì¿„aTçF™¼]³ÔÛŸªîrصÏX ÁôìâxLÍŽ¾ýÓÑ\Y÷¿„‚]ŸV”Iš°•ŒB€(‹ÇØž[ŸåöÇìc‘®’ KBF§!fE KÐJ†!lK„D})veæD­€ÿŠƒy»ï^Aðê´)Ôÿ‰­h›G"ßô[„¥Þp—³c÷9h­üHiȤVȉÛS±·Um¹Ž„9<¡8òvms J‹|+Ô툜:tÍéSàÁѾ°Y•÷­ö0=FÖÇ^o† 0nÏ¿í©³PD˜c893Y˜>æÆx,}º¾uÞ}P]Þ¸ ’@FœÎccר)Üñ#5êawØYmr£WÞ™º1=/Ʀ€Ñ`YoË"ïíâkš÷ÚÌ mIK/ì¹<«'Ú\z÷è7§=½Ì`ZêÕÐ!aq— `r`wЏ€QO|9} T4Üö{·”›»%дϋ~îQ\Āз‡¢Ñ_W–úó(pY$a}j0à³yoo|“³ ;L¦x}¾ùôúÌå!îIðâ•à!Iº|ÑX.̶N%Dl™ña6\×Zd«Ž š´¶Òc®Ç¶¹¯Ôl’‡ÌZ&×â?5½†"aÕáT ·' ¼*/~%J‡9ø¢(Œ‹±îš–ŠªéÌ M+}¹AƒŒ…CF³}šÎç–Ú5à¬Ìk´{¸‰Ú憡:pÿ(eÚâņ̃=½ÖEPÔÛö:T1êÙÙ!‡Ì»»ÍgÁïÿ¥ ܶ±WrÿPêñAÕ&².ò£ª²WÀ©ŸÞ]Ñú°ÝP—ŽE“À@ð£××z Îú„ºzcÖˆ¸î…9HQ‡ÿ^n•~NH»íñéˆñéabб*‹²¯ž~ÀÎÔ{Fé–2¶T«º#DÌŒ:Ìšp-W*¯Ý¢§#}ûå#\>÷.Ú*À¯Hæ¢mÙwÖî»æÔª –°ù™/MÍɱ…H”ްHÜ+šÈVå[¢Êºë]C-|á=ï2´Ç,æ4¡ ¥:ú\a+ÊL¡¾`Ù%µ–âp­o/žy ð¶DÂQïÛã>Oá: ÉÛ2¿×§Šã_Ú|`†+¥&ê„!EZµS­ª Ëo— » ){Á·$YÖçqŽ_Oec½Ðú·}9Í}ÏíSwƒUμ£Æ8d`—yIæUÙ?]/­Žg¨ôK{ìU“¸¦A„?N“€±0£¸CíÞð|GpËï"øÙ¼ÚFÿ9Âlq"‘¦él³›Çq]ÒÛ>äáfx*å€ãMW”åó8rÈ"’d»„£á÷ÇK8ÎçE}^ƒï@:¼&ðº÷›15­>‘›u ý&ް=ƒ6eç°ætSsh-×¥­8h RE´·e –ð,¶YÓŠAî´†Ýó/¨3Ÿõ»¥éþ½À¦ðÚʲٖ΀5\—vâ€9$Ÿæµdƒï‡7{ÞhA‡é xÉh ¿?X2Úù¼[£ÐÞ9Lºy¯úGe"ïJŒôsø¢,H›ë=‡Ïr]ÒÖÁÇd Y,(óUõOr»—Âgq6È^Ÿšß ,‡Ïé¼úá­urøÍ¬í¹VÇúArj:Óo†”㺤•E*ÊÒ K3ºññþUûJ‹Aî2Jšß ,£4õùº8ŒH1{é‹í÷ÎÒ(¡ù2øÊ™­ NÈùL÷¹­Y®K;!hÆ’'Á ·4²XR—/d÷ÇüËwËdÖ3ô¬‡ÒE<·-Hæx¶2Õjn[–ë’2©ƒGìqfþ<:ð,‹’x½á÷ÇKøÌç=èûâ>¼~a“O5Cf¹.éç ãž4Ò!¦×‡Ôèó™ÅAÌ ^M4?3¼,]^ÄIh/A$?‹ð(Jf|(—$+ƒ(3<”°eSó’kŸ…áø™¥æy»öSÿ@8Ñ:ñöØ£_ºÐEŒÙõ<ÿàéÀ†°¿\Ó³½`D,ÉàÊI¥I[t^"S¸ 0eB¹¡´©t˜r¡ÄDúºöéÍá˜~K‘¨I+¡·Ô}]:‹½[Uä§ÎÌ †‚Ÿ~O3•#Ó|ø7ûüŸPÂÃ%ÿ$ ±?‰ÓIø´Z!ÀïU­0š‹Í>77ë,òNöµ® "ÌϧQÈL%”Ék]»z.§­é¾~í""&J&ë|Ó|{Ú«³Ç†ûír°ÿô^ endstream endobj 1023 0 obj << /Type /Page /Contents 1024 0 R /Resources 1022 0 R /MediaBox [0 0 612 792] /Parent 1000 0 R /Annots [ 1026 0 R 1027 0 R 1028 0 R 1029 0 R 1030 0 R 1031 0 R 1032 0 R 1033 0 R 1034 0 R 1035 0 R 1036 0 R ] >> endobj 1026 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [452.5729 549.4799 478.4757 560.3838] /Subtype/Link/A<> >> endobj 1027 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [132.7721 537.5247 158.675 548.4287] /Subtype/Link/A<> >> endobj 1028 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.267 383.9578 376.585 394.8618] /Subtype /Link /A << /S /GoTo /D (writeimage) >> >> endobj 1029 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.4014 366.3335 382.4429 377.2374] /Subtype /Link /A << /S /GoTo /D (ascii) >> >> endobj 1030 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.4887 348.7091 389.6362 359.613] /Subtype /Link /A << /S /GoTo /D (binary) >> >> endobj 1031 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.7445 331.0847 330.7481 341.9887] /Subtype /Link /A << /S /GoTo /D (copy) >> >> endobj 1032 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.0278 313.4604 271.779 324.3643] /Subtype /Link /A << /S /GoTo /D (filter) >> >> endobj 1033 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.8052 295.836 356.6307 306.7399] /Subtype /Link /A << /S /GoTo /D (readhead) >> >> endobj 1034 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.9397 278.2116 258.4198 289.1156] /Subtype /Link /A << /S /GoTo /D (readimage) >> >> endobj 1035 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [180.9311 260.5873 289.762 271.4912] /Subtype /Link /A << /S /GoTo /D (readtable) >> >> endobj 1036 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.348 242.9629 394.309 253.8668] /Subtype /Link /A << /S /GoTo /D (readextendedsyntax) >> >> endobj 1025 0 obj << /D [1023 0 R /XYZ 133.7684 692.1046 null] >> endobj 82 0 obj << /D [1023 0 R /XYZ 133.7684 228.4094 null] >> endobj 1037 0 obj << /D [1023 0 R /XYZ 133.7684 193.8513 null] >> endobj 1022 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F58 909 0 R /F57 903 0 R /F68 1040 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1051 0 obj << /Length 1749 /Filter /FlateDecode >> stream xÚ¥XKsÛ6¾ëW¨9t¤‰E|ŠNÛCí8i“4V¦‡Ä“HHbM ZQ3ùïÝÅ‚iÓΡãñp±ûøv±»ðÇÆÌ÷8šã(ñæÑ8ÝŽÜñ&_Œ˜]4kWͺË~_ŒN/ƒpœ8IäEãŪ+-t¢„yãEöqMg^èNþV¹ÎË5 Þ©|ËÕ¯¶|-*¢y™u˜D>ÿªEY岄5Ì ÃhÂüéõâõèù¢Õ±s4sb7b¨á—ÑÇkwœA¯G®ã'óp¼‡ë°$ñÆÛ‘À&ÆXÃ)FW£¿Z‘Y³uÈ3A;Aœ„žñ¼AÏ„±ãù¡o<#¦,œ4ÆMg~L䊾ú°H…“O®ëK®‰WôåE%‰Úƒ[A –Ú“ò¢°+ófJè½hÖ鎻…]©eo2˜ìlÀÕ`íŒ1' Cf4ßž EáÉÄB£?†·Úç:ÝÝŒƒ—l ³ZµËI §=(v"/ÌAo¤mXÂ@-tK\cqìù‘ow…e,E!§˜G2®9M {ÍVt/wz uÂ3ÇMü´ÀÃ×›…½xzÌ YÀì:Œ Jmc‡¢;‘É­¶9ú¨…û ,t˜7Ÿ[é5Àc]ŠÌ¸gæ»±û‘ßăr,/õÉ€š,r\æ6jÞ :Jê Q9x/Os#«™á§€ÌÀÜ¢‹…" zƬŒ³ÜåiXA" (€{ á)Û´¤oߨFÏÆ0jƒ˜øPèEîäfÊ\Šþa¤T™WPÒ’¥ /Ï2‘it€5¤90Þ,íª•&X'“ªNSQU«º ©Ôø®N5ÙµµÊª¬¨}^ý„¡YGû!)äC ñù²ÄçñáÍóÒ¨lŠRÛI„>rIuØm!¬¦”ÿòÕâŠ&äò‘ê¾è½(Š>g)  ÞBó“y”W76©ménc>¨¶°ÇÑ„+A„;î«2bYqc0* žåÊNùRÑUƒ[Ìj^p¥¸åhÀåÚnM °ŒMì™ûMnªʬw;©À±!l§Zªü_TÊwÃ‰Ü Ìsç˜qIß²Þ •§40jØŸÜÐÎÚ™ÂZñ“c8CõˆêKm¼€´’R[É++¬ìi¬agCñ©0Y›ú©Eº)ó/õ5tÑÔÉTfC’ÙëÄT©¢¨M‰¶¦Õ•è—Îó§O‰8† Gm˜HÞœ©7Ûê4t}J•^Í^a¾ò4/ +ƒaÙ)‰¹Í)q;¨#¤à=£³³³;˜@T ȽÁ›;ñ¾ëžXå]—ˆï­´wõ5¯µœí$„k*r°žõ]Èm¸Vui <ŽªÊ€Cô󲪕°.(­`ÈZ¥GüË¢ž.…à7`ãñ•,·BoÚÀ¬x^Xɹ=:;”|‹uÆhW25ÕhÈë& ÐÈÏ;­~A›~³¸¸Ìu…°3¸ò—>vwÃqòV(ƒl ¶>Z“¢o®É×þ/ÑÙ¡³¿S»Ž šK×ú Í„ÒÔ;ç ßšÄzòV, ,g•ë'ÙûH:•bt…ZàU;‘æ«C{zk5—†eš&#³Ìš¬i ³’ê¸Ñ4=ÔõüÛí¸¦õMâZ\^åÛº€J,d]MâwÌkõL¥¸îd™õ<è<â&€hÕ-DZVÛÁ‘{6p»rÒäa¯ãìëÂfñ¾/(DûÃèÞh²¹•|Œ`sE i²ÃÁVD#‚P€ìdĵf}¸zùöýâó«?_ôØå±Fžtj‘t£7Ô3Û÷äØ÷Œ„äÇFÆîvQ¹³³s^jò£× ÜcðÛ4tãX5à,eƒw^ݯ,µm.˜¥ªGJèZÙ26k,Òâû#ÐSb%”(Ó{郅=ׇ¡ˆâ]ò3­º5íÜ¢\ëMïB¡[ƽ~è.²û¡Í[ õvõ^î«ýŒö>@Ì~<'CÏðo[¸ÿý8Ñy“NŽïu_d"èNüy¯;i´B;_ˆ›Û¦«’¶Ë_LoRÛÎêB¤DØ×ÏeŒ(1ï,´£6_Ò¾œŸÓÏ~·v!¿Ö¢¼ë°öédÀaÿ‘¿ß2endstream endobj 1050 0 obj << /Type /Page /Contents 1051 0 R /Resources 1049 0 R /MediaBox [0 0 612 792] /Parent 1000 0 R >> endobj 1052 0 obj << /D [1050 0 R /XYZ 133.7684 692.1046 null] >> endobj 1049 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1055 0 obj << /Length 1585 /Filter /FlateDecode >> stream xÚ­XmsÚFþί`øÚµ8ëô.âz&‰±KšØnL&éOæˆ ‰JG€vúß{¯z ó¡ãÁº;Ýíí>ûìîé`[§° M¸ŽgµßP·œv°léí}yׂrR7ŸÕ-O{;l]ÞZvÛ¾c8íá´,ÍŽöp2:sλ†­Ÿ}ICÆ3ÑyLÃ%Jw¢3X¢ÎDœҠhö·ÇY˜Ät4lÛ9ƒÖùóð}«?Ìu,m «;iøWkô¬·'Ô ÷-˜¾g·7´£èûF{Ù2-ºB¨F¢ÖSë÷\dé-_Z‡ŒåºÀr}»Ûk»ÀwuÈ‘± àùŽÛvl¦mrd¢„ááèúYŒ#¼Ä1ɾé¶é?øšYH7éÝÞ´ù‚ËK1ý6d0±™cÙHŠD3 ÿ–ƒÉtoJS´J´,ǪJ&ó0-õDâ…„DRÊÅAˆSµÅʈgw+ë2SDk@~’Â’8ÚÙ=@Q°Žà ‰¶8éÏ| Ô)Õ<ס„¤X_ú3e×3( Šq±>3,…¬ñšHËäs‚—”S$EsfÑ¡uVƒÛ  !ÝÃñÝZ½ß]\Hè %0J' ³qšÃ‚`½dÆ)WD³„†Ä|™»zÀ7|¡½âƒ˜û‹’>éõ 9 àW !M¶èÿ0{Ö Æ'Ó‰$\E!ήÙ®ùV>° V a¢RóºjVI«ÜM).ÌP¾ßHpEܲ&Vq+ºjle©ë[ú+1SŠOb‚Â8'Á4Jr"¨/nì$•†* Þl™m†F7ª„7Þ‘‹Ó‚pxs–¸`pç¾ÿ¥Ûÿ:ìß? î;‡2€4Gýzó™¿ K“%Yê–X*!-s´èÚŠ›W·!ɺ×h2áIi!ÕÒn?<¼~|¼Ó”iÊ]¦ Û±Oõ×d½\J¸ÓdÓà -W@2¼,">pRù(HV»½œ“Ë'ɑЧ³º,qI9YÒd"7¡(Kêb¶²ÏAìþ@QIE!ñùXò«ÝFÑšFQ 2Ù­pÎÕ8-‘|ŽUKÕ;izUYîøÞ]Âx¥òUɈMÉ$?ÞOT¹J<\šƒD‚rÆä:‡žqL„ÏÏȼ‰æÓ$-B£(_‹ õוÑ+é’x9áâbQ¤gªÅhñ\´¨S¡É Þ±RÔÒ— $àµ6„âõrŒÓ‡é§d“å6„܆ÃmþEËÐðÌÊ®êˆÂY¹¾XH#ÚñNªu´ê0ø Œp@¸]L+­,UãÙ=GXT5ÛºáTÕËVµp¯"”¦þ[C³º¬“%*§² .yš¤uA±W;êâµ Ö?±Rò„ Æxƪډ$ p<ÉG ÖT"kë鑺ÙHYŸ*ôP|C‘úõ_ nÀrÒAM|¼ý£àóÇïƒKhëà$ö«\#E-öY<^W_^5@_õâhDˆJåT•*ÌA鬢7­s`Cž ™:º†oU~ ÐG‹½tÃÝ$ü Nµ8(®Î‹ÔÄä'Éé*Üâèð8/fÃJ¤°ROˆ…"‚zG –tGFËy0Ï+Г ¦µ©¹âÐóKVmêŒÒ½æz2“„qZ‰ZÁä}[å&ô8#MÜHÿÄ»¬¡<®Ô÷!ëÌ1šàTS_r Ãz,Hh™Æ[Ðèç*ÉÖ)7„ŠÞ(’\b%hi.›ñ-ÆIÛ¥_¶Õø‰Ræ(T“Ç©8¬g"3 I¾<Û·N´—† ª‰íz‹äÁrE=­ nù óºÙé}|xúü©ßѪ@iañqÙ—ƒ¢7 —¸ñLüÂvûwo:GSëÈc¦€[zs=Î ©wä¡¡Só©ìTX=T”š®ã€äAôH•z%?¦ç^¯¬¥Ü“uW¿‚S<Å)ŽÜÀÛd¼ ·ñrÂóéX~ÝUýAàÛöÿpqQº¯:å‰Q¾­q€ïš^å¶FiÅ`»Ã1fIDÞÂ0¸ØsxîgkysƒÑ7;†¡hA§ž-{ÓsÃ>cÕ†uÞ½û¦ë‘×> endobj 1056 0 obj << /D [1054 0 R /XYZ 133.7684 692.1046 null] >> endobj 1053 0 obj << /Font << /F45 711 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1060 0 obj << /Length 2369 /Filter /FlateDecode >> stream xÚ¥YKsã6¾ûWè´¡¶,šßž©T%3™Ä9líî(•ÃdÙL$Rácdö¿o¿@'>d\cÝ  »Ñøº«E?j¡ÂÐO“,Z$¹öU%‹òp,ùã¡Õ(µrž_ßÜ}ˆâEîç‰Në;[ì'¹Ò‹õö“—.W:¼wíRež)úª~dJQo¹ñk[©}c¹üý®+«Š›ëe®½b³7Üýá¹7uW5 ¨T’DžŠ—Ÿ×?ßü°Uw4R~$ ÿóæÓç`±;¾ ü0ÏâÅ :¯ò\/7aƒ”R–²¿ùxóŸqJ‡KC祩¥y<ã°8[¤~žŠ–¤¾Žt¾Hbh„qHkͱ5©É'`l@ä‡Q¢«Üp9JÝÝ-WIþz2Ü8¶Õ¡h_¸óÓû_Þpëßм¿?‹ÍoA0ñmÑ>vßr¨Š[U7NYskèÌVh i¢‹•·E_ø¤iºf~¡ŠÇUß­¾=‚¸4.äŠìŽÕ³ÙßÖfo`kw[´mñ‚2oìT:‡SsÑœoDÏ][™Zôkº¾5ÅA:GÓ}ÓúÜ}ߘ®þ¦ÝT÷ ¯[i“·Üþ}èQÑjfZóçˆ*ÿ}×rëórjÚm'³VgëïcÛ|©¶vøöÆìewÌÑ›ŽÏ ÚcÓ™ŽTš ŽO1¯‡8lûp(Ý‹5 ‰ó\Ž{ñO³ãïSsšFF3ôÇáÒ³Nï8v:¤øª¼›Ÿý #œàêúíý}ÙØß¾×\ÇÜT€ÆAØìßÌDlkú¡«ƒ7²xî+…¢^Brÿû*ÐDyæg‘J |#4àgN]aF‡t¡´Ÿ+Oð4J .¶xª‚uS ˜Bã ¦Ð!0%.-˜Bs½LbÓeêž匧_5. ýPEÙ+YÂ#³´žËQ”ù* 2²ê4  ‘ƒ§[){wì`Ô1ÛpÎÌc‹ç;'"†^‰.Y*Oºsk³Ô±wâÎz™’C°k–*öÎyd²ÔËQ„ÈkëÍÎoâèj:ÊÏã˜óœ £Ö hÙjÆ^Ùì‡CÝ1ýTõOLN˜Ð6¤Zç‹r¼È?ÉLÅvË„¢nÀö–©es\ªÀ{a*̫ʚˆÇB:¡\3]L„¸WOMQd žœ®/ZH @ms˜ÌÂϯ>ˆ• úô þ2íé ÐÐý`H0µ1›ð¾bã~ÍxèWÜ>ëeƒèìXž 抻¹-ª‡ýø*wT¹G“.Àq4F€"8Ô0p ˜¤Là=*B´UeÕ3W#Jˆ¦(°^Àà²ët,Pí÷\ K™-%Ô%Bf7§~±q\‹Á˜(Ê!a˜{Ýp<6-̺ÅiêýÄ~#WЍŒÄ¡õp0mUr‡MÃŒ4EJùT´EÙcìY™e\“9›—¹X* ݃n¹j«È´»Iæ`B˜A½ÃPÚ¥¦g‘)lÄ~¦+ã,“òÒ.fAYåë<Ð05ÌH†œöQDþë€×(¾r䯱ëjVÔåÝ;6ñJ¨îÒ$ºPá5G¡W¾œ ¶Ù5Ï¡°\©ÔOtó_ Æl¨•`¦ÖÞ¦èh›v,zØÑšé|X&ª‡¸$¦0 ü4 ’×ÜgåWî€3®æýk†XgZ\yP¤^[;Iü(Ì’éÚ\*Âùìî—«(É[p\^ØOE+¾18¡Šu 7⺢–þæwHW£;Ùï˜@d‡´Ÿ¤]îqþð°þˆH¢"ﻲ4]ÇmÌÙ˜f ‚aÂeŽR%² ¸zDÊæ…¿8ù=šó`:¾@ß 5¥U»ØSÑsKJŸ™ÜšiM]J̹‡@…ßc•4€÷Hmä’'„8¹Ê¬B,2·Þ »õ´ˆD ‚L„ζZÍ¡c ËbÙ¬ƒ˜XAX\ùù%\:æÒ²H_ö0…ÙbNC°R¡·Y2c‰‰Mm§‡ü¸+ox|ây8Óñ0Òy# Ÿ+9h§ô“fgñ®œ5`ùé©*Ÿ˜Íõ4&Fu,GÕ^*ÕÞ(SÉÅ%pvæñ6¡™Ydƒ[Ä2÷¶ãBm0J鎉 ;"»tÁáÝùè@ÑÚ&3¾àêB\ÆR}ñV-F •–µqëØ«záì .@–ºQ ‰eè4aŸ–¦Ò{GÈmÓÛä8WÖ±óC®Ùvܤh‡ïÆð×–ˆØ‹ø„õûªfä0f/ ukvh_1ì{&T“r´óTÅy&§rÕâxËÍ8ævÍ:—®ßsÛó±:Tpé„à†E¬#€¤ÓXÂ*’R–iRé¤ EH™Brà”4|nèºXLÝ€4:©nèÌžñ>ÐeQðMNÚ¡ÔcJ;ŽÁTgBw`“j CÉ ŒàØšfÌ©°2v–‹ùæ¯>ì`d‹jÐ8›=ÕŠ1œp´›!«¶“ hXÃßÓåüÕT[<ÎÈÏaØ"›ÜÅöÕ¦•¹"Y®xâ¥íÕµdÜwåPŒQBL@{ÿêMCgP¦ø¸¯jò¦qý¶a¥W®øÌƒ®}ÛÅÈÉöÁ‘žä Fž^ù…ŠžÁì;“óuwG¬Ü“÷Ã<â9ÿù·ÿ}õ•'Ëý0ž)¶á¿úß~GwÞ‹T†i÷o x4Ì&µZ¡ñ?šÚØ«3l°EGúûÀ »þÞ”ÜHø£¥¸¥’{¥ïcéí0–,ZŽ7{«ä©šç—Gsõ,6¾òÏ8ìÿñÈzÐendstream endobj 1059 0 obj << /Type /Page /Contents 1060 0 R /Resources 1058 0 R /MediaBox [0 0 612 792] /Parent 1057 0 R /Annots [ 1062 0 R 1063 0 R ] >> endobj 1062 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [241.2939 385.2519 268.7605 396.1558] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1063 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.7655 367.6275 264.232 378.5314] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1061 0 obj << /D [1059 0 R /XYZ 133.7684 692.1046 null] >> endobj 86 0 obj << /D [1059 0 R /XYZ 133.7684 498.8417 null] >> endobj 1041 0 obj << /D [1059 0 R /XYZ 133.7684 463.0035 null] >> endobj 1058 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R /F68 1040 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1066 0 obj << /Length 1355 /Filter /FlateDecode >> stream xÚ­WmoÛ6þî_!èS2Ä II”äµÒ4)¬Y†¸[´+‰Ž…êÅ¥¨ºFÑÿ>R$eI•ƒa]‚„¯Ç»{î¹£ˆ(‘ƒ<„$òc€ Oœ¤˜AçQ.¾ž!³iÞíš÷·½\ÎN/ýÀ‰AL0q–«þi 1ÂÎ2½? ç8€GçüEGŒŠ¬|Ô3´Luç/žígEeWu{V'Y¦»ËãчœéáÅWÁÊ:«äF„ñ9þ°¼ž],;Ó{!B‚”áŸg÷ “J?¯gxq8[9€Å1vŠ™çK!„Égw³?º#{«­è`~?Œƒ À‚È ABÔ`Å$tHì^ Øééñœ@…˜D‹é¾BCµgwçWWº»ÔH¨.Û#¡†IU š•-¤jìÙé¼)ÊÚ˜êÑ ¯¶µBÏñpëX(Ã.[?lMú¥]šï×"IYsÕb ⣡ÔOÿhµ8’lÂþ@ë·v ÅáÈsæ1ð‰äb¾”%9å¿FTóM••‚q=£x¦ÚË«åÙ#t»jÊDt`ÖIµa@÷/ʺáÌ XšäDÕð„iøà¤-9£Ÿ˜<[™ƒ«‚‰u¤ÍrsrfT§»’Yb¬Ëó*¡Ê.0¡¨éb¡œü¸ü™òé…Û\f¢~å?ô«EˆqÜŠ ¾›8p„¯ {zIÒ«6PµjkÁ÷^d9»¡S]ÉÞZȰʄ{H½…ˆn6ÌrR¬MØJ¶d¸ žRgÈÝ&K:pÃÙ—¬j꩸&P0´ Óï\šmD·¶B™ô’.7‰¨8xÂ!gcsÊšû3VБŸÊ¡“„rǪ’$Øö IͶjò´Ä\4*Ó¦(v¦¬ Ü (çÔt·™XëÞË«åíÕ»çѨvÜœ½»º{;ú,i‰dr0¡È0òS1TM[¾œ¨;@±éõ=[æS9þ}Â?™ɺ“†:|‹…Ò´XœÓRü. Öj8Äö®ÎL €©·é/L h= SBkÓ+,”l*k9 7Až[§¬ø>Á³FæÃci)ŸW–ª’+È ãµbŸ¯ë´éÒõö·³›‹åÝÇöŽqKË”ÿÂûŸé“^t׋=Ê;qÿ“üeÅ‹Ÿ‘[fbR¾ŸžíœÂÛÛ*êÝqæëͧl••l\˜gM"QAÅnc‡]rlÖ»:“UFš²+&+K¡î´ÑÝ^Ãà`ÂDc{oþÔ^Ï@Œ†i¡Ãr?h%ÏuãÞæ´d‚؊ ‘È«LÎÊ ôI!<Ru[ìÜ©X˜ÿ`F*È`ûØ®Œ²¨Ý>¶hå|ÈÅ Ì9tz»yļâÉíccO“âï¹7iÏAªoÚØµYn²MûÓ]ÔÉšòv‡üâ$GÿŠVZÍýÐâoîÆ“†ï\Cx÷OV6u7º \¬å¨U/ò‡|tßP.w»×Í&S\:q飯‚îw[ï‘´„Äᾟs¥(YQí~t…–=?ª<¡eÅz¾ðf#žô¥ÉWX¸×´h})Óm–¬Õ!îÛ2UüRuo$=i.wÞÊ{R}ZîA—(ŽáÜ—øÔ$âØù²õ£J°/û#„åÀ#í ôÕ@ ùá/ÿu»|ªÑ¡çSøñÔcGþ!Áÿð´ê=4”ÁÃýg&‘¯&/<3­U œ×¬d\ª·aUöžŒy0¾b‰îÝ`ˆî!²@x˜Ñêí=ß¾[ÏßCˆUíV£‡9ªúº{”ßg#Àº‡ß`ÿÝäçendstream endobj 1065 0 obj << /Type /Page /Contents 1066 0 R /Resources 1064 0 R /MediaBox [0 0 612 792] /Parent 1057 0 R >> endobj 1067 0 obj << /D [1065 0 R /XYZ 133.7684 692.1046 null] >> endobj 1064 0 obj << /Font << /F45 711 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1070 0 obj << /Length 1526 /Filter /FlateDecode >> stream xÚ­XYoÛ8~÷¯òP$[›%©ÛéhÓ¤›î"À"Îö! E¢c¥²ä¥è&Þ¢ÿ}‡—.+yX, ƒ×pŽÃ™¡ˆƒáGâº( "Ï bŠö']O°s‹'ÄͪY—ìýbòæÜóÅ œÅ²ËÍGAL¨³Ènãõñá)?"Ñ!KD^Þ뙤Ìtç3ÏÛYQÙUݾ«Ó<×ÝÅQL“»‚éáÙ“`eW@HHx‡$<º]|šœ-Õ;â€HÅÿžÜÜb';?M0rãÈwa€‰cê¬'®›!v¦˜\MþlXvVÕÖ1À¼0D^û#€ù‘¢8ÄDPä8r?DÔõ]¡cüóXãÌbä‘­Ú’`YT‰8šf±»¹ (ŒÕÓ?tã#²œÍ\¬ú®êëyŸÊ‰`à¢Ø“êÁ€ ×mQ)1¦ÃP?¡˜ÆjíÍ->Ùl˜…-æ*š»x` nYYãm’ïz¼ÄÈŸ™¹K¿éè ½ÝÒ&ŸÁõXc7,Í—9ËÚKiU”[#‚hì÷·Œ`O¹½äÖˆ&O°¶öP¾B\¯<°Šxã¾6ˆ.*iŸ_,®®E^ÌçÉVT_ΓÝ×ào'F|ݤ‰ïyfMjAÜ–Â'guµå6²,ùVwÜ Í‘'<¯möåÕÚĤ™Òª6Çq!úŠ%X¨lèjŸ”IQÝï#$ßú§U e¬€èpskO ,1–Û3Ö$c9óYH‹ª¼?16L’W½©L$Å ·ÏE¤g™«Â¬å®ƒQ¹¢x™»”?Ö£Ùžt³ý© ¦ýto D÷LH=:‘FPÝQo¤°ìE³=Ù6åô„kK²õäˆh7BÔ‚Þ5@Îéññ¢›ìÞÒ> TÌ„îÑ!Qèí=WߺýÍTÊÏä-;o Ó“µ÷žPO}lÙã*¦¾€" ûcãg Ò¸û4tHã¾·õì2Ûh¨'Cc•¡š._CšáòñB‚¶ùK¬lœ±ºÚ0ž›bª­Øl›,öñì(÷"ÎÊVåwŒ•6Z&Ã’›tÒ0näJ"x®ÁC36·"ìÜ …572©¿­âŠ/<Š cv”qÏjS£o b°÷AÁþ;S‘äàòìó_ïþ¸>;˜ztj2Õ‚ÙDe##lhøÆv$,_ªT<[g6)î ¹º£Oë(Fn6Œ<„áOPìûÿó»ó‚`€™v?Aˆ¡õ>AX­¤%Y)Ý…™Ï UÙùœ°5>°TwÝPLˆî‘`NèÜ7£åõUA¥¾iœ~Á˜JÏ“£»aU=íîY9¬ù(0Ø¿ŽHŠoendstream endobj 1069 0 obj << /Type /Page /Contents 1070 0 R /Resources 1068 0 R /MediaBox [0 0 612 792] /Parent 1057 0 R >> endobj 1071 0 obj << /D [1069 0 R /XYZ 133.7684 692.1046 null] >> endobj 1068 0 obj << /Font << /F45 711 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1074 0 obj << /Length 1609 /Filter /FlateDecode >> stream xÚ¥X[oÛ6~÷¯òÐÚ«¥ŠÔ=í ¬IÛ­ë¬u»‡4Àh‰ŽÕÈ’FÑq¼aÿ}‡7I¶egؤ¿s%‘å²ç9QûV˜`¹~h¥«‘kÝÂâ»ÒLvËe÷Ù^ÏFÏßú•8IˆCk¶èK œ0AØše×ãxbãÀ_° ŠÇ”ð¼¼URfjòË;*¯ôª^ç%a[5ŸM<&ó‚ªÏ7œ–M^•!/Ç(žÜÌÞÞÌZè=DȉÜ àŒ®o\+=ß\ÇKâÀÚÀ‡ë $ÁÖjäù° !d(ÅèÓè×VdoUn2˜EŽ%Á€Á‚ØŠœ$r‘4X„û‰‘ƒ½À“«ßæ¼±_Õ?^~þê.ü#‡dÙÏt+>Ï>Í>þtõîlÚðìü¼á ,'é;tÝñǪ¦jv&6NÏ8#y!­+ˆó‚”wÂJÒ‰blÙ‰ã‡àEq0§ Wl¨'â…d×Ü(vœü{˜øçEŲØäT"9‚`³‘ïx~¸Ëöü¹âËèª*áxµ]ò2e”´§–ëÕœ25¯jdÕ¦Q3£Š­(ÔìžkÚ8òdwçÈ¢2BóÛ²bô )„Æ#„;´Çöˆ®$±ÉN’äØ qHýKÒPâ {ƒ¦ïè‰fWŸ?|({ZiãWjL«b½ÒËxHß’nf"íWŠUà†ÙYÑktcâ ôú"¤‹å%•3`»`äK¢gS(¤½èF{˜p­PÍ úY±U_ô¡÷5F}ÄßÇ¡äÚóŠ/÷¤-ò‚*M6©b aLy3Bm§l‡÷$f¢Ìñ­”øˆØ!ëi¨ë2£‹¼¤ÙÃë2åPGI§8ŠöÙp›D`š™QP05R ø‘åÎçùZ£)+¾kÓÞ ò”mMäÕÛÿpÑr rÊúV›>é'f[=RæïÓSÂSíq€(oRZ Ó=òŽ&¥;8ƒaO-s¢ùJÛbCŸsßVmÀ›¼T:´öX5Fm4ƒH"ª·[(½JÞ*Û£xÕš×ÆyKJ2“:y¹¨ØJJÞ«KšÞí'.½§l šU6ÔDˆŽ£Fï^v" –¤)Ÿr#Œ­knq'#…ä5”VF——/µo±]¹–YѦŽáæ÷ÂNê=MyÅ^ª;î•çRÜ;BäÑ2ì¢I;©á{5¸/v¨P¢©Ïž}ëЪ㮿Ýìèn]¹¾…õ0þþaïŽh«lÿ60uSÉרÖ{÷G뙳Ωj{§ðŠÃí9"¥§:VòŒ/§¦†·t…º®jU´Ô§m®û4_‘¢™¢V•ÿæTÁÒ›uˆ7¦Æ™…тޓR‡Pë¿EQÉgm ¹Ê÷ï$““¤Ió¼ª9]áàæ¼h‹ÜLYzzö‹ôsžžM‘;ÕO¾ <¨šƒGÑ㕳¶[9U,MÑc¡"7칺Ó[!>­£”pIÔ±×>Åj^r: smtbžh`‘;SX~»ä»0Â#Að„ð^Ã@’û‘äü®{CKÑÑ"' ††Nâ';*1Ê׬l“üô-4ØÏ è°b/ˆdû]t bìÚú̪ ‰,„¡`§mC‘ç èVLÛ†\WômmφcݳÁ¤ëÙàCölbU ²g›Øñx«¾g“0€¾meë”®u;ª`ý•G4¤}6©ÆC )òEÚm3¬8ö»Þ2öcìšÞ– ‘)[LÐRCjçJ^¾‚’V«6 `ü sš’uCäÛÙêƒõô˜e³h¬Ë— Õ„©÷ÊÄwÇÓ6 “R¯~û^œ(¯õÝäêQ—ÅH‰x¨ˆÙï)-ЧF'5¶‚¸Ð %N¼ŽXR‘9r¹Òò×u]1nÇàK–w¦’õÙD¶=øêg€¶ÛW'¢Ú69#ó\¼:Eâ‡QŸØý&`¶ä¥|ŒôyUÅQ‹j4«u£ꥢêí`°Å‰ã…£±ÿÚÿû—ƒ~غPFpÿW(‘ï­A%¬÷Ž–âGµ «²÷‹ÈZç’¦jª»© Ï>ô×BØGøYæâ«ëb®-5׎¸¬¶·ô ;Ûß5 öJÌ9endstream endobj 1073 0 obj << /Type /Page /Contents 1074 0 R /Resources 1072 0 R /MediaBox [0 0 612 792] /Parent 1057 0 R >> endobj 1075 0 obj << /D [1073 0 R /XYZ 133.7684 692.1046 null] >> endobj 90 0 obj << /D [1073 0 R /XYZ 133.7684 195.8357 null] >> endobj 1042 0 obj << /D [1073 0 R /XYZ 133.7684 159.9974 null] >> endobj 1072 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1078 0 obj << /Length 1505 /Filter /FlateDecode >> stream xÚ½˜ooœ6Àßß§8åÕÝTl ˜[V©¹&]ª5ÕÖ›¦©©*Žó%L\Á×$ªöÝ÷0„ƒjíÖ¨:cžþù±<µáO±ã ßctêa›zÓh7±§·ðòÕk!«–²L±óÕäô’ºÓñ¦«­iÍE^€Étµy?cs‹¸öl™Ï1›ñPÄé­ê Ójü‘ÇM¯Èô[õs§aþ¨Ú«y@fá:áêñâA𴈳tnaì0o†ƒù‡ÕëÉŪ݈#ßö° üÓäý{ºq¾žØÈ ˜;½‡á ÓÝÄ¡ „1®z’ɻɯµIãm©ÚŒú>¢~àö#¤˜ë#â¸N lu'h{³8<ßÎ1ÀˆÊ.Vöû,…¸¯ÁÁC ~?ϱ;ã‘Èr¥"$1­ *ÓÛ,I²9qg÷ZߟmB1Ç%véGä‡Hr^, ƒ±ÙÒ ó<|Ôvnl×¶$l/ÀGëb»ì<½ÄÔ¥‡læK6RàÆ¶%Ó"AQÀ@©’qñ3pùRˆÍbaŒHYǦf€X@­zÖcÛG>µ-°ê1Ñ ðypḞÈÖA,E;@ &%¡ûŒ J±ÿ߇è÷†¨ÖdÑ8LX%„ᯆ92n‡ ‡1ü}Ç=µÇEo“*óÈQ(-óhn9A­.Ø>’°ª•mõÖsÇ ý2.ê.Ý!×b&ê)ç{X<°Éý§cE5`A…H…¬±°ñë:PÄo%5ê—!ÏwÛn—9”Þ-«9³ª¡€V•ã(ì2hŒÀ1ĆàTbãpý6pFüj8¦[Yd5‚V…Ù¬¨hà:ÅÊrœeˆx#eˆ ‘ªÄÆI úmHøÕ¤L·WiÁsa޽Mé( ÂãølŒ„!6D¢'1è·!1âW“0Ý9e»}¢7£zwk'Ì:wªUD²(tNyݬ‹²ä°K tœ§ÍÅÄãiˆ ñ¬ÄÆyúmxŽøÕaŠ À¨ÅFa û­aŒùU0Zn_ò„WÙÕ1ºÔ(ìl®7 £‘b¡¥ÆQ 9mH ;Õ ŸÆ"ûùêÝêíovÎòí›7×+'a¾9¶Q7»C€EíËs…Ë õÜVí}:–JÚ2ÅËÁ¸ ÎTpö­ÛK-&‡¥¹åÙvy9áÕõMvÈKƒ<Ú—G" ðã€7†”ª§§å«ÐP\°¨Úˆ~øÿÔQ¬²Îí~å· °:?Èv¨~ί®_È ‘m] d“7WÏRXNU=æNß.Lãý!©-Ö{ lç™Jry €!uÿ?0Ëp;¥-_Úsc„TÞƒÈ>îE~vyµz÷\ a‹BNm9·?Ö—ÂfZEþØ3Æ/GÓ ÊÒBçPéî¢åÙVvlã„_‡;.žÒB@ÚÆâ¤å½ô£ò±ŒÉÓºJÊLÊïUCDvWvŸ•«±ÌÒ*gµU«Êß=‹BÝ5¿\BtÅb!=-Ë0o÷<­×A”zfŒ79‡Û¸N7« ©O°IòÀQHÖÛ”ëŒL² §Ì?¤ó”^5í û»Í¡F¿zqþËÅGµ:NŽ+Ëûf™îgÊÎ(v•%ÿÙɿҿÌòÝ·èÿžÆ¢WßĦã|oPz?©Ÿ“ô°[ó¼8ésZéàŽNÁ?xña-ÒÑÚg÷cŽœŽÊ:¾µämõvL‘v7êŒ÷`åY&†UÝŽêöëU½.—ò¬hiJµ·æ³9 úÊ/ü×ß ¾ùóžq|À6l¼ÄüÔéAísX«öUQÉ!¾â)ÏaSÒu»ºÑ—Ÿ-ºF¿ä‘jxê‡Ø«ö˜,\ý´•' ê¨¼\ÞØ6ºî¯õçЗÙÃã-r‡­?>öûç63Tendstream endobj 1077 0 obj << /Type /Page /Contents 1078 0 R /Resources 1076 0 R /MediaBox [0 0 612 792] /Parent 1057 0 R >> endobj 1079 0 obj << /D [1077 0 R /XYZ 133.7684 692.1046 null] >> endobj 1076 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F14 944 0 R /F11 844 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1082 0 obj << /Length 1200 /Filter /FlateDecode >> stream xÚ½WoSÛ6ŸOá£o’ I¶dwB7îXoÅÍ^P®ç8 ˜:6µMööÝ'YŠc;²¡×mG8Kzþÿ=’d@þ‡ dYÀ¡®mPmj„«4n8ñí)&³â2ël'þ`ïÌ&†<Š©á/ëÚ †¿¸º#8œd#äYPDÉ\ ’…ü•E›Õ"UTù9‰’ {–cäáa0™œNŸ –äQšŒL„,—1]û烩_¹^óR$ÿ2¸º†Æ‚Çy>€Àò\b<ò Èó°±X6B­WâÁåàÏJeZŠê³ØŽG4€×p€ç@TF0p=ê”8[Ä* Óø,ÍVWðzdR‡¿ÊÏŽ{¼s ä6LØ”c_gG-v Ï{ùñÿi/¿µÅ?ëå··ø/zùÉÿ¤—Ÿ¶øQM=r‡½5û‡$*¶Ð\7 +ò.¥LÒùC<ï—hƒ:Š‚eë—jC»âvXö¢Xá^fò#Ìmlï£0•Ãyšja΋ÅþþWiv˜/ç#)<¬x,ùGH`–>Š/Ò§)É )!Å+i!¹óLJ‹“é{s§!^:NKñešIÁGߨ'¥ì®”×þ–¢âùžqc]çÑÐ8­Î£œ}y`IÈÄö °ë<©gáYIéRA4'b‡7m½3¡Ój¨Ä.O¦Eþ×c®:åêˆ*¯dy•|UYº}hÇÅ}Ø:rD9ª ß¡€ ¡°ŽãOÚ£Ÿµ,³]· 6°uyи.ñ\¶‘ýJ•Çr)ž›ÿÀã6d:Ÿ7Ï] ¯NÂÚmDø³ÚÒ 7,g°ªô³hž&AF—ÐìÚκˆqàƒÆêaýº¨*#ê­ yIÒ&ê5ƒ,.6žÔàr)€Žƒ_‡–r%ª]‰.ñ,}ep£ ãsÌñ6M®˜ kí1ÖÜR½¦¥ñÜ ú[\gaÆ cÎ zÇk]JïQyêæq²V20/×v^U »Rn·|ŸH„´¦ë‹Úž®äÿx„ü Ýg­G»‰ë8å¥å6:ñµW"”·ª¸T×-ú檫~P=õ) å€Ê†É¢ûï5[Ž0Š¢+[ûÉGq‘ËÙ\uë§éÓ3¯ç6`Uo¬ìò-endstream endobj 1081 0 obj << /Type /Page /Contents 1082 0 R /Resources 1080 0 R /MediaBox [0 0 612 792] /Parent 1084 0 R >> endobj 1083 0 obj << /D [1081 0 R /XYZ 133.7684 692.1046 null] >> endobj 1080 0 obj << /Font << /F45 711 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1087 0 obj << /Length 1207 /Filter /FlateDecode >> stream xÚ­X[SÛ8~ϯðc²$B’mÙJ)Ò¡3Ýv‡””aL¢3ŽÝÚíô¿¯¤c'V¢„lé0 #Éç;‹q°ü!q]°Ðs§ˆ`9ãy ;3¹ù¾Eªz«¯zÍÏΆ­ãç;qF™3œ6Ñ|Ä8¡Îp2j‡õqû]Þ!a[DeœÎ`%J'@üÇëÕ2«va8‹Ó(zØá´Ý%¦O¥H‹8K;=Bܵ)éÜ ?´.†+Õ`F”âß[£ìL¤Z¹<ô¥œ`D8§Î¼åz’‰R¯$­«Ö_+ÈÆ®fµ9Ì äÜ·8Ìñí0Ÿ¢³Àa^€‚‡Úa?•¨GC)ÂõõbQNúýÇ(‰òYH»g©þc·“,YoœGeôû˜aù—¼©9ò˜€Û@ÝE…Jñ ON`tÉ.8S¿I¶ÇTéô-[Š¼Ø¯ °‹q™åæk½q8Âe Økéf’ž³ù·Dcf4Ф\kÈš/d+=&+•åë½ã¡@ZÓX~ÀÇ=ŽQès×Z‘TíI‰7†•…ø¾éXè[ÀBl[-‰« ë:½tH(HJ9ò¥Î»,"M“¤(eRW#qªÀ²VèÛ†Èu%ñ©ûp´³5Z… ®BbÞ7 ~=(_©¤XçÀ~M‹M—$‹l"CÜUix@:u±«ÝQÛD±Ì+q»Q²6¸^})ã¤ßŸÆ‰>³7të2•Å]Š+‰–’N¶Ò¸ª>o×W ›»ê.P<§eT…I<i£¦êV¨Æú:¨è¡¾ nÛ¶^_åÊ–?e–3Ïph*–ÀhœØ .‹Þi4™è=å‚ûÉâÏh.ºª¶wÇY¢'rdù\_d j:yõi§­ë¥‹ù ˆÊàj¬|VŒU»­;b²˜§Kk{§ð‰ÎmPi„õ ¡¥¼[k½+a]òR/Ö@Ö-¿0B¤©[¿2(«9UDå"¯{ú}”΄qôìE Ȇu×ï,û é$dä+Ý Àfð¿ÖÛ€…d| ¿8m"º¿‚ÈìˆuýØ©¥-Ì4ËFýJ`˜» zøÄûmáeGµ¾RCŽ\æqÛ›RþÄ}ÿ7¼`ïy‚e¤Í×¼ì@¯ùZ+eý{‘Š\^Õ«—»z{¯^æ‹ê]~.Æ@0(&(Âú„öýj6íP¿­êˆþ÷À»¯SuŸW³»êÅž==ÏDºé°ÕûÚâ°ÿ…Ë•¥endstream endobj 1086 0 obj << /Type /Page /Contents 1087 0 R /Resources 1085 0 R /MediaBox [0 0 612 792] /Parent 1084 0 R >> endobj 1088 0 obj << /D [1086 0 R /XYZ 133.7684 692.1046 null] >> endobj 1085 0 obj << /Font << /F45 711 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1091 0 obj << /Length 1140 /Filter /FlateDecode >> stream xÚ­W[oÛ6~÷¯ò2{•’’(ÉÉ ´Iס¶xíƒ ŠDÇÊd1¡ä8Ù°ÿ>^eI–Ý¥ ƒ/ÏùÎD?ä Ï!‰|‡Ä è'] s+&?ŽY4mVMÛËÞÏG§?ûƒ˜`âÌ—m´agž-ÆÑdŠ8¾àiRçå­IÊLw¾ð|7Z33«›÷y™ðgÝŸOblh™ÒÏŸÝðÇPñ ê=ÛR¾é… "Ô! å"ä ‰nÄqmFÚ:ë~nÚze6jo6§àHÈëKždÙE#ü|Y°¤vO”˜WôáDÚñ¤d%=é<`0£;YRyiYóœV]åõÿµÏNŠcL¢—gr¦Xu9ÛV®ÿ"Ô,eëû‚>MUüô°uP}ìaÏlÉÛõ'miòýI½JV´®‘Ñ‚ZW®d:Ëž¯2žßŠšU´ÝºÝéq¥/ÄÞ {îÚ­ŠÖ]%¿Vå„ëz«6.kÊ›%&•Ý^gßÒ £Ð*y4Š"ßLæõjÀ¬„»s}7p‰º‘þ¼)’ò¯£1”—åõï@²â¹Á·‚·d[÷@ iˆÑq÷Ò³×·›=-Gª¨µË§ÜÚ$ªU^áb›[ï‹$¥ýDc…ÞÉโ´¾£åUGöHùÖÞ ŒÎë×IN­âá½(ä—‡2ÉÛïð7ÂÎ;îËÊ»®ŒeÞµ*Él¦?Ö´^±Ì¸BÅzS‰ìèÛ¼”efac¤(¨ Çæ&•X‹·r®ù•‘ì‹=oÅ6EÖ8ò^¸¡îÇ­« ³aƒ1ÜO·D.~¶ÜrÁlÛ³µj›2­Õ­Û*Ý¥Ázñ/—X¢-·Í’LÔÔ\lŒ•}îTuðjÅÀ#"e\ÄÅ8^áÚßz!(ª n?Dͽ¨ó²RI•>Ò’rq 2ÏI]óœÙ˜ÇÌ%Mu‡èCipÙCd†ð,0_Ë Æ’ õ¦ºø !®+ýucžI—ìéù––}šGÉaÿ“lµÏendstream endobj 1090 0 obj << /Type /Page /Contents 1091 0 R /Resources 1089 0 R /MediaBox [0 0 612 792] /Parent 1084 0 R >> endobj 1092 0 obj << /D [1090 0 R /XYZ 133.7684 692.1046 null] >> endobj 1089 0 obj << /Font << /F45 711 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1095 0 obj << /Length 1852 /Filter /FlateDecode >> stream xÚµX[sã4~ϯÈôI€h%Ù–ír™î.—` áiw\GiŽõe³…á¿sŽt䨮Ë2ÃÐN+éèH:úÎUK¿b)‚€Å* —*•LðP-óã‚/ïaò›… ¦Mϵ²}½]<{FË”¥Jªåv?Ü-b*r¹Ý½Z¥ëŒøê¦:=˜òÞ ²Òµ/Þ·ºlLEÃ;Ýžµ¦ÁKSèf½q øJë7Ûï/¶½TƒÃ‹¹(ÓÛÅ«7|¹ƒ+|¿à,H“hy†g"Måò¸BX$„ð”bq»ø¹ßr0k—ÎaÆ1 ã4šÁ"J–1Kc.,‘dIªâ¥Šb&ƒ(°X4mm1Pœ¯¦i_óˆ_m¡çH{¸²ë3"åµÎZ½£ùªvV7m¿ÑÍÍÞ´Ä~®MK[ì»2oÚ¬0íÜ$BPW¤B¸HÊBÚC©>³›™”ÑíöÉ®½r!r£ëwšÎ.+×VíA“œ]£÷]áú§®>Ufnt¹ô)«[“wEV_Æ´Ñžn{ÐVB² Tr$á dWtŸ9ö'/”W%(§Ë{¬ÛêõEŒ ÈßÂNUý€´ØÚ™¬Ü XnªãQ—mÏòäFšrLï °ÉÀñ—ú¼Íî ½ùr* Ù”p«9¬OX*S»êÙ3’qG2fþæVJÒ§5PÒѯöÔÝõõÐvº=T òCVÞë T­~O;›òÃÊ<ê¦ÉîõÓêëï0Âyræ©ÖïLÕ‘5üÖ•¿Ó¢fîÞl*„‘™ŒÛ*:2•›Ÿ~øáÅ[²ã·Ô»š^Ìék`ÿF_Œ1/SNM±ÖMWÌÞÁê,¯:Zñùç–GAÌR*N0§0±œۙʼn„°z¡{±û .¶ Ë]AªKÃttt­Û®&usoÈ)2 FÚüëɘÊ€‰0 lf2Â(ŒÍlR2»@/…d©Ñ(+…œ³P†>) ÎmVZ ±¢Ì$—™ f&^2 \fzJö ™’2ø@*²Y©¥œK¥A,Y˜$.}Xi9IDÑJ¯E´ò’6H Wûº:ºÙªÔ®óšsÙÒ4ö ¢£ëb›•³‘Á4Žø÷Öõƒ÷gæþÐB :£ Y½C³”áê+· ÜéT˜Mo‰‚¥Qäì?ÏZ d qitñêP­e´:küOÇ­C¾²³ˆyžA™-UÀ”ŠÓ%Ô, 逯©úžx~@Þóo† Cþx_ ù 7•"ƒÅTЉº{® µD ¡ª]ë·©1½"rC”éåwÛ[׫î~ÓyëúV«\ ‹OÆÊ!=#ŒHøBx]¹3!‚ŠÎ’ˆŽ‰ê ©U™kGäM°‡P(Èìz‘ëL<§ºB±ß™-Ï\“w¸Ž“}°Ä±‹&?Œ­ÉKx2ˆ‰ ±±ñ˜!,8øöù¯Ø‘¶€@Bæš×ànMÕÕ¹¾rºNùËA¢låÖÓºÒBrÂ]®n»»”dÓ'NNüqÖúZ×µö:;¢=¸¶ÌŽ4kшøxcbêŽwš¦1µakŠ¢COmûuá|l­¢Õ%M`è ]$ü±jé¬öµ¾G¤Æ€S{A³¢xô ,‰“ÝÊ]¥C/xü<÷fÈ>S;ûà׳¡ ¨¬ëkü™ÓÚË£êä£KúªkâmƒøzâTò‹Îv?é/¬@Ó5Q÷N `G€€¥XÃòO1NšrÂäLçS7h*?ëP‡Ý÷­Óg¿Dz …YïáHÏ^ƒ#oæÜƒ\Þ9°²1Þ"öwAÞ$`¾¨\bJ2ÿÇPI‰‚¤g¤=­xÐÙWÙW^^íh‰mASYÙ´J¼¼JHõ8!-«iƒZçÕ}iþc¶+NÁ’tìP¯à´»X(9‚Û;…š£ñ·4sÙ¡* rÁæ¤sƒ°än 1…¶ÞƒÖ{3ë_ßaâãª.éÊ™s,œqˆaoä­˜!œöëúÄ ŒPÖ½4~`6´X\¶ºtÜ>_Óá•kw¦ùÃ4¨àÖØ޼tI2cSå(CÛðŒ¹ ^F‹Þdĉ7 `@ºÓ}6éE´‹*¿Ä-§§A{RfÍ&í7ð]Ir”Zïšñ~øÀ™‰¼`„­ÆÂ»kWù g¼ñxGDœJ/г§¢[Íž ŒPm³(Ž‚‡ìÿ{6ç•­ÑœöÑ{“*î?ÝÓk¦‡×ÆðëÀðyðŸÆŸÆUž8(øäa#|tïŸzAMgY6ÎÛRw´Î”'ÿä¹|ðOTzùÁÃÆu\tíyãõ£2û€€š1Pa:WPÂYôþØ5xŠ“Ãoz𦋃ddr^*¼ü7ºÔƒ"ÃW$Ûu*W9ÌsM‘S¹Fr!\O¨k!¯#í1´ø2§¯¶GåÐóêýÃ=D `ý§¸Àþy¦5[endstream endobj 1094 0 obj << /Type /Page /Contents 1095 0 R /Resources 1093 0 R /MediaBox [0 0 612 792] /Parent 1084 0 R /Annots [ 1097 0 R ] >> endobj 1097 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.6716 357.3801 290.1382 368.284] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1096 0 obj << /D [1094 0 R /XYZ 133.7684 692.1046 null] >> endobj 94 0 obj << /D [1094 0 R /XYZ 133.7684 423.1493 null] >> endobj 1043 0 obj << /D [1094 0 R /XYZ 133.7684 387.311 null] >> endobj 1093 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1100 0 obj << /Length 1679 /Filter /FlateDecode >> stream xÚ­XmÓ8þÞ_íH%jl'q’=݇åUÀ é ÒéˆK[w‘—^^è®N÷ßoÆã¤I6 Hœë±3?3?W8þ Gx Uä;*–Lp_9Û|Ákøør!¬Òª×Z Õž¬_ø³XIå¬÷CkS±Îz÷Á|¹’wßëLo›´¸¦îzK7ÙdšºÏ’&É xìJùiýzñ|ÝCX,äJ €¿>qgx_/8óâ(pNÐáLıtò…çÃ$!D7’-Þ/~ïM¾š©sŽûaÈü0f"'dqÈ…q<,ŠUè(?daÈ#ãø¶,êf¹Rœ»uSÇQN‹i¦ß&¹þÈ~‘4ºnöiÆöis#âtÖ_ÅÌWßo˜*Ûfdks¯-±XÆÆVZô–’¦­q"¿O—THýWjøœ^¥óò«Á0€Ä¶Ÿ,¢yZbåK°ñø1Ùz)ÑhëK¶#ðÛ¡to[ 8É*ìn©£oÒº©g°tÆË£.Hjz0§Þ‹Wë÷ƒ%‡QWÆÒYö ]íÞl̺õ·mÝ”¹•qÿªvÛ”ÕyíËKü‹FïlïƒGƒyçpM ,ÝÍ“níæÚ];&U“nÛ,± 7Iý…Í >ûjwp²™ú|ÛéòØïO£‹:-ílìpÑæ]1ÆfÐÛå9Çšõ–pLžségP`zN0¨Æp±¾zòÛóÏO^½½z÷çÅÐÊga$Åät4mUŒŽ,(_ŽÔþ½—õ¼ØgAÌ}CRLÈSØÌrôP™¨*t„d±Áˆ¤½P°H¢'iÁù˜¥e,­`ée袆CÔ÷U1ãÊó¿s Õ D)箤hŽo®MJ{±r÷mqK±·êÁÃ…\B´±Þ}H}Â<ìßÝqtvzOÚlP²ÂDÒ JQ–e÷ Æjó^í*¬^mü04UÏ»òTw7œ®²Tìÿ˜^Ũ ~äÅz~Hýßï> endobj 1102 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [189.3001 275.3313 280.9564 286.2352] /Subtype/Link/A<> >> endobj 1101 0 obj << /D [1099 0 R /XYZ 133.7684 692.1046 null] >> endobj 98 0 obj << /D [1099 0 R /XYZ 133.7684 394.5904 null] >> endobj 1044 0 obj << /D [1099 0 R /XYZ 133.7684 358.7521 null] >> endobj 1098 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1105 0 obj << /Length 1383 /Filter /FlateDecode >> stream xÚ­WmoÛ6þî_!ôÃ`6CR%e]€./mŠ­ëjÃÐ…,Ó±[J%ºN0ì¿ïNGÉR"7[6_îxw|îEGápøŽp]¨ÐsT$™àžr’Í€;W@|9–iÒpMÚl?ÍGžïD,RR9³e[šÏT$¤3[| 1šHŸßéx‘fW´x ]Ð<Í–#éób›4ÏhsYŒD8Ì7´Ší©³÷£‰ðÜ Jôiözp>kÌli,àJ ‘_>qgwz=àÌBßÙÁ‚3EÒÙ \ !êõ`:ø­Ù¢VGûÀñ‚€yAä÷€ã‡NÀ¢€‹ œ@±Žò<¬°9:MçC£KC3qLã®H¶ÄœÆ˜†Lïh²L×A;&óøe–fq|oMþùÆÏ/.gÓ⿹ÌðÈGîóF’q#Í.€4þµŽKS€£pûY% g®§dGÍÛŸ_¼9ŸM?¿˜ž^^>fQÿ~¨õAmDŒ˜¡ ’X°ø¾¢DÌW8s¿Ÿ6VÛ °+mpÙÕ7‘!Äœôþ!oôî °±G£«¥ õù­üŽN—ù¶H¬Ë~¤LŸœè[£³b»Âô!r}²“<«c‚üAs}{S貑uvþfz9ûƒhön.ã]©€Œ¹$vÏ׺¶8Í®EÇà–É ü7º@{cºâx¯K=6ÅVTSŸä[{ƒçÏhl¶Sg‹u#G„,’Ñüóã~^TU¢8fe9“mQèÌìÓgLÓü«.Zé~4/ PQ|ÙÈ$©Ê<„€µÃ¶íÀÚöS½ 18’GÜ‚°Èui­Ï­Y»¼¸¦Ù\'ñ¶´6åËÎeçÛ«:ÄìÕ–©k²i)xh>Yˆ:1>)âr5®·¹Yßµà/ûñ_ÙÚÞ낪h‘ˆÔ¬šÄó½dŒöCF£¤GŒ.õZ'F/,±‰YO‚ÝÏÙ›ºOȃVü~# äÒôksÐvÙÙƒ;“ëhŠQ7€¾l!Ç`·ªÿ£´}3«ÝãÞDìOÜ&¿1‚š‹ƒ—z=NzE¯ËÝírtöS=î>æñv-´ÙÖ5Ü~áÜI_©Žkþ:ØɈ3/„F»8ˆ ½]›™z—À’EBøÎN*è^|ßo:;Áy»µ“á¾µƒ9¶v¢ÓÚÁ&¶v>µv°Ší)pêÁ›(E¾>Òœ¶Ùª;HÙלJ7b¡ˆ¨¹˜­R¨b®ï—Û,!]_zƒßß"®ªÒ©¨T·D†<Ó´_E#î, ¼nUa‹[9—ÕG;Ö¢©Åâ6ÅÙÓlÒD”€«øÔ@/÷ð¹J ãlA“è ¬A ðÄÃm “ë‘€lG¬ïÊš[¦U<’|ø‰šÎϵ¶ ªO^WU#s¡Ë¤HoКÒê]îY:Æ ÛÆ¬·›¬Ü§cÀ”ô< ¾Æ¾>ª4žAÒâ*DÔÜøŠ(èçwD[è%Þ*Þ® h¹.­$ÌÚRkbžëuŽ/‹eÍ Ú7µÞ=l‘« I\V®“J w«4YÑÙŽ³²ÏK„-¾R¬xªCõç‰`±Ä’ƪÀ ÂÁdT‡ `¢“®Ûyª=ÌŠš{Òfïy•ÔYѰQËmöÝåsÝpWW÷@¶ì~{ÿ¬T¡ün);ÐÉNßžŸÎÞ½ÿ¥úpÔ‹ý7£·„s•õøÙ°ûÏϾVM^"²ýÜU€Ô˜6vµUxÙ—:ÓX5äÊú9;Er¸µÎ?Ó M ’×od¡Ž…<öíÊ>‹iqzŠÕÄØX¡|QùíÝ$î=ÀšGi`ã¦Dendstream endobj 1104 0 obj << /Type /Page /Contents 1105 0 R /Resources 1103 0 R /MediaBox [0 0 612 792] /Parent 1084 0 R >> endobj 1106 0 obj << /D [1104 0 R /XYZ 133.7684 692.1046 null] >> endobj 102 0 obj << /D [1104 0 R /XYZ 133.7684 290.4808 null] >> endobj 1045 0 obj << /D [1104 0 R /XYZ 133.7684 254.6425 null] >> endobj 1103 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1109 0 obj << /Length 1504 /Filter /FlateDecode >> stream xÚ¥W_oÛ6÷§úPÈ@¬”DIn`k›.dûÔƒ"ÓŽZYòDªq6ì»ïŽGÙr¢´Ø† Б<ïïïÎÜcðÇ=†A"ÓÈ“™8‹¤Wl&Ì[Ãá› wL³=×lÈöÓbrzÅ^dRHo±J‹™qá-–|.¦33ÿÊ—e½¦E^Ó÷r“¯Q”_Èé§ÅÛÉëÅþéD$Lr|øÉ‡OÌ[‚žo',³4öî`ÁžeÂÛLÂ.qÎûjr=ùm/rpj¯Ž%I%YÛ¼5eÑUyKëŸ_½'â®4·eM´¹UD¬ÊJD.nKMT‘WÕAºÛüÜis¸ ôfYˈã7’"Të.¨ÖœöJ—õªi7¹)§Ïªm6D]_½~¹x÷þW+‚AV¤A&2{[›å|žw¦ù}kÚ³‹ËÅõ¹3ù²F;>²˜ÕêŽöð7žá ¶·ù³Ì“þ8äøÿbä¥^Ï¥Z•µ:ro«VªUuÑû¯qn.À᥹w¾Ä—Õ]œÏçkez!¦kkÝ ~ʙۦ¬Ío´|½3Üç.(ùMåtúáÈ+³sµ3ªÖàkÔjhþÓùS‰ÕgÃ>k¾¨û»¦]êZª]QuTuÄÖèÞiZ7E™µ<ä óWSu›Z#Þ·¦øþUõ‹º×¨÷÷BµmÁWÔl•î*³B¤P‹a|È¥¢éÜ•³³G^ì·,§ª—½>‹‚$¼—&­4Š'ñ3ǘ%Èa@ÿ~y"!‚, 3 ˆ+ð3ŠCf‚‹Äã°Åy|C©Ü$glˆ"%„„/ ä4ña3õÕ“J†V,³ïÀ÷ͪ'Ä|‡‰BáÂè:™M<«.Š4‘yë61D}òØWí=­t¹ÙVj>E2¥$À]¢š›Ïª0D—Nh¯ÙìÄe'RûÛ¨ÌlŸv<Èâ˜ÊäUnò‹*wFce#a÷m;uÒ7¡%í°5¡ø]60H5®YM­ázèpr„fdzjªª™ŠTíY°îL MÎ*X¢Gmaù€Pƒ¥ÄǸÉÏG¡=¸ˆ™Ï{1¶¾¢9à]›ßã•Ó èsƒ3È*ƒYgÄr”ÐÇ"–9†ëq‡w çß“ðܹ-F©âg\„0` -¥6'xŽÞ–ÊÑ6à‚‡>8©lm–nl’Ô€3r‰…wúIJwj›CÆÇN{t«ÏÉqªÑh£Ë?)Ú ä-^H n5­kU(­s(û˜-™|2qËK‰—©qŒ±|°ýÌ>älO@ÙrŸÚˆþD,&ÿ2…äTcå‘cH¤ß浕d³¢/Ì%<õ×Ý쑚vÍmnˆÒÝvÛ´nÚåN=w¨ éüLJÁf¯63÷ž{¡¬ûkTz1Úû»Aãîdö¹›£†AÙ’ÄË2#s¤Pyðliƒ#˜U\æ•ÓñºÄT èr—·åÎ.«äq[±Îl¸ÑÂËàHšé_w7€8ã-¥­m“Gà #ZÙ°Ÿ^t'-WvL<‚+Ê’|Keò²¢¶}Ô# &iÂ=Á%<†Ãñ¸Wôܳ!ûÈä¦A³è Õ"[m#Ê¥+z6 Û åþe÷Æšñ'¡[hÇÁª4n¢D¬ÿÖ4yu˜Ò\–ŒMi[àúÖ C(â䬃J\×ýXU5õ”çÂV%ÿv¸ë´jgz«Šr¥–'ýS^YƒÍnÃ&‡=¹UÅÝmöó î'û3Yü8.‡ö46äŽi„2>àßÏÿþå6d8ã0¡ …B&az4ÆôZ¡QoT­Zš'†}1̈́߹þJDHúÆ9Q\ι˜ÇnµB”èËîåËŒ ãªöæÞ‰jv÷kÀÛÿ®qØ?`ù÷endstream endobj 1108 0 obj << /Type /Page /Contents 1109 0 R /Resources 1107 0 R /MediaBox [0 0 612 792] /Parent 1111 0 R >> endobj 1110 0 obj << /D [1108 0 R /XYZ 133.7684 692.1046 null] >> endobj 106 0 obj << /D [1108 0 R /XYZ 133.7684 422.9839 null] >> endobj 1046 0 obj << /D [1108 0 R /XYZ 133.7684 387.1456 null] >> endobj 1107 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1114 0 obj << /Length 1884 /Filter /FlateDecode >> stream xÚ¥X_oÛ8 ϧú°&·F“äÿ]; [·]‡a¸[s‡®(TGI¼9¶kËk·Ã}÷#%Ù±wp:I4I‘õ#6¦ð™ãÀݱq¨ëã͈ŽWðñíˆY¦YË5ë²½œž½q½qD"Ÿûãù²«Í#~Äøx¾¸š0g:ã|”b‘d+³f˜O#>·©4Ë×JfU’g°¤¡Nx0½ž¿½ž·Ætö`$ >CSîFW×t¼Ëß(q¢ÐßÂE|¼9.1ÆJ:ºýÙªì|Õ¢C!pƒ€¸Aä „À ljÊtN(w£±ï„;ž£ClÄJ’ð‰z4Î3pSU0gÏÑ?ØbÆBñHs?{6ù”NÔ:©Ìl‘Ë*;TfQ”I¦i„Gfú¹®ì×5ì'K3O²eNš½"âúpp¸W¥ÇÇq^[‘“ËŽ÷IšSf‹tÈä4ǃE6ñÀÐGã±xHÐKJÑÕž»º²|_–íÉvö]æÖ?äÜ*úl†S3Ðç=êI»YCzÊ´…Æý£iNH¸çûû‘Ë+§º¹I”,…ÊË“j—ê…Ñ£Qm€>1ÇU…Á2ßPêI“#WŸ5+£”¸Nà<ä¨j‰ßô'—!‡{±¥Ã\m5 ¾ÏOYë ÞM—¹¿ªjÊâ­Ñp1AžGìWÒè]έ¤‰¢×üwàPQ¶Ÿ€Z¯eJ©ê2kÏÛìçÀ•uöĸÝ$h¤¯?Š€Ã v™ cÆIĘ×BP€Â-ÂAv‘‡ a˜O}pL4e †šì¹„»îO0»Ã¥Må|²]€@´skåeѦ28s&ˆKH©’M’Š2ýf—ªÉj­àVÞO\±ra>` ÖYU—€]¨ð‹3>¹•±¨+»‡Á<œ‰¢H“X(#ŒDžgªŠfƒ’!§Ì›<ˆXi#€p¿j/bóa9í²€0&:dø©\YžÝà5ü³®À@ôöô¢i¯^}¢”«j× Îáf¹á®;×rýdoÎ:P‘z{›¸ÛØ,d•¬2¹0+•[ª¥¨’&hIfyÖ¶£%\©ˆ%B€© ³ˆ â@jáÎs-껥mÈÍÂMäÊÐDi9± š™®ø0hAÕ1ž:¦‡€iqZÛ|Dá4µÛ4ûÅyZo¬¼MQ˜]¡òsXÎúÙcRüM*l#rzj=/kym{“lÑFÃÆE×\¹h+(óÜs­?ä ,q|ø!õ`F/Š4c’´÷H2ÞkRe(…(•¡ä»ò;s7Öí¤˜9„ùÎØ6Äu™ÿ“óµöÁ1áÚ·v“7p'u¤ð8ãDf–h€ÕÂ¥<Œe÷Iƒ©´ÐÛ”§tE|W'¥ÜAY W¨ÑM÷ž“½2ÆCèÐðj–A t¯Ö~ÐpϺìOèË<º[­º¾6o ôq޹„EüÇ]ò@¿Õ¼eÌÑè¾Û>]LzjJf?É,ù‰.å}¡J¦2VÒ®ÌñWĬæù.w1Ä…†ÛÔvÒ5¤y?uß!ÃÍá,ÏšÝ{PlÌÛ}¥¢y…‰rUodMÌœ㛋ùåŽ^xÓ쇸±'Þoý>ÄÒuØ£}3.ëL›(ÒDÙxÞ ûMɪ f’=jz Q•|ôÝøUÆúÍ£ :®ì£g½¨õ³?öÎA†+zÝ{¡üñþìÃëùåÍÙå«‹‹ƒGÅØŽØüìåû×7//>œ}ü{+y«c§¨U~S¨òƒmí,.²eb’:“÷Û³@ÂÀÁg²LÔÁöÃG¸ÿÑR¤•üÑ{zößÏÿz²—â§½Mg/dÓávÖµžN' ¡²ÝX÷^°_ôÞ¥°‡{ÒÞØ½¡(†Â©m#æ"i—‹ü^–—òN¿OõOg¨[Ÿe£Èf;;rÚG÷`~Ñ`ûÎÛ©|8Yä5Xôbȃ8~þè(Œˆã»ÑP¶ãûß¿u^SŒB{λ¿ù€¤NØ{L5Va0ÞÊ hºðèõ/_µ­ç26ß œ2ffÌ?füس+]˜0¨¸h0½ºµ¥é<ø¶Úo Û߯ö»ª$endstream endobj 1113 0 obj << /Type /Page /Contents 1114 0 R /Resources 1112 0 R /MediaBox [0 0 612 792] /Parent 1111 0 R /Annots [ 1116 0 R 1117 0 R ] >> endobj 1116 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.8785 414.0017 222.3451 424.9057] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1117 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.1668 369.2885 419.6333 380.1924] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1115 0 obj << /D [1113 0 R /XYZ 133.7684 692.1046 null] >> endobj 110 0 obj << /D [1113 0 R /XYZ 133.7684 479.7709 null] >> endobj 1047 0 obj << /D [1113 0 R /XYZ 133.7684 443.9327 null] >> endobj 1112 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1120 0 obj << /Length 2164 /Filter /FlateDecode >> stream xÚ­XmS#7þίpñáj\ÁZIóîe·Š°»Ú$ ÷‰¥¶†±Œçn<ãÌ ,uuÿýºÕ’<¶‡#› ¦%µZ­ÖÓ/’˜pøáû,Ž’`¥’ D“|}Ä'0øÃ‘0L3Ç5²}sôæ2')K#Mn–Ci!‹R!'7‹[OÓ™ ¹÷Ie‹¢z ÆSÑ­ˆºøÚ©j¡Ôº,JEÔÇlm¨ëçªË¾Ng"€O&Ó»›ŸŽ.nœ~ƒe‹y$P»ßŽnïød›ùéˆ3?MÂÉ48i*'ë#?€IBÛS]ýêDFõÔ1«qÌ‚8 G¬&“˜¥1Ú*±d\é$ c&ýÐ×Vé²ûR±¼.ûuõ™‡üx‘×ëM©¾ÎšºîÚc謓5MöÜ"Ëtqîåù âÄ'YߢQ@¯™HX*S½DÛ-æóǬÌP±žÒG˜õN—euïiÀ|–K'/eA‡<ªòò•·Ê.—FÙàw¨š×}gÔ4zn®ª%bö^!HÚ¢Öë®}{ËïPÖ.»–`*ÿš%Ä·.Ѩ®o*bäÄ0l1 i¾ÿ¾ˆà0ˆ˜ üTŽÉ1‡ŸQg2ìâ‰,"ÜñÆPú,Iì¼Qp>tG™XwjàŽÐ2î”qG Œ;¾¸ÉÁuâWÉ€K«.åX Ž„ 9Ìœÿ/Zü†^V¶5õlê¶-îµ¢Ðêj3¾Ù”ÏÔ¥¦"ô¶û‚žÏœKšzí z[hˆ#ä™Yj¡Ú¼)îí䢢o¾Ê6j¨!8ñÖK£ÆJ9„–†!ÃWîfÀ oU}VÌdaq¥*iÜñ@c‘u›Îü@z7+E¬Ë¾Ê;€+qÜ«²žÊÐ{¢f»¢VK¼õvÏ›"ÏJjQ2pà)6t_ßâ’;j rý•‰Å÷Y[äg “Q2 €ˆbi‡šÃóiË?NÁÁ\Ôåüœl8Ÿ_^Ý\ïë"¥dI*÷uÙ¢ãzE)Cæ'~¸«A^Wm×ôyW7Ó0ôy:$ŸH„z{,hV:®$ÚÇ`oÑ£ÔЧ*1Dž†|7YÓѰôÐq@‡Ã1tÊÁ9`ɽ«ÊÎ)Œ¼ÖÝu¿ÙÔMGqq¨"¸=x!T”»*î¥GÇõŠbà2LľÜUŒ@‘«ÍÖ‹Öz¢ ‰:¬/‘Wc4䃒DÍl+'1^Í8Ô„ÝŠš–{6d¹›ÙJÓ±á"úþRtúêU©'êÀ!}÷Y?cmÌ€áÀúåìîø+êʽšE÷ë[‘ý{KBÞ¼¡ïÏÙXüû?²øEӀݓh#áô§ÂPò3,nSSÕ¸ÛVÖé pWY§ÞRep52Ý6B?„ÿmŠt‘ !Wî±€jêÔVXy÷Zê.ÖÙÃh±]ÖyÖÙŒqPCì-6U˜%ôU×°©uVTF¿¾jgY©ûøpcãñD¦ Cž¾ÿl8aÄ×äƒÀ8€ ’=-öýÜr½¶ö4\›é{ËK~*c1$H§ŸÙÇü4Áuƒ­TT ¨Ìe 9›¶ézаµêí9ØtŸ˜Drgĺƹ-‚°áÞ¨IõR˜†ô“€2œxóÄï/ÿ8ûxqsýåìúüꊺ²¥¾(ê÷›A™2KêøÂ€¥Ó—Mל¢Ë¿ßy©÷j;Ö1aG»[[Jšž—vuâÝñ6XèšmŒï…‡”ãϪqÓÍ ­28vGæÁkŒ©C/¬|~pgúÿ^dfNüàaæ\_þfÀà»WÖ´ë Ÿ¼Œ-w²öó¨°¦8]Ô=Dsz =±PíØÃ‘^õ©ÆH¨·µªûrA4Ý,*ª¼ìxc¦êr»Ì³Û©¾%!ýõÓÎ7Ù€†§]¬;Pë“Ìpyk¢·£’J÷èvïÞ.’_°¬÷jÈ2Å;n2Yqª§›ÖwßÎá¿¶N³ÛânÐPJü~»/ìbrô™,I™£aþÌ-öO¿c^Ü *µÁÃ}áÕOvÊ «îíUaAi3-ån¦©ôz“?¨œˆˆ>’ A”ˆæBÎCÓZbªµežËYô¢dîê¯Ïê ºWöƒý)®HPendstream endobj 1119 0 obj << /Type /Page /Contents 1120 0 R /Resources 1118 0 R /MediaBox [0 0 612 792] /Parent 1111 0 R /Annots [ 1122 0 R 1123 0 R 1124 0 R ] >> endobj 1122 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.4005 470.5769 223.8891 479.4235] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1123 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [180.911 359.5473 335.6788 370.4512] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 1124 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [342.2545 291.3978 369.721 302.3018] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1121 0 obj << /D [1119 0 R /XYZ 133.7684 692.1046 null] >> endobj 114 0 obj << /D [1119 0 R /XYZ 133.7684 546.2439 null] >> endobj 1048 0 obj << /D [1119 0 R /XYZ 133.7684 510.4057 null] >> endobj 1118 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1129 0 obj << /Length 2636 /Filter /FlateDecode >> stream xÚ¥]ã¶ñ}…Ÿ93$ERÒ¦(lrÉ¥ z͹ÈÃehez­V–|’œ=?ô¿w†CÊ’V{W X,4‡Ãùâ -VþÄJÄ1KLªV&“LpeVÅñ†¯aò‡á‰6ÕfLöíöæ«×J¯2–iVÛý˜›f&rµÝ½„^o¤æÑ¯‡¼ÿb'QGã·íZ¤‘ílÝ¿Z¦ø¹ìº²~ô³y½#à.¯*@ûÁë7Ûwoþ¾Þ¤‰Ì"™­ï·?Ý|¿„É$XÂ@Ñ?ܼ¿ç«œô§Îâ,Õ«'p&²L®Ž7±‚EBˆ€©nÞÝüc`9šuK—T¦’„©$Ó *Óé*aYÂ…S™–,ÍL²2*aIÂS§²Ööç¶^o çÿFP,V&^m2¦ ¨éþóòi%œ6öÂ1©Q>ü,[uDL"&+!Y&„ž˜Ugã0Ì*8VS©³šLÁ®ƒMa4ŸÙFdS®6Å·éK‡Ó™aRˆÏ9ë˜ÌKÊ%gÕ‰`ç•gÕ9gàpLÁ2­)ÂNƒÆU,£¼êÍùñ0WŸä) |@ëŒ )©§ÚGOóËH‘ýf¼à¹"ŸóE™îîèϤµaÌLŠ™ªÏí'Lk“N÷-mâL£ÊÇÍg&êžÚf-tôG¹³4‘÷ͱ,h²µùî«§¶ìý\s²mŽV÷,apûQDrð =Œ!Üæý!¯15 ب<–}¹–°îh z©< ¶-OçÊíÀ`G¯‘´i)»Y|̧ʺ,(Q Ú'?qM‰ÈÝh Ÿñ^§ní ØfÉþ@QóÞQe“£ãøéP=§,* líŽà‡ }Q…^”ÌKhx„:°0íÛsÑ7m‡Ç†”ÿtUåmuYáY J K’’) ÜI'|ï¾ü’R_aOx Buv>ÓÀÈ›“X‘áëÒï@Ôõyî.p*/ gäÑ;,˜ÈJñ`û'k‘u–E?~÷O䔥ÑSÙJÍé3xÀ¥'óSK¾èA~€½ü¸&°õŽð`M"y[Ï"S©Œi¡ –@ú˜‹ô3ùa ßŒ<Ñç|?•T¢X–¦s)ž]¯žês{?ã†{¿¢ø•`Rr5u­IÄC<ö—S‰n~Á¡tO¨eü–uoÛ:÷X0ðíí1ÿ÷Z@ônewwn[HοqÍá_̹4žKNÝÉ%j¦ð»çà 2DyÌí8Yô¶†«£žMà'5Ap¾}Ó4­ýp¶…’^ó Ž­Ü³Aš„©¨øÉõä1Ÿæ︱ˆH/(èÅO¡b\ÄA@‹D_TyבÞOqÀ(‰ï¾FT‚‹;?[bÂ<‚ÖiˆÚ^L#½»bMD®ø;ú÷‘„8™ GTçÓRΜ΀ÊÐxã¥d .I²èMMdþš7 UgiªÌX9O6ísRÚ'ß…#òµäCNˆ Àž¾(÷8q Žþjþ¼é!­(Ž™8Îdô·æƒÀâè]ßR ‡S¯«Æ_=ÈÂ) »mà<Ò™oæP÷r®dÍR ðg’M ßŒ,ü3¾ŸN6¾JŸJñb-ÿ齇ŠRqAåSBÝ]=–à¶}^ÖCб>/@:PÁœmwÍBÃ%âèžË‚ÃÐÝäÕÙ†Tµ›¬”Áþ£Ícô—¥qKÀKϸøÚ¦;ŸNUéÊ*pZÚª-1Q««”G˜öhMøŽ*b\ãîР„Ê“Ö47ì÷Wdüìp0ár·vo!»‹)ò™$2©vÁ'úZ›àÀ§NIAP¾u ªè&¤xðøÎ‰HD*hÙ^Ȱõ>ÛZÏ?ï–J„ QåC,”2«hh.ï ºžõùh['1*šÌíÔÜ{îÅ!oó¢ÇòaFâdœõö1ϘÑp“r'qÝôD4ƒÍl ?Ùø›V(Óµ™Ù§iá¾aXÄà3Öåvh(]éÃ9•1|r¯Mê˜êlOæ:üíñÁD‡†Í³C·…©¬C¶ΞŸ‹¸-º/× zÌ‚ Öúb­µëo33½8¡a¸Þ„·£6)»ÚÈÞÒè÷Xêåí…ð€¾'<Ýä|ÿ±÷Ä:zï\dÁ£ºóÕ¿„âÐB:ÆÒÞMˆ‘ÑRΠ÷½Ñþ¼`Ö„%Šgž¿Î–ønª„ ný_–ü„3.òo0áT ¬â”%±úŸe[’Æ0ž&âÂL8ÜcÝ«i“ˆ=ž«¾b—S²MÔ5ç¶°wpmRw*ÀáÁímÑœð^½`ÙçŽF“°ÅŸ|§£àx4‚%¥; Ñyhß6G‚¨öv%Ø]9 ÉáÁîU»Ù=PЦGê´o‹ážžü%Ï  xTd7}‚ /Ág±Ž:^íjÍl5^•Ó‡”6Eåž1¶¤r¯*š:)Íe Ú1¿ÎE  ŒÚ/bü’ƒÐlN¨Á?pD¡uúúLsNGø%¤àäÈ®¦iRHÙùÛOßa9nšwÖ~ò‚£ˆ ‘wÖ{43L¡{Ã××k86¾…‹Í³ 1¾Kt4;_Ç: ÅbeC£ÙËå=Ìvqš"|k…*z0½¼~á¤c7réšcô³åô@q( þªpU:÷ù ѳ¶LLª$pU˜˜´ªˆžÉï=Ñ@9 )'¼ŒÅè2ÍñºÆW÷K8»hã¦{ñ4ßcF%3~]€é¦Ç]ºKÝçd |ÍvÅ# §/I’ Æ­.ÞA|EæøAjŒ84¡5$éêÕr_â¹Ýµ‹Õ(•9áa!uC8BŒWÕÕÔã‡ë»*^ï{ÿÜàrp©â\å-M‡7˜BÄËß¹ÍXïUK&q;hÚ!x{ñ}§ÊŒzù×`¯ ±Xü9 þýÞÿ÷_£ßW,–㟠˒8ôÂiÆb£2wèœ9‡7¦>¶ëLFg-g  }$‚ an…¼Õ~´GÕ†G°¡¿w#ÊçÀªùxz±é¢ö_%½x¸endstream endobj 1128 0 obj << /Type /Page /Contents 1129 0 R /Resources 1127 0 R /MediaBox [0 0 612 792] /Parent 1111 0 R /Annots [ 1132 0 R 1133 0 R 1134 0 R ] >> endobj 1132 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [207.1463 555.9693 234.6128 566.8733] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1133 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [448.5185 508.1487 475.9851 519.0526] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1134 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [451.0092 442.7036 478.4757 453.6076] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1130 0 obj << /D [1128 0 R /XYZ 133.7684 692.1046 null] >> endobj 118 0 obj << /D [1128 0 R /XYZ 133.7684 621.7385 null] >> endobj 1131 0 obj << /D [1128 0 R /XYZ 133.7684 585.9003 null] >> endobj 1135 0 obj << /D [1128 0 R /XYZ 173.3296 160.1662 null] >> endobj 122 0 obj << /D [1128 0 R /XYZ 133.7684 145.4964 null] >> endobj 1127 0 obj << /Font << /F45 711 0 R /F58 909 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1138 0 obj << /Length 2591 /Filter /FlateDecode >> stream xÚ¥Y[³Û6~?¿Âo+ÏÔ¬HQ·<ìæ'Ùt¶I6õ^fÒLG–yŽÕÈ’«KrNýIÓ¶,§³“9/ ‚øæ‹þñ"–&™\$¹`<”É¢Üß…‹G˜|}Ç ÑÊQ­|²¿­ï¾%ãEÎòD$‹õƒÏ-fIÎÅb½ýð˜ñ劇aügW YFiÐ/W"ƒ·í@÷Ý’gêUƒBB' —ŸÖ?Þݯ{ÎÒ0á¨Åïw?…‹-(ýã]È¢<‹_¡2žçb±¿‹$,âœÛ‘úîç»:–Þ¬^:µ{™¦L¦y<±û8]ð¥q~¶ý8e"Š£éíËLo_dfûÐxßÑÖ¯n†Q"oŽG¦õbòt"Á²,¡ÓYïAٶݶjŠÁôëjÓÝ3uöESƺª¶1g÷±ü% ÅÐW­#‹ÚðÚ‡AuÔI?Ñ·è çÆžz?m7¨-ÃÃnVùÊY9Ëã˜k}udº×~©¶j‹#±‘Sªè+­ -UûC­öÐûªy4;å8T7Tª§ ­Œ;‚~(šmÑqö“8øîT_:}PâÂLÐð8@ïèi†¢jT×Ó¤ª`UGí¢®Û¥ˆá|t÷ n\•plÕÊðBÕ Aÿ—0«†X;ñeÑ›ìmBå/(¤¨‹®+ž{àÁ%rh÷€¯§=ôŽÚC§¨A›a·ï©?@8šVñ½ åæÂù[ÊùÐV Ìôà2Š‚7Øîµ´g‚RSŽ¡·‡îDþù+ÉP¿n‹¡  ë:Ø‹|Ï¡é¢1ßVB”Vh2òw¨H>À¢¢Üú”þ’à(苽aÕ(<-ö6abՔš7án‚w»…Õë“„îæù›ZQ^±»ÞŒé\%äã:E ž0!b~TäùIŒÍVuõ3yQ"éÉã™È@sÛªƒ;½Ö€ñDɚЉ±‡Âõ’-d”²4o]Ž~å/˜0ÛßÙ#Ëæ&XNµ8?2KuKv÷@‰l“qÀ2€:Èbÿá_4RÖ\˜½9Lè;Ã;M;ìèwÅR„&ÍàHf.n<ÿqßÄŠÚo0/#`†lðž0 +„FÆ£¾Â]dätj»¦?A‹ñëfìLA™Ný>‚èÌ,ƒjɃ†šG/Š­ãÀdkfÑ9;E‚ï(…(Ùµcm8½,‹Ñ º«††·­¹BÔT= îsªc’î–2œ»©=±)'øÇ»·¯ñÏþú³'à í­B†Måýøã½Z:‡Ž36&Þ«æ˜/P7¶3§B2(ž¬ˆÁ,2þsx„Ë…2–ߌGü3xÄ‘}9Õâ*™—íðȉlÁ <òJm<,¢[÷ جԿõ.Åž¿€$“<‰¾ÕlŽþ†ê—|gßar¼C9o6GuKö7”ýâjÉr%2Ÿ’ Tüß¿#ûÙªÞHø?ã¯PAøhÜj…º¿Vþ-ÈDŽýÅe½Ì¡Ö3ðƒ*©‘X?à·òä/bÓ{Àh´éÛˆýɆXµOÏêâ™ÕýÊ=a°ÿÓÈÅúendstream endobj 1137 0 obj << /Type /Page /Contents 1138 0 R /Resources 1136 0 R /MediaBox [0 0 612 792] /Parent 1111 0 R /Annots [ 1140 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R ] >> endobj 1140 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.2729 552.3329 271.7394 563.2369] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1142 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [323.5232 446.5927 350.9898 457.4966] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1143 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [356.3986 434.6375 383.8651 445.5415] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1144 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.7525 398.772 428.219 409.676] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1145 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.6808 283.7226 211.1474 294.6266] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1146 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.6808 136.8923 211.1474 147.7963] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1147 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [367.4201 136.8923 394.8866 147.7963] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1139 0 obj << /D [1137 0 R /XYZ 133.7684 692.1046 null] >> endobj 1141 0 obj << /D [1137 0 R /XYZ 468.7384 508.2821 null] >> endobj 126 0 obj << /D [1137 0 R /XYZ 133.7684 491.555 null] >> endobj 130 0 obj << /D [1137 0 R /XYZ 133.7684 338.3138 null] >> endobj 967 0 obj << /D [1137 0 R /XYZ 133.7684 304.2613 null] >> endobj 1136 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1150 0 obj << /Length 2703 /Filter /FlateDecode >> stream xÚ­ZmoÛ8þž_áÃ}¨Œ­U’z7$iúvÝn·Í޻ݲÌغʒO”šfýÍpHYré€;†ÈáCqÞž¡Â þø‚{ž…±¿ár懋ìpÁ;|}Á ÓªãZõÙ®n/^¼òƒEâ&¡·wýÕ7L¸XÜnwx¸\‰€9ë%¹äó-¯ZEÔO²©’ÔùP5é„ãñå·ï.nn»ôÖçnÄBŽÛø÷Åï°Åvý^‹{è0—'‰X.<&qÎ-¥¸ø|ñs·doTO{ýŽZn G0wHAä /ð»C¢Hs ãEdž‡ôEˆàÑ뜢-ú >–k¹Ë*'ˆÝ0 †b¯÷2ûªÚÃ^Íw®ÓcºÉ‹¼yXã^Î7θëÅ@bzªOs²Á µ,ÒFn©s×–Y“W¥¢î>] æ|CýK¤ÎFÊ’ÆÒíÖÎj*óÜKܼ •»âÜM‚€¬êÍË_€ '+R¥žC[ÄÎý>ÏöHöœ²ZŠÀ¹'ž´(¨«h°U²V4¤ÅIÉÆð–[¢ÐNëüîÁ2ojÖØæµÌšÂ ÞÕÕAo— ·™—*ßÊGš}8Öp‚ÍxÂXÔ;Ãñ©¯aÃ½ê±ØÕÙšZ½×_:—/8s}ŸñáÎ «cš–ûh-ì>íºÌ5dÑœõئ|ȲÍûФܓË÷¡¾X𚦭órËãÎM­ã\US÷G©Tº“jÔ£xâFïºÝKšó*oÔÍ÷LÑ{ˆ´¡ -mïÔìl;ª©ji`>5ª¶9¶ñ#+m` ²®i«‰s ­‚/ Ÿ“ 9oð;YZa#éY˦Î%n\ÅðkWÐ3`Ј\Ýѳٛé:ôß2vT»é^flþ¦ÆÜê>oö”2RzdàâÔB‡ÖϽI*¥´§ÁÑ®×æ•¿°€Á[Oq1—ÅsɲÇ5a–kÖ‚'…v|.tÔ~û2ߎd°K®£3ÓŠä sþç&î‘VÕ†øì¢cµg²hœ$Æž?؃Çy½d€Ý¬:â²—EAb´¥`L8_õ64ÉJ¿†¼‚„]6|dÒVàÀ8Èr}¡mÃÇОUi»íÉ£q»5â¦)§4efk+¢63 ‘™A'$¤h v!-°Ø¸4{B»ó±kcý^÷X :w”µ`0¥Ç±ÝyF,Àþ¹”É®•4|z1dЙ¨‡jK9-ЪÇÈsÕè0†##*€w ½ÀY 7ÎõÆ/ ¥ó¶G‚ û.Ð<ÈÃFÖÔÞVY{e“š¡*36"”z¸Ââ fZO#‡ÚwuJŠÃ€Qš½óúr;áêL¸!cÉœ¯÷ئœÝ²Í{û¤Ü“»ŸË÷÷¾Ø·ˆxp1s>CØ|—ÃÈõÄÅ4§¤ díÐ k’. £¨V%vø4i™I3¦£?’uf‚yi…Ø*ÇN»ùÞ¼!;[Ù ÌÀŸß% ©0|kžo%iÜ€9ßùSÖ•™B@oOÏéô†ôrôû:oÌZWŸ¯/ßßs·îÕo«1“»ùôîųh”'(€ ù 4ªœ,€Ä}I´.waGµÇc k9JŽçæÂ7î ƒ®A”E×B£ë‘í6òp¬ê´ÎÎ Á4¨qÁlä!²"±:¸1Ü€¬- TFfºêY dhZˆó·K‹ÜÈg6gÜŽ¬B®Š¬%þ}dhy‰e° ûÒG/‘êè„$Ë¡ec¹0ߺ+9ÊA/Ý r=1|/p9æ"FŸm"btl³cZn1ɱ?æ*“E‘–R—혿?H“×_Y/”$À]¢»o ¹^ïdóÉ”dùŸ=ü…Kbû7…"›z~DOJv~¥þ;¬ª’œŸTgE aßzMÅÐÇ*/Y[™Ï)\WE{DxLkP±tiQ¥à L.‹§«vg1åwèFm‹<—ñ ˜±‰>Û„Mtl³61-·³‰9¹d±¯ÞÞ~F˜î”ƒP_·YCu„¡Ÿž¿RìÄ&`ÓÊR(¾u¥h|æaDÖÀ® z‡á2m‹†º÷{iì|ß±¬µL·£a¸*u@ ˜ ®–q²°OB^cQÁÆð½– í7ÈaÚ*ŸÔªÏ!LÌzzŸmJ«–m^«“rOZ‘k´ÚK^‡]êƒf?UÆ¡s/k3PV 50aPB‚N—3°óá—÷ï©¥/P Sèô G+po[6Ÿ©³l‹o8+5¥Þ‘<™::½¦æVQ'ù~5ÈþÏšgPKG¡?§ùÛ”æ-Û¼æ'åž4?#×h¾/öjBãpÏ5ÞDh/G’örÀÖÑ‘f¯ÛpFJHGÑ<¥€|VW V¤òÞð+¢Ñ<èë’t§ÓíóÑ ²•ÈwvùÐ" ©"Ïx}™$ Ågj϶YfÛ# KáCÕ6¾óì/Ï (Še–ãdX0©ø,À«“‘ZéX¤Cåª 9xœptŽ5 áú:tÏÇ:ª"dC¥Õª¡½I#K¥±É*‘óÖŒ)Pì½Ø–ÏðT µ»l„œ~,”Á?LtÆ*ÊøWwí’—öÚ%WöJFÉY¯»,·¦u%ÁýU-'O¾+üp.‘öÙ&¯c›u¼i¹ãÍÉ%Ljý\¡u – "Íñ„uxƒþ_ó2+Z8Yì@90üAîÚL+¥$$ m*¿ ‘U‡c^X…žúæ»DËÁ–¹æF»3V]¸zv?ü˜Ø&Ó'ÕÙB¥žKc ïÒº¬¬:¡(º=½J³¯ºueDPìp„Ó—"½UªÂW¿KùôAhÂ,úlfѱ͚ŴÜÎ,æä’Y ÄêâÊÓ*µŽJA H¶ÑE]w „f‘AlQÔî®]p™^ ‡îÙÇXäTö²ÄÖŽ /yG‘Õ¡Òßñ콯{”<àyH·’ZǺj ÄËí i¥1{7"XûR„4¥§ˆ!Òð:¤á9â¯4Êv0¤»¶¨7b¿ùáXÈÓaE´MƒFD"ІjõéÑbšk#i„@'¶èzÛ³Ÿ2!æÖÚcq,˜‹—‚bÊ í!€Ž^ù5{Kyw ‚ 8u{Àî(b¸Ïu´Õ_·Ìœ `߯4çtÛÎñèåj˜ÝŠû[C3¡<¼^gEUê ¡¯tÖkN£úîÝ_þŠU\UoŸŸÝ³ëù›¼9B94aV©ç3Æ.E)u˜›§êBMUc×û´ÜI3 ÃàÈ'·0Џþè"ÿÝ4ÿª?aü³Ûpݹoo³†»ùòÆÍ×”lкú<ÊænL§P÷?­sö‚EO_Zĉë…þhE?ãOÿó×ö~(Ưº¢ ºIäŃÿ#°»Â×z-KD 6ãX r»L„Óš—|)3j˜9Œ›o:<\s±î¾ð áU¦pèt5Èd/«ï;ºOî˜E®%ÁØý©ì!çendstream endobj 1149 0 obj << /Type /Page /Contents 1150 0 R /Resources 1148 0 R /MediaBox [0 0 612 792] /Parent 1111 0 R /Annots [ 1152 0 R 1153 0 R ] >> endobj 1152 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.9698 632.2292 211.4363 641.0759] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1153 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.6808 116.0997 211.1474 127.0036] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1151 0 obj << /D [1149 0 R /XYZ 133.7684 692.1046 null] >> endobj 1148 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1156 0 obj << /Length 2815 /Filter /FlateDecode >> stream xÚ¥]“›8ò}~…ß–© B|ÎÛd’ìNö²7—qî¶v³• ©`ðÈŒï×_·ZÂ`cØ««Ô„V«Q7­þRËláÀ?¶`œÛay‹ vmæxÁ"Ý]9‹'˜üéŠi¢eGµì“½Y]½~ïù‹ØŽ7X¬6ýÕ|;ˆ™»XeX,¸^º¾c=Ô×,²Ä5ó­ïyÕ6„ý$ ‘4‚¿VR Þõ|×âîõŸ«WïV ½õ™:C1þ}õÇŸÎ"©?\96#ñ Çfqì.vW܃—cS\=^ý£[²7«^ûüŽ ;Ì)Ém—û^§$×í+Éwl× ¢EG†JúâºþÙçú´ÈÃEÁs¾†j–od¡?dû>ÁýPJ÷¹µK2µž%+¬¯]ÇjŸô|^Òì]U´»’pÏu.I™Ñ¼ÂÝÖurÐ/nÚ2•yUêáó6O·šTÔúí}-–¨ø¬%cvìûd?ß•„¥ÌË' d¡%·‚dÓa« =¿_»¾•Ôy².Äò9Ïä–ð©’¹±aÇÖmÑà²À*+|ᙈ’¢ a3ÂAéž_Ç%µe£¦`К) žsƒN:Õ8ð5‰4XíͶª¥¨»ùÒ@z¾'€Y8Ú—Ý…q°î8œ³Ûٔݲy»ä{´Û¾ÚnûlWJq`ýüöóÍM-’ì¶(~ÁSñåÐ|q|þQó£Ñs^•=‹ª|RúXnëÎ"`˜oôSêgC϶DÓ¯èeP‚’¡]0%ô>©ež¶Eœ8s¬o×ðÉûŒ`Ug`^̬û²‘j-ΘâŒä$6BÍ·|?œSž‡ˆ]¥â«2šBáÔs+ˆ¤T,_䜫-|ë˜y#Y¢­7«Jm”û:ßÛm¬•A Ô¦qbBæú¹©«&¯óýž< F•¶ø¶Ì{i }DÚFÙýbézvì¾íÇ—PÖ;pž'¡eÝTõ™©FWÈ~Àí(öb2UœªŸ4ͧ¾Ñúeÿ…£=[WIs‡#›S)\¹Ég§Rœ8LG5ÃÛe®x,ò†„IZ¨û 7xí„6 ²†QgS™àØí“É7CÏ#›;Ž7zúd¡§#› =Ó|»Ð3Ç—BÏ€íŠüÈ·Þ߯onÒj†x@\?Ð År[q ø¹®¤ "iV€ws‘!É_}C¨h_ˆW0àLk\ÒL–gD[Vr,àtÙlèuÆ5×zc“4Mc\¬ÛøM[ƒ z°«²I“.SBƒ’àdx_øn`sÏç3>ÕÑ/û/œïÆùºS>å9žíqçTŠKè¨fxŸ¯†¼/g\ß lo®N<M™<ÍüÇ£¹OrÔÆ~dø¯­À@ìD*³‘×à ­vÕµÅÀâ>ÄØWgQ-ŽlÏù@´‹VÐQO yºæ”p—Û1ç|J5Í$W›î?Ð Ôhm¡Ъp ÅJ~s¿z¸ÿ ¡.‹ûëío÷”®XÚÜýanËox ­:ÑÎèF¦$lǰĊ‹M0ÖAÙE®×Z'´w€ªôB =ö‰T…9Ì4íz—K)ô¢ëÃX„y@QHÞß("|€ØÐT¥­J¯KÎá®íGÞ\Nè“M8HG6ë"Ó|;'™ãKn2`K9Áã֛ǻۿ½CØÛK"ê (¤Z åWˆÏŸÊªVùðXw"’Ò ÞüþîÓß wqeHåxÊ–ôN‚§œ‘Ž*À¼‘—#D;8bóxn“zdS›dÈæ7i’ïq“føêMê³½«G¥‡:+òÎŒ­\V›e‰X¦m – ‰™ÝÜ4`ãåÓ×¾oé5Ò¯€;3r_å%œÛ BbÁ8©"ï!ùà òal?Ò¤5YZ'ÍV—dGçÅCaÏ1yë:ûÔ; ?Bö÷ÅÞÿVó˜CÅéñ¿\÷_˜(Š;²¿T¥¸XOóîŠâof#E1c¯à¢cpܾG3ŽÑ'›pŒŽlÖ1¦ùvŽ1Ç—cÀö6Ë(ê€É&ûu^äò@CU‹z¡éñ(Š^òDZIþ`æ´Ê´h3Ð"+ G)tJK%û=&2œÙ·ë"OÇ4æs»Ô#›Ú%C6¿K“|»4ÃWïRŸí}I1ŽI–Ý£æQñ»R×"•&yè¤Á¬¢zý*œî¹!˜nEú­! Uî«\AìÂuéAï$£]+t/A”MníÇ6Wwtl’†¨P©Ëv·s€¸:±™q4—‹údS›iÈæ7s’ïq3gøêÍì³½Ã]¼ÇtιÅmÇ%¨%h*£…E:ýN›J‚wBé `ϪóT|-×¹lhN¹-<Ë*oôdðwë#6xÇÚO³¯J]壣«,pHî§œŸ»ïaÅYÓd¯¹†ñ@?ñ?˼°Ó—LgNlÝ6z5I$„|…¡ò¬ÛD¶K¨Ú麥ysÁ’ _Ÿ¦Ï·£ŽÆvEÁÜÄÐ/û/Œ$“³u'YÈàÈÈÜ)N™¡šãr;âȼ!ðB\†³9õ$^(’ºÈÍ9¾§µ¦S›z“¼ä„®Bð¹ˆÚ'›pÂŽlÖ §ùvN8Ç—œpÀöþ¬uÁBÇŽüØ?az¹ò1ôsìÏÖU—/ p{{&q#æù3n¨f8»Ž °ã9ë®jŽn‹Å*¤g¨"{­c A1™B›:¥Æf’omAˆQ¥2<~ûù®‰T9ƵóR1êyè àŒ'z[÷ß×j„Øáê„1‘ÓÙ½›š™¦RAžØÕÂg¢é•à˜&c¦Ûä€U]kd£$Ô1kGÐxÓ;Ie«ªw1öº©©WMRèøöX©,óèŒynF±-«ðTZ:îõÛr@¬CL`½_‹}UK½LbÔr ùøH˜^P5 Ôr,lÞýø£n¡7O)ìrvuÏf¡ëÏ9vlʱ Ù¼cOò=:ö _íØ}¶oZÌaq¤/ÊÔ) PIªQÿb(¢P´=3ƺ„2˜çsÓÒç)WÂ(¡÷ºBqª<{÷"Ǭ 7šÚ5½±y«*— «”nfG®S&Ìï^`P•Êñ¨…I˜þ2à ‰œ¨ÖRp‚w^RÇP¯Í å1¬¬j)ÇÀyWöý]}EV Xu˜Õ𾮀z§GϤ¾P]áÖzóÚ®2ÝÞ‚c3Ó$ªúTà°Þ½|¨>±ºz¥›Þe6ìŠëP2xóRµ:h£gT(·ysd¼»ìnÌ‹l±¹ËØ>Ù„»ud³î6Í·s·9¾än¶·t“ŸVí¾Ð? ¢Â3D48^[+=û™Uip+ŽDu#_ÃñN¾Æ®‹ùEÂÉ^y<¨«„ôý+@ÆblÚu#¨Ñuj+÷’¼«çU‘qǰïT¦³Ë•Eïɇ¢ƒ’ç9—OuàWç+±WE®1º‹“Ñ4w­†õ9Ï\²BÍžÿ§»ëÌVu¡Ê¤ÐW7_;mè_\S§­(¶áH9zè?-ÌÿýÛ¾©;PúºýŸvòhð“"#já'Q ¨?L+Ì8çê:v­Vè[‘ê+Nz¸cº½Ü0÷Æ×£ †lsåÕ•ðƒÛÛêåð$ΊE/ m/„¢nDaÿNé×endstream endobj 1155 0 obj << /Type /Page /Contents 1156 0 R /Resources 1154 0 R /MediaBox [0 0 612 792] /Parent 1164 0 R /Annots [ 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R ] >> endobj 1158 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.6808 560.7418 211.1474 571.6458] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1159 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [377.96 525.2495 405.4266 534.0961] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1160 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [297.463 503.2669 324.9296 514.1708] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1161 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.6808 390.0012 211.1474 400.9051] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1162 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.8709 276.7355 272.3374 287.6394] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1163 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.8633 257.5275 199.8108 267.7141] /Subtype /Link /A << /S /GoTo /D (FITS_8h_source) >> >> endobj 1157 0 obj << /D [1155 0 R /XYZ 133.7684 692.1046 null] >> endobj 1154 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1168 0 obj << /Length 2307 /Filter /FlateDecode >> stream xÚ½Zm“Û¶þ~¿BŸRÝŒ…`ñŽ›º3±ÇÎ4¶>Jò'Ñ'6©ˆTîn:ýï] ’");—LÆs¹XÔ6N%:ˆmCû‰Júöýí‡WIy\þë· ¢9Â!@áB^˜r/ÔRŒîf€™Ý‹ëgt¾,rGNõüCµÏò{7Vó¯Ö«Ã?’múÂéAWJ³ - ÄJé¹—åŽdÀçûk0óâèü¡|ἬÑëÞ–Õêææ7÷6]VÅ>À‡ø8¨AFk°ýõ xKŒ¢5ø€´¯ˆ¡cEûÛ”ž¯–Åæ°ÍÝF_^€a‚ÿ 5Ñ‚Úæ4%ÅŽ‚ƒ%J ï[GQ›[Ê Ì­ñ0q<²g â¹ùÃjÒ–ú/‡9dbMñ»ÕáöøÓS×r^áè%m †9f˜ßâànSwÍA)ÊÎuÍŸ•GºcÁô8 L»ûia®‚1$sqllž°¨“-ØÔ5Vm/æXh1Wž`´€—ÃPq%&¸‹q‘Fz§QÊÇÇwé>œiMîÐelü'†èôÑKü`ëáÞôñ¢·kôhf‘3œ½GD„IÇg7#a¦”XÇV ”s7˜ÛÌ)â}û¸LwÞ×»IGi"A™ÈÁ8ÑÈO êëuˆ¸LzcFо¢flàò"?dÜç‘)ö0i‰’µÚà„®/wÉòb¹f¹Ö£â—Š ÅÖš…[ ô$8}ôØ,›"S,6B&F%áÚÀ“iU,.ÒÖi<¯·4<`®õ£»}–†Ù«´\î3ïàÃ4Ã]}Ƈi(hxܨ®_çК…‹x©¶6bqí_ `s'?†ÑHM­­1®ÉíòlhÌb‡qM¾Üeswâ§›Ò•Aw¶'-㖩űü™{®Ö1»0+1µë„îDšZØâ‰0­Û+/]aU;^’¼ßwɦ¬=Ïöf4¶^h¥SlGÛ×ëÐ :[GMĹŗX-°´ Íç§©í3ø!pM£'ùQ‹ÕÙìc•õ\ŒÂ6aÇJûŽÀ1Ú²¨7›€ZÓdá‡ÂîxŠNµØT×!RƒEk¬´µ–šX›QA¨6í¥Mi9§º,ò*ÉòðÝâØý<”.ìºyصb†½VŽäòoïžz&Я–'íý ;x-?±³¾Þc hî– QÚt®õ†¢§û¬èÝÀ$θ˭…‘Ô™Ãîêrë†;ò»kFçõWŸ‡u¶ Yj‹Ínxz—¶sZ;4"®Ù¨ï­}ëëCÎn·É–ÉDl‰÷uIhÛaOë1°°áÀ2bÔSÍÆ±UƒóÎNgõýàïþr¢bA¼ÕÀbi残âRÅX‚Š=nñ»4O÷IStÔŽ×á‡pJoÒ¥(ÿi ~êØ„3§Ù$/ï¡E|S<>ݧù Ykh½ZñÿžMŽ> endobj 1172 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.3372 630.2467 303.663 641.1258] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a56e7f260511c4a4ee08c84d00c624913) >> >> endobj 1174 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [175.9469 561.8385 283.0941 572.7176] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_afe53063dd05cf44654a311e5d17d4da8) >> >> endobj 1176 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [175.3691 517.3406 279.3979 528.2198] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) >> >> endobj 1178 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.9573 426.7854 221.9269 435.7616] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 1179 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 297.8327 478.4757 306.809] /Subtype /Link /A << /S /GoTo /D (subsection.22.1) >> >> endobj 1180 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 182.3445 176.0559 191.3208] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1181 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [267.3227 168.4865 296.4333 179.3656] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1182 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 170.3894 478.4757 179.3656] /Subtype /Link /A << /S /GoTo /D (subsection.23.1) >> >> endobj 1183 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 148.4715 187.1341 157.4478] /Subtype /Link /A << /S /GoTo /D (namespaceFITSUtil) >> >> endobj 1184 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.8893 134.6135 202.078 145.4926] /Subtype /Link /A << /S /GoTo /D (namespaceFITSUtil) >> >> endobj 1185 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [440.5679 134.6135 478.4757 145.4926] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1186 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 122.6583 183.8069 133.5374] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1187 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 124.6807 478.4757 133.5374] /Subtype /Link /A << /S /GoTo /D (subsection.23.2) >> >> endobj 1169 0 obj << /D [1167 0 R /XYZ 133.7684 692.1046 null] >> endobj 134 0 obj << /D [1167 0 R /XYZ 133.7684 667.198 null] >> endobj 1170 0 obj << /D [1167 0 R /XYZ 133.7684 646.795 null] >> endobj 1171 0 obj << /D [1167 0 R /XYZ 133.7684 640.1296 null] >> endobj 1173 0 obj << /D [1167 0 R /XYZ 133.7684 571.7214 null] >> endobj 1175 0 obj << /D [1167 0 R /XYZ 133.7684 527.2235 null] >> endobj 1177 0 obj << /D [1167 0 R /XYZ 133.7684 434.7654 null] >> endobj 138 0 obj << /D [1167 0 R /XYZ 133.7684 396.5888 null] >> endobj 142 0 obj << /D [1167 0 R /XYZ 133.7684 364.5935 null] >> endobj 146 0 obj << /D [1167 0 R /XYZ 133.7684 281.235 null] >> endobj 150 0 obj << /D [1167 0 R /XYZ 133.7684 246.6264 null] >> endobj 1166 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F14 944 0 R /F11 844 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1195 0 obj << /Length 1462 /Filter /FlateDecode >> stream xÚµ™MsÛ6†ïú'Çm§ë¤:±Ûžòú«:ä”óä±:>fçÍóîu!øü§êÌ×Áósý“4«ÖÙþ°KòÄ w‡çøk’—q÷ºìŽ["-•ޏ3 LúÆ fd„3sÜ ÅT‘ÆŒFWvŽž?%3q Ä©‚ÊõõŸ“ü´\^g»ó>½4ÈL)sêÂ`ñÕqSÇÜ[nÚø7ݼ…¦;úR"&5º¢T#ޱ0S0ÿ3©üi#1ƹF@¬Úò`lÂ\ŒooW~ˆVêqƒ^ºy /Šø!:ú“B4…Mü7ˆbvq›Ÿn^ÖÉ!ßf=%I§œG¶Ff?`ª›·0ef3?NÇÀ%NB¥æ¾RãÔ½8Í„M÷á”a) çÀQBzpçÌÔAÖ÷×^.oÓÓù©8¹Þ&i~³Köæíä¯VKt\µ]vó.õãuôðªÿ‚—iЍPzoæÃ»`xþ÷Šiûø&ÎãÕB²ùë!ñ2¶•G1[íæ-3/cWRÆãCŒ›°QŒïÎû¯ÉñãÓ}Vœùæ¯e[}ç ÝnÞ’3÷svô'åÌÌ4N)âÜ„â\ó­pû![Òã ½vó–…²£?å|ÌLÛ+€³!ÈMØ¿ükùùïM/`m9Ç:h¹›·d-ý¬ýI ‹H)†X7aý¬ï²»ón÷ûBÃú˜-µq\ƒöºyK®ÊÏÕÑŸ’+Uf•$­ej?×6¬Ÿë}œn’›c¹žÏüåj‹Âv×Í[bõ/\ýI± @J!ªuT?Ô?*œé¦:1ØEXšãà†%£bKimÕ³ 6ØXY ãP†u²– ý]•#>ib…•C·þ6¬[£Ÿòín¹ü”V7¦u¶I·ß“Gÿ­¿Þ ´…Gí1†vóV{ŒZu LÉ”0_­iÛ0—qÙ[],hGtX5[{æ°ÙnÞ3ø§[×À¤˜CÃÐr¶ Æ|»7Ix·±ÁaiÃ4ÛÍ[aöW³k`Ê™ABÑ¡.¡ ëÁ<¸eЌޒG5è­›·¢êŸ†]ÞGØœ"Óôªþ§Ã`sþ?> endobj 1197 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 579.9245 478.4757 588.9007] /Subtype /Link /A << /S /GoTo /D (subsection.24.3) >> >> endobj 1198 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 558.0066 478.4757 566.9829] /Subtype /Link /A << /S /GoTo /D (subsection.24.14) >> >> endobj 1199 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 536.0888 478.4757 545.065] /Subtype /Link /A << /S /GoTo /D (subsection.24.20) >> >> endobj 1200 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 514.171 478.4757 523.1472] /Subtype /Link /A << /S /GoTo /D (subsection.24.4) >> >> endobj 1201 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 492.2532 478.4757 501.2294] /Subtype /Link /A << /S /GoTo /D (subsection.24.5) >> >> endobj 1202 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 470.3353 478.4757 479.3116] /Subtype /Link /A << /S /GoTo /D (subsection.24.6) >> >> endobj 1203 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 448.4175 478.4757 457.3937] /Subtype /Link /A << /S /GoTo /D (subsection.24.7) >> >> endobj 1204 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 426.4997 478.4757 435.4759] /Subtype /Link /A << /S /GoTo /D (subsection.24.8) >> >> endobj 1205 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 404.5819 478.4757 413.5581] /Subtype /Link /A << /S /GoTo /D (subsection.24.9) >> >> endobj 1206 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 382.664 478.4757 391.6403] /Subtype /Link /A << /S /GoTo /D (subsection.24.10) >> >> endobj 1207 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 360.7462 478.4757 369.7224] /Subtype /Link /A << /S /GoTo /D (subsection.24.11) >> >> endobj 1208 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 338.8284 478.4757 347.8046] /Subtype /Link /A << /S /GoTo /D (subsection.24.13) >> >> endobj 1209 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 316.9106 478.4757 325.8868] /Subtype /Link /A << /S /GoTo /D (subsection.24.15) >> >> endobj 1210 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 294.9927 478.4757 303.969] /Subtype /Link /A << /S /GoTo /D (subsection.24.16) >> >> endobj 1211 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 273.0749 478.4757 282.0511] /Subtype /Link /A << /S /GoTo /D (subsection.24.17) >> >> endobj 1212 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 251.1571 478.4757 260.1333] /Subtype /Link /A << /S /GoTo /D (subsection.24.18) >> >> endobj 1213 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 229.2393 478.4757 238.2155] /Subtype /Link /A << /S /GoTo /D (subsection.24.19) >> >> endobj 1214 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 207.3215 478.4757 216.2977] /Subtype /Link /A << /S /GoTo /D (subsection.24.31) >> >> endobj 1215 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 185.5231 478.4757 194.3799] /Subtype /Link /A << /S /GoTo /D (subsection.24.33) >> >> endobj 1216 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 163.4858 478.4757 172.462] /Subtype /Link /A << /S /GoTo /D (subsection.24.34) >> >> endobj 1217 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 141.568 478.4757 150.5442] /Subtype /Link /A << /S /GoTo /D (subsection.24.35) >> >> endobj 1196 0 obj << /D [1194 0 R /XYZ 133.7684 692.1046 null] >> endobj 154 0 obj << /D [1194 0 R /XYZ 133.7684 667.198 null] >> endobj 158 0 obj << /D [1194 0 R /XYZ 133.7684 646.6853 null] >> endobj 1193 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1220 0 obj << /Length 1489 /Filter /FlateDecode >> stream xÚ½ZkoÛ6ýî_¡6°°|?Œa@›6}l+ºÕtE¡:Jb ±;YF’¿+SRIK$d6òÁtt}î¹çˆ‘"†?’Æ’šgÒPD0—Ùòn‚³k¸øzBš ³.êÌ {±˜<»à"3ÈH*³Å•‹&4„f‹ËÏSJfgTàéùm¾ÝÚæÛõeñME•š21û²x7yµè:8),IîßÉç/8»vï&1£Ev_0"ÆÐìnÂ8üˆÒþçvòqòGé\Ýÿt¨LF)b .ž1Ž4”:E$2L h*¥(ÂJ„ Q&x@) :®³.¬VêüüŒiµÏß¼ü4Ÿ¿ß|Ü-o~Q1-ïgO7åå¡V"sÚKåuó§Ã°‹O0ìãÖ Å=J!®Ì! ¶” C”y’¶L F”HiÛ†ùÚ.f†Nóo·E«ðùævw· ëd'l”^w/,Óaa=‡Â2ƒƲV é©`!aÁ8ƒ9æ„A÷0* ,‡8NdÖ…ùÂ^¬ªíE}·æU~–ÓÉ1NÎ(©>î^NLÃrzŽ)§€á‹kbrvar¾]|üT­nçó|Wm¾æe™?~ý^•uaÏ.`(s¡8âLAþâgá'ÃÐ7‰h"þÀ0Hêâ— }nM£ì‹‹Ðǵö± }>£Ú'Lr’²¯ Ùwþ|ïÝo0â)IFû¶ô01Â7§˜q¾E«ïãZßxØ7@Â7ó$ßÀ S¾µaAßþ G20ÕÂ8§šqÆEËïãZãDØ8ÀQ;HQÍSƵaaãöS|°Ó ¤9'1Ï©hœyQ ú¸Ió<G53¤ –)óÚ°y¿çÕòæ}~W YÇ"\ê¤u2eL[çÔ3κ¨}\k [ç8¦u0"m¨NX×…Å­ÛÝ ˜ðp  ;…sn9£œ‹×ßÇM9ç8ªsƒBqMTÔ·Uêu°º4Š›S ˜NA㬋 ÐCµÆ©°qnöc.Q8Ó •ZZvaIç†;‡á›“,SÜŠÆ9• ›ôÎ#pÔN«v K™×†EÍ[ÌŸ>~/c&ÁÄœdÌtjg_T„>®µ/¼Éá8¦}ÌpD)I š]Xog.(¢‹®ÑEô $¶àôS¶à´f*±×…ù"¾z¨uTHéü*¥cŸ`ÓÇ­Ù(–ÑË(#æH+•˜<2i’QKDV&0KB+/q€ÒEù*¾½Ë¯ r ×+ ÔI6ÜÆÝôÑšû¸vß9â–G á–~’[T£úé#nVØtëø|œŒ12=T»ÇÞUó²@µAÆî¸†pIÐbŒ8e¦6D"!phsÆ@œ$4ëÂ|Ÿo—«UD˶£;IÆ QV}Üšo1ûù)'<Ú#É(OÈÙ…ùr¾X­Óbº)F‰çÔÇÝ‹ÞÂðóó\‰B¯Q„§Î•º0_̱¥ =ª{ǹôqí(~&õ s}E9FÊÈÔ!Ræ«8ö¸ÓÍ2NÐ(­>®4Ø]0p‚)•6Šu=ÈÁ¤Ç´Æ)€(`­šƒd¸Ïxÿ¶ÚVAÊõï™’"ñŠ‚¶§CéÐ+ õ}H©´&oв°o&äm£ºiËš^±ýÉ~ÛVånYµßvëÕfݼӯ/mcµ®Šòª¾óeÑ\¼_U7¶õ­\W¶yYl—åê{Uc̃eÃlÁ‚FÙiâx?Ân æÍ„0|*¦=ùZVµz¯‹uQæUÑÔ¿YÛÏý̲kT|Y,mCÚ¸ÿš×Bˆœ:Í·«ºûoÊæ‘fTh”{l 6×Å:Ø1ûTŸ_ƒendstream endobj 1219 0 obj << /Type /Page /Contents 1220 0 R /Resources 1218 0 R /MediaBox [0 0 612 792] /Parent 1164 0 R /Annots [ 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R ] >> endobj 1222 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 656.1196 478.4757 665.0958] /Subtype /Link /A << /S /GoTo /D (subsection.24.36) >> >> endobj 1223 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 634.2018 478.4757 643.178] /Subtype /Link /A << /S /GoTo /D (subsection.24.41) >> >> endobj 1224 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 612.284 478.4757 621.2602] /Subtype /Link /A << /S /GoTo /D (subsection.24.21) >> >> endobj 1225 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 590.3661 478.4757 599.3424] /Subtype /Link /A << /S /GoTo /D (subsection.24.22) >> >> endobj 1226 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 568.4483 478.4757 577.4245] /Subtype /Link /A << /S /GoTo /D (subsection.24.23) >> >> endobj 1227 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 546.5305 478.4757 555.5067] /Subtype /Link /A << /S /GoTo /D (subsection.24.24) >> >> endobj 1228 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 524.6127 478.4757 533.5889] /Subtype /Link /A << /S /GoTo /D (subsection.24.25) >> >> endobj 1229 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 502.6948 478.4757 511.6711] /Subtype /Link /A << /S /GoTo /D (subsection.24.26) >> >> endobj 1230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 480.777 478.4757 489.7532] /Subtype /Link /A << /S /GoTo /D (subsection.24.27) >> >> endobj 1231 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 458.8592 478.4757 467.8354] /Subtype /Link /A << /S /GoTo /D (subsection.24.28) >> >> endobj 1232 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 436.9414 478.4757 445.9176] /Subtype /Link /A << /S /GoTo /D (subsection.24.29) >> >> endobj 1233 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 415.0235 478.4757 423.9998] /Subtype /Link /A << /S /GoTo /D (subsection.24.30) >> >> endobj 1234 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 393.1057 478.4757 402.0819] /Subtype /Link /A << /S /GoTo /D (subsection.24.32) >> >> endobj 1235 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 371.3074 478.4757 380.1641] /Subtype /Link /A << /S /GoTo /D (subsection.24.12) >> >> endobj 1236 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 349.3896 478.4757 358.2463] /Subtype /Link /A << /S /GoTo /D (subsection.24.37) >> >> endobj 1237 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 327.3522 478.4757 336.3285] /Subtype /Link /A << /S /GoTo /D (subsection.24.40) >> >> endobj 1238 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 305.5539 478.4757 314.4107] /Subtype /Link /A << /S /GoTo /D (subsection.24.1) >> >> endobj 1239 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 283.5166 478.4757 292.4928] /Subtype /Link /A << /S /GoTo /D (subsection.24.2) >> >> endobj 1240 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 261.5988 478.4757 270.575] /Subtype /Link /A << /S /GoTo /D (subsection.24.39) >> >> endobj 1241 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 239.681 478.4757 248.6572] /Subtype /Link /A << /S /GoTo /D (subsection.24.38) >> >> endobj 1221 0 obj << /D [1219 0 R /XYZ 133.7684 692.1046 null] >> endobj 162 0 obj << /D [1219 0 R /XYZ 133.7684 223.0832 null] >> endobj 166 0 obj << /D [1219 0 R /XYZ 133.7684 190.9536 null] >> endobj 1218 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F57 903 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1244 0 obj << /Length 2075 /Filter /FlateDecode >> stream xÚÍZKã6¾ûWøhk†oJ}Ëôt’ ‚ÉfÒɲ9¨mv·¶ìXrfúßoñ%SփȆ(ò#«H~U¬¢LæþÈœ0†”Ìø\æÌå|½›áù 4~;#´jQ«öîqöÕ7\Ìs”K*çÏñhÉœÐùãæ·%ˆ,Wc¼¸ßu½\Q?”u%)„X0¹üýñûÙÃc+2‰ …%1ÿ˜ýö;žo@¿ïg±<óÏð‚És:ß͇N„P³ý<û©2jµ]‡&ÊXŽÆJe0Ù! SÁ <4„_ ßhªŽ/¾íS¼¤\¡œ$…B” >²¤×ÂÌ’ÞßÿcÚÔww_×ë²|\ætQ¯ž—TÒ\*'!baçÑvèÑ«>`…cÚE^ˆ8XLGzïDr˜„ÌÜlR¡û§ÿ€eLPÿªIGÔŸÒ 7ª¥~>Ný‰9ÿ_¨Ïû"IêØõïî>TõéÙT®Kp<[½ƒGo°>…öW! Rºµ&ÁlíýîZð»àu%Y4¯‘côuåshÓ¦€›¢)\U}:¶¥Þ¸·`;öÅ#>ËF»âþ ÅYTY»çvIà0´s‡ùxGN¬rÍkQ9³ÜèµqéæÜÜŒó¶Z üˆu˜bj€$§jGþ p•ƒµgŒ‘W[ØW—ܠŶܼ‡Ý\*¾x; ÆÎ9£jK ž-*¥` ,ÏÊ”÷c 3.;qûRvÕ÷|²¶ýÍ4<ðpšð‚­ײ+î0Á®Îä$eWWþ-°KÂ6JœdW€]Å®§Ý“>þøüÉmhß%R 騤óXz9*¥dË0AƼÏ0)û “ÂúDÓvªõÑ•ÀëcíÊ…{T0Y¬ûºlJÓÛ¡¾ÑNÔ•Ï|µâ´“ˆU×+ºÓÄu3±ís/–õQL³wOç}G Ñ3ÌY]Ïè¨Ã£Ì2z<ªíÊ¿F“ "2’§`W1Ú3Ù»ŸZ)Da óXô@jåQ) [:c‰ˆ’ªwÄSÞ?â¡.´M£w—–2Ê,L½;y‹GE•!…2Ò¦ü¤ß,©«éUqYW›.—ƒWÊC[‚±œ# ™ÀÕÄ;L·…YâÊQâvå'ˆ›ÿ ÄeŠ"È«U‚¸-ì¯÷ŸöýXìt3À_¢€"z8Bõ¨”¢¿e"Æ3yíÚÊj½?:²†,¯—èŸØ^D:ì']7ãl Ê\Ͷ¨ÃÛâIJ5ζŽü[`ËŸ”b[€ ³íãþãi»ýÕ^:mOzèî gÑ(ƒ‘¤¥TjyE%¬©è§>"ëûE¨³©<Ç98¸íÖUx#9i«Ý³>èui&jS"¨0WUûSã[![Úý˳“¶ôŠ_ÊúÌQw÷åʯà„ûVx¦áHP̯§jÔaŠªf©šSµ#ÿNt85‘ÄT&¨Ú†©ú©¨^ôƒs,wCŠ#cž±¬¦:PJ£ÀTša$¹â}H|tGáŒõï=H㈚ˆ,lrc_!­n\Ïuqrw`tq4stµ:Ì´n»;t{9uIØs|`½qHôÇ“)*3$szýujÜa‚¨-ÌuüV©+ÿˆÊ%RЧ¾o´°a¢þËm\õâ*ÆÒtO F²y,u0ê´¨”r-gÍR’³gU?ꤊ-B[ušzËoS¿^k{/ u…«j¯ö¡ªõ‹êaÑ5ÿMmÖ?JIÈ3ÉÉõ”Œ:LQ2ÀŒ S²#ÿ(‰1”$KQ2Àº”|øÒ|÷þ—þ%LãÁ.ù=*¥C`É2”çÄ­ñ;{¯ÏhîõÍ¢»I¨/à¿T ˆ ¼Ây¨ÄÀ¯âî½qŠß|xü¹ÿ‰¦ª˜¸Ðàri*%WBŠÂéÊÕá+›[Ø úPäÁ –+Áåâîxñë}¨¶‹XTÿÝ Ä$]ój? Žû}b6¥®6²¸Ã„‘µ0kddÔȺòoÀȈˆ,u‰Ö†Œ,òû펺~0-Ìáà‹$l•Ò¯5@μ ßÐú˨'NàNÕ®hÖ¯ÚG_Ã]í·‚Ws+ê0Å­xnÙ·:ò/W4üÔh%Ì/G©ÿþãÇÿü˦è÷YÖV;q“4$ëü:+ËÁžýõç·º2ñ[؃°øÖºO~ßëµ+H÷ ˜W"òŽÐ;Anâo=ÞüPû/o/º]Ö Z´`ÿȆ-endstream endobj 1243 0 obj << /Type /Page /Contents 1244 0 R /Resources 1242 0 R /MediaBox [0 0 612 792] /Parent 1164 0 R /Annots [ 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1251 0 R 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R ] >> endobj 1246 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 656.1196 227.1635 665.0958] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1247 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.3549 642.2615 294.7893 653.1407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1248 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 644.2839 478.4757 653.1407] /Subtype /Link /A << /S /GoTo /D (subsection.24.1) >> >> endobj 1249 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 622.2466 221.0864 631.2228] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1250 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.9687 608.3885 302.403 619.2677] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1251 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 598.3363 478.4757 607.3125] /Subtype /Link /A << /S /GoTo /D (subsection.24.2) >> >> endobj 1252 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 576.4184 217.0119 585.3947] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1253 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [260.1397 562.5604 296.4533 573.4395] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1254 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 564.4633 478.4757 573.4395] /Subtype /Link /A << /S /GoTo /D (subsection.24.3) >> >> endobj 1255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 542.5455 311.0977 551.5217] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InsufficientElements) >> >> endobj 1256 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 518.6351 478.4757 527.6113] /Subtype /Link /A << /S /GoTo /D (subsection.24.4) >> >> endobj 1257 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 494.8144 294.929 505.6935] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidDataType) >> >> endobj 1258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 484.7621 478.4757 493.7384] /Subtype /Link /A << /S /GoTo /D (subsection.24.5) >> >> endobj 1259 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 462.8443 323.2325 471.8205] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidNumberOfRows) >> >> endobj 1260 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 438.934 478.4757 447.9102] /Subtype /Link /A << /S /GoTo /D (subsection.24.6) >> >> endobj 1261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 417.0161 308.2888 425.9924] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidRowNumber) >> >> endobj 1262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 393.1058 478.4757 402.082] /Subtype /Link /A << /S /GoTo /D (subsection.24.7) >> >> endobj 1263 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 371.188 318.1319 380.1642] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidRowParameter) >> >> endobj 1264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 359.2328 478.4757 368.209] /Subtype /Link /A << /S /GoTo /D (subsection.24.8) >> >> endobj 1265 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 337.315 278.0823 346.2912] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1NoNullValue) >> >> endobj 1266 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 313.4047 478.4757 322.3809] /Subtype /Link /A << /S /GoTo /D (subsection.24.9) >> >> endobj 1267 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 289.5839 275.4822 300.4631] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1RangeError) >> >> endobj 1268 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 267.5765 478.4757 276.5527] /Subtype /Link /A << /S /GoTo /D (subsection.24.10) >> >> endobj 1269 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 243.7558 308.5281 254.6349] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1WrongColumnType) >> >> endobj 1270 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 221.7483 478.4757 230.7246] /Subtype /Link /A << /S /GoTo /D (subsection.24.11) >> >> endobj 1271 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 199.8305 219.7716 208.8067] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 1272 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [237.8305 185.9724 261.9697 196.8516] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1273 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 176.0397 478.4757 184.8964] /Subtype /Link /A << /S /GoTo /D (subsection.24.12) >> >> endobj 1274 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 152.0995 319.0385 162.9786] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 1275 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 142.0472 478.4757 151.0234] /Subtype /Link /A << /S /GoTo /D (subsection.24.13) >> >> endobj 1245 0 obj << /D [1243 0 R /XYZ 133.7684 692.1046 null] >> endobj 1242 0 obj << /Font << /F45 711 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1292 0 obj << /Length 2312 /Filter /FlateDecode >> stream xÚÍZkoä¶ýî_¡3@‡á[ä´(zwÓÍö±NP`»äÙV3¯Œ4õº¿¾—¢HQO$kÆHâ!ïåå9—‰$þHBC©T<‘š"‚¹L6ûœÜüÃ7”ÖUÇ:ʘFc W)èìŠ@‡©`p=ÖD¦Ð<:?6eÿ CÊS¤9KR¤ˆ2Á'BêpfBz{ûoŒiU®×ïþr÷¡<ŠRœ°$lzà¨GÅ<)%À.UØêwùþx~±Cy¼ÿO¾©ìõyIÔ"?ÙŸ2?TYU îÁþfög[”?õ]gŒ‚aI[cóaôøUXa؉a»¦cÁcB B¨îyÐ'ŠCÅìBh%f½à™ÁÛå}Ë\¦H©®í»ÇG|¶k|Pt`?MOµˆôÜKt­Iª~ ‰P†˜¤Q‰8ØP"ëõmv¨n--³j{*1Â: c11o¼\A§6ÚwOµéã’àų“Cóû»‹õÌ>¨ŽöwÓº[ßòg{ã³|5‚ sü {¤Å4:ö_„Òˆ+ã‡Mñço§ü0`Žà(Z'¡‘!w*æ‹c€` Æ{ŽÆÙú*ÿ smqx¼Š<Þðµä +̧Ó!-'ÉÓµÿÈ©^%ƒ‘çýñÃeóôç7ßóŽ@ŠÂ:'´2’yTÌÏXëHÙ¬¿Þ~Þä§v®FÈtÿ2FkJ Éù¦æãåñ«°ÂÐÅa»ÆÅ±È¤1+°®ýÈ8TÌlª‚e_׬•Mu.ò%‹ÿšˆd;‘}^=·å´L® K “Yÿ†íÖ2I§e2•/"0•r•‰ƒÉòë¹^/¾?V.§Óñ\åÛÁpH‚$¡Åa*昗 Ö(Uj<áÂvbñ°¤bq<=`#s9”Þ¿ºôè\/¨V‚àmQV6¿U•ïOu Ó„ÉÓæq™ïêÕ³¹¬ÖÔƒ¾¬`2ÕBX¿,`߬£õûì1w©¾Ê¥Ñúq¹NA ìjÞøÚ:TÍZ5ÉÚŽñW@Zž 0%h„´Ö#mQ•oÏvH΃üE)â¶W¡ÇúœŠ´åˆçŽ­0@ üŒpÚ‚0±›Yoa3(¥m•©-cZ…°‘l‹%"vGŠÒM@ž¬×LLvé{<¬þ—7åvqlG¡hnKØh^›ã6ŸÎÜÝ^£€Ù¾Û­5 §50á¾ôo!Næ4*È>­8†­ÓIhcàqÅœÈõ"`°#S)‰ÉÀÁ¼ &ý…¨ ÁU¶<”CE TÀ†–úŒ ˜Væâ>+ë+±ØØã1óÐÏ6æ&Ûíì…WLi+ô%S7÷âÚw–vŪžL`ç k/¦ºsÊý9;¿ ÕBÍô l% FtT- ~VSK¿]ãÁxZ.^ÁœÁ´„(r‘‹‡ åòÎŒmVÁR³O?pUš¾†6†ôs¨˜+ŽÿLÁšöµ+OGX"TE¶ûT¿6ô3W ý¨ ègž‡¬3÷õÓÔÌ-x¸¡ìØü‡Ê¤m±8Ô+k@ï–dQxÒõW8ùÔ å™ÃRŠféÕŒ +Ì0ÒÃ,#§Çº¼F ȲJè#l¸ôþ¾*vëuv©Ž?fçsöò㩪à«w„tšâˆCÇqÝÄ,¢k #ʈhÿi¸«|,î)dJÆgGƒìP±®{0Žc;¶_uËvmÒhfޝµ\ì‹}±ñOs{QVÛõz¹â˜@*µÌ­Ÿ×ñ2‘jÛƒÅ?˜YÜ/)ì*[ðltq<ÿÔ4û\TO]æÛQ¾œ¦=•@?!¯§}PaŽöfiϦißqà5ÐÃOXSs´w°)Úß~]‡~ŒïD¢T’«ù~7ÊwÂÄ$ß©&Hx9šñ*ÖgÇwª)’˜ÚA}w9lšU¶¤íËIÜùÇÅ&h{B[[j£R? ö¦À>lÎK,,Å Üçö³ƒÃE¦aom¢àýмÕqøUXaäíÊ ÝzŒXjºðcÚ!3“HkH]Gzáö¨ˆy¤‡…|/Ünê¬W\æ|*5d ç¸m^eÅnZêTa$yʯ–zXaFêf¥Î'¥ÞuàHV/(¥“û]‡ó°I©ÿ0­u Û2ÁU­k„Í»À°7#ZoP±N{­s XÊyOëŒk¯uÆÕ˜Ö äÖ–6Z7OZ­›»Ì–×Z‡¶ê‰iùÁþ†9 „ ±K­³æ½:Ñìê-^Xa.IcD¸ÉGç *bžbÐ=“¼k¾];›—Ü1­_@ë³ ÛµZŸ~Y7ˆ/qA E“ØA²‡Mk½Ã‚ÁÔ.â\üªzÇH¯IØ£½7¨XÇ=ÕœšKÖ×;á­ÞI{–Û³¸ËðøÖÖj¡¶Z›஬²Ã6;oíÝnzghŽâ.e}Üm©íéßà”ˆ™¯…DB”‚‰—Ä€<~V‘ç Ý©>êlLÑžc¯á *fW*Ä(ì·;vÛ­C}dÚå{ÿyÌTv¸2 mv˜wlØn,;ÌÆãK¬ˆLN§ÞGxœ‡Me‡ï²jóô>Ûçc¹HÿREsƒŒå9¹Ï5'äZŠ$ìÏ0Àë¶Ë ¤þ,IÙqý»•ú¶ØØ/H ¦&Åm†ÈK[ÒláñSf@v·e™-8˜hÙUu.š=nþ{³å%‹½ ¨-.§zï —%!ÅŒ¤‰zÜd“[6î#—fLÆõІÎ^V˜ÓƒƒY=LÐu ?\î Õ€ =*øo¹ÙÁg™È8a'a“2Õù(SikÛÇoòƒy_é’³{sg¦ÌK3oò½ö‡bBì‘kB×¢¹ë¬wœÖº¯oÞ?¿<¿ñau®û?:+UÉendstream endobj 1291 0 obj << /Type /Page /Contents 1292 0 R /Resources 1290 0 R /MediaBox [0 0 612 792] /Parent 1164 0 R /Annots [ 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1303 0 R 1304 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R ] >> endobj 1294 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 656.1196 204.8376 665.0958] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [331.97 642.2615 356.1092 653.1407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1296 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 644.1644 478.4757 653.1407] /Subtype /Link /A << /S /GoTo /D (subsection.24.14) >> >> endobj 1297 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 622.2466 261.0863 631.2228] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate) >> >> endobj 1298 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 610.2914 478.4757 619.2677] /Subtype /Link /A << /S /GoTo /D (subsection.24.15) >> >> endobj 1299 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 586.4707 255.7561 597.3498] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1CantOpen) >> >> endobj 1300 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 576.4184 478.4757 585.3947] /Subtype /Link /A << /S /GoTo /D (subsection.24.16) >> >> endobj 1301 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 554.5006 266.8246 563.4769] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU) >> >> endobj 1302 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.2161 540.6426 277.3455 551.5217] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 542.5455 478.4757 551.5217] /Subtype /Link /A << /S /GoTo /D (subsection.24.17) >> >> endobj 1304 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 518.7247 315.5314 529.6039] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 1305 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 496.7173 478.4757 505.6935] /Subtype /Link /A << /S /GoTo /D (subsection.24.18) >> >> endobj 1306 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 474.7995 223.4576 483.7757] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1307 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.8893 460.9414 204.6485 471.8205] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1308 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [466.5206 462.8443 478.4757 471.8205] /Subtype /Link /A << /S /GoTo /D (subsection.24.19) >> >> endobj 1309 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 439.0236 241.3602 449.9027] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 1310 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.8893 427.0684 222.5511 437.9475] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 1311 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 417.0161 478.4757 425.9924] /Subtype /Link /A << /S /GoTo /D (subsection.24.20) >> >> endobj 1312 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 395.0983 220.6282 404.0745] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsFatal) >> >> endobj 1313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 371.188 478.4757 380.1642] /Subtype /Link /A << /S /GoTo /D (subsection.24.21) >> >> endobj 1314 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 347.3673 321.0309 358.2464] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr) >> >> endobj 1315 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 325.3598 478.4757 334.3361] /Subtype /Link /A << /S /GoTo /D (subsection.24.22) >> >> endobj 1316 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 301.5391 292.8069 312.4182] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CAarray) >> >> endobj 1317 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.7395 289.5839 437.9921 300.4631] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 1318 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 279.5317 478.4757 288.5079] /Subtype /Link /A << /S /GoTo /D (subsection.24.23) >> >> endobj 1319 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 255.7109 299.9999 266.5901] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVAarray) >> >> endobj 1320 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [161.8893 231.8006 201.142 242.6797] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 1321 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 233.7035 478.4757 242.6797] /Subtype /Link /A << /S /GoTo /D (subsection.24.24) >> >> endobj 1322 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 209.8828 291.8904 220.7619] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 1323 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [242.6953 185.9724 266.8345 196.8516] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1324 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 187.8753 478.4757 196.8516] /Subtype /Link /A << /S /GoTo /D (subsection.24.25) >> >> endobj 1325 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 165.6886 307.1928 174.9338] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchName) >> >> endobj 1326 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 142.0472 478.4757 151.0234] /Subtype /Link /A << /S /GoTo /D (subsection.24.26) >> >> endobj 1293 0 obj << /D [1291 0 R /XYZ 133.7684 692.1046 null] >> endobj 1290 0 obj << /Font << /F45 711 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1341 0 obj << /Length 2514 /Filter /FlateDecode >> stream xÚÍ[msÛ¸þî_¡ÒL…Ã;·Ó™^^îr×fÒÆé—4h‰±Ù“IŸD5q}@IÈÓIìÉdHI»‹}‹%Mþ‘a )™ñ…ÔÌåbsw7ðãOÄÖjÂ~¼ºøá5 ´¤rqõ9”&Ô„.®¶—” ²ZŒñòÅ.?Vk*ðò¯å¡;)„X²lõéê—‹WWÝ”$‚–ÄLøûÅÇOx±ý~¹ÀˆéL,¾ÀŒˆÖtqwÁ8 "„øovï/þÞ‰ ~m‡CÆVs ÌeL#±„;Ž20yÌ)̦‚Áý˜ÇœOÜæ«ýûí¡c¹Bš˜I …(|±×ÁŒc_¼øÆ´9\^¾~sõþCSî./ÿ–7›Û·Ç;ãÐ^ƒµ c3bT6£ÿd!ýyÀŒH‡¸¢aÂþ<\6†)bŒ,Bk"ßxPÊfIQ–Á\’ ÐÛ`z·_‘lYlËMÞ?\.?¯¨XÖ{ûac"¬8ØÍmÞØ»ÛÜ€þ³"xéF啽–+²¬¶ÅW÷mÓìËëÅËcSüÑ|—-ïŒK¸º?¶ÜšA`?µ&i!¬†_ÊæÖ†xYš¼ÚöS;y¾;C§q0T0!‚žQ‘ˆ™¾ð±û"©F7‚e4»Rˆ+=˜}¸d#€Ìš¨ì{0œÊ±¢)FxØ,#Þ5û·ù]1Æ Î‘V\'Y!R¬P“¬ aˆ™EhRìcJYîy!´FÜÝ_\Võ\¦Sm$B:õc‹àáë?¢ÉPªÑÄ& çëP ùW+¬û: œÐægŽd™™ÿ`]PW»{wbbs[xJZÃíæ´åör_—USì'ùyžóNüœ5!’jù©&ù9ç¶§à§Åã)~v°$?Ç7-ÕÖü[Ò“HD„^„Åv ”Ù9¥@BéÇ‘Ó9›œ'ü9MÂê ÏM(™°¨qÓæ'Žd}nžå»€›s&DR“ÜœqÛ“pò£”$ÉM›åæÕJñåÃ}1QRLô7.)‰•ª)[TÊôŽŸ¬=W´s¾>V›¦¬¡ dL.ëë›ÆÞÛ’1µ´egs„«XVÿs«+7ŪŸ`~É:ø:ÀÇjGR[µa™âRC!£ûÓG•†%&e6Ù¯þ¹Ò´­b»¨h=±©÷ÖC‡ûºÚ–ÕsPÝVÈk"3d6u['“VR[€÷ißCÑ\n\fpA7Nx ŒøŒÌQÞÃ,ç³iÎ÷x¤çZ¡Ì¬æIßÁ¦Hÿ¡²K¹©oªò¿Å6äÿ0Ô3¡‰ãÌt¨”~ž™<ƒÊ%ÝW_7Žã¦à@¸VµÚ¥¾¸ï®¢Ý ΕŒÒì$jÞ…~ÙÙ"¹Ýž:ë#Žù@•1TB†5b~í)P~¶Ž({-ªM}4›åÁ~ÞæMîÜgùj°€¹[;rr É…²þ1ö>oÊë]1Ü­76^Êz’˜\AmN©:›˜á€bv°1û <b Š0æ:ELëóç—¢Ç ˜%o(9®×<*¥@Ç<¨Üe=üc~(¢bìÔj1•Ùn)ÆÚ¾_ *Á<_‡F˜É5*Žy(šQ¨zû =ãQ©i%F éþ´.ò-”¢P¬_¶Ü2ÞøP•Í'Wå¶Äaš!ç9'`Ȭ–±\Ë=Í9ç< CHE I2ÄÃ"†\^¾©V¼k²•ÛW_›*‰ºšÎÌ 1®È"œ{$3;TJÅŽCΉJªh÷½ j¯×…û<ÜͰ¶É>aíÝŒ?‡æ`¿)¼mNŒÍê­À¶\…»MîäUu3Ö¤¼vÜ>Vɇ¦®·ŽÓ‡˜Ò°é™úœiŽ(%2Ii‡_‡Æ(=”kôzs—ß°v‘*ƒ\Û×bÈkJÍI³gÔá¤$PJζÜÁS“¥ÚÁ¦,¯ÚÚÚlºQUŸ!ª™˜·¾C%0u½Ê8ík÷%§Hštq¦ý>5$·ÝoÊjÚþŒ ¬™µ0\bžÌ:§´:¯f‡ë©IÈt`~uiU‡´ÊEÁT"­v°tZmùi6½é´š¬L-¹GÒªC¥Tôi•™˜gr˜V©¢mZ5×6§)¥Uó›I«æjÓª¹ë§UóÍÆ~uïŠ,½ðÚ Ì½ ã€ð'ÒS‡9Ö¤Þ6©Ž÷÷õ¾)\޽~8·”‹ÓŒŸÑÁ€¹ˆö0ÑÓ¥t_gP(0 gÓ“HD´‡DôÛúíq·ëúQÒ—iL²E8U¼ÓxTJ£.€ G‚b°°uA…휺X*Šßì]a;.õ~¬6ÿ­}ÒùðÅ\êývºíô:;Ä‚s!ÚKÈt-ÚWà„Õ°=aš ±6bï›Û_Í‚œÖ ®.@€Ñ;œ04JéåfI®ž] uzhမ@ëÙK(ž ´¾Ï!ÐD†ÕÉ@ó°~ …•ò ¡®‚.ù†Ì`åa׆SNhÃÐ#”P(‡²ìÙ¼KNkº„P2½æ3ê=Íš3‰2ØqSkîaý5Oe Î2¶g‰3ŠG¥”é2 å®î r}höùÆU6×cM¢maô­Ú‡ƒ|M±ÿœûb&‡2aÚVŠæM;<~9vDr= —2Hº*Ãz Ì0’<*¥‚f*2piª]t¦Í*˵,bÓ,šµý)X„)Ò,K²ÈÃú,z7ÚQ…ñ$ ÆŒwT*¥§Ñ錹Ü}¢ˆ=iÜ»GfEÕÄd¹ßÃQc?ÛÐ ¡ÉIt¢)áñëpÀHW"’;Ñae°–R =P z]¡Ó2J8tà©~›9îKp(‰(;×>¥K$wò)«”HÉ” (5«Ô°[kÕŸÕÄênúáç™–ŸR¼±\›¦_œ·ü R7b)R)¡ƒõSÂdç‰b…‹P~Tè˜ç‚Z?¢Î™×ö´¡¶„Mgè9ížf9àŽðäj8ÔÄbøƒÔ‹zw¼«â–°†T©E0×HGØu ›ÁzkšEí{Émû^ Û¾—#£á;‹æ­%óñs^îŽ6Ë÷e¸×IöeaÞ'ñï%„¹±6·àÃ}±1=)ã b;Öj*JØ7öýöReÞÁ´Gº½¯¿ì{ÎæÇãÝõÌÛTP ÀA="¿æÚÃl@O7žú Ú¿É¡25þ¤þ»—Mþï¿þþ`‚XïÝ"‰´bYï¯2ó”Þ…õOEUìó®÷çO×mŒÝú¼,Ü /Ò^(&ÄÞyIè¥ #oÏ—þ¢¿¬¿>ÜÕ¤_½jÑ?ü”™Ùšendstream endobj 1340 0 obj << /Type /Page /Contents 1341 0 R /Resources 1339 0 R /MediaBox [0 0 612 792] /Parent 1384 0 R /Annots [ 1343 0 R 1344 0 R 1345 0 R 1346 0 R 1347 0 R 1348 0 R 1349 0 R 1350 0 R 1351 0 R 1352 0 R 1353 0 R 1354 0 R 1355 0 R 1356 0 R 1357 0 R 1358 0 R 1359 0 R 1360 0 R 1361 0 R 1362 0 R 1363 0 R 1364 0 R 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R 1377 0 R 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R ] >> endobj 1343 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 655.8506 303.3272 665.0958] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchNum) >> >> endobj 1344 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 632.2093 478.4757 641.1855] /Subtype /Link /A << /S /GoTo /D (subsection.24.27) >> >> endobj 1345 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 610.0225 321.0208 619.2677] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchPtrName) >> >> endobj 1346 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.4121 596.4334 244.9672 607.3125] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchName) >> >> endobj 1347 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 598.3363 478.4757 607.3125] /Subtype /Link /A << /S /GoTo /D (subsection.24.28) >> >> endobj 1348 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 576.1495 317.1553 585.3947] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchPtrNum) >> >> endobj 1349 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.4121 562.5604 241.1017 573.4395] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchNum) >> >> endobj 1350 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 564.4633 478.4757 573.4395] /Subtype /Link /A << /S /GoTo /D (subsection.24.29) >> >> endobj 1351 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 540.6426 303.1478 551.5217] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchType) >> >> endobj 1352 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.484 528.6874 328.6232 539.5665] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1353 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 518.6351 478.4757 527.6113] /Subtype /Link /A << /S /GoTo /D (subsection.24.30) >> >> endobj 1354 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 494.8144 306.8539 505.6935] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1UnrecognizedType) >> >> endobj 1355 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.3265 482.8592 306.8367 493.7384] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchType) >> >> endobj 1356 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 472.807 478.4757 481.7832] /Subtype /Link /A << /S /GoTo /D (subsection.24.31) >> >> endobj 1357 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 450.8891 204.8277 459.8654] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1358 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.6953 437.0311 258.8247 447.9102] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1359 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 438.934 478.4757 447.9102] /Subtype /Link /A << /S /GoTo /D (subsection.24.32) >> >> endobj 1360 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 415.1132 304.3434 425.9924] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidExtensionType) >> >> endobj 1361 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.3394 391.2029 279.8359 402.082] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 1362 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [282.8247 391.2029 329.2898 402.082] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1363 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [341.6833 391.2029 382.0713 402.082] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1364 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 393.2253 478.4757 402.082] /Subtype /Link /A << /S /GoTo /D (subsection.24.33) >> >> endobj 1365 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 369.2851 309.305 380.1642] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidImageDataType) >> >> endobj 1366 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 347.2776 478.4757 356.2539] /Subtype /Link /A << /S /GoTo /D (subsection.24.34) >> >> endobj 1367 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 325.3598 265.8981 334.3361] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoNullValue) >> >> endobj 1368 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 313.4047 478.4757 322.3809] /Subtype /Link /A << /S /GoTo /D (subsection.24.35) >> >> endobj 1369 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 289.5839 283.6216 300.4631] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoSuchKeyword) >> >> endobj 1370 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 279.5317 478.4757 288.5079] /Subtype /Link /A << /S /GoTo /D (subsection.24.36) >> >> endobj 1371 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 255.7109 251.303 266.5901] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 1372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 257.7333 478.4757 266.5901] /Subtype /Link /A << /S /GoTo /D (subsection.24.37) >> >> endobj 1373 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 233.7931 221.6346 244.6722] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 1374 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [352.841 221.838 393.7772 232.7171] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 1375 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 223.7409 478.4757 232.7171] /Subtype /Link /A << /S /GoTo /D (subsection.24.38) >> >> endobj 1376 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 201.823 210.9149 210.7993] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 1377 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [296.5628 187.965 320.6922 198.8441] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [343.6261 187.965 367.7653 198.8441] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 189.8679 478.4757 198.8441] /Subtype /Link /A << /S /GoTo /D (subsection.24.39) >> >> endobj 1380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 167.95 206.1328 176.9263] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 167.95 478.4757 176.9263] /Subtype /Link /A << /S /GoTo /D (subsection.24.40) >> >> endobj 1382 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [146.9453 146.0322 280.3039 155.0084] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn) >> >> endobj 1383 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.5392 122.1219 478.4757 131.0981] /Subtype /Link /A << /S /GoTo /D (subsection.24.41) >> >> endobj 1342 0 obj << /D [1340 0 R /XYZ 133.7684 692.1046 null] >> endobj 1339 0 obj << /Font << /F45 711 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1399 0 obj << /Length 2616 /Filter /FlateDecode >> stream xÚÍ[Û’Û6}Ÿ¯Ð£T•ÁâJó¶ñ%›lÅ[w?p$z†IœHTÆ“¯ßP (¡¹öÔÖ–«,^š8æ9@7Àa3 ÿØŒ Ata䬰œ0*‹ÙrsEg÷pó‡+Œ®{«ëÔìûÛ«¿¼•jf‰-x1»ýœ¶¦HaŸÝ®>Î9_\sEç?7«Ãºòǯ›åaSmÛ²­›-\â¬ÐsaŸnºzsÛ#' 2¢iÁîïW?ÑÙ ÜüéŠaš=Á %ÌZ>Û\ 1Æâ•õÕû«öM&w»G] W®Ëî'éuoyÍ%±´(2¶I„ °¦Ò3ƉeL #¤4áB‰>BŒÒ$DÜœ„èb` F qî½Qð zɘ˜æ¹,ˆ¶jà9%ZÙ“wË5T³à9aÁ÷·?Þ¾÷ž¿ù²¬×ûËnsE¨äò‚Ûà—fš×Ì@u‘ºm€‘’×^‚2Ó¯Öå~_eœ[m9¿àôY:^å•¢ ølEï4—EÁMZ˜Y´rnýʹù¤IèYÒÜ4a †Z 0—.#P0P€º;»û`òK ÍøÓV»WñêWJy»¿¹yÕ¬›íÍÍ/åö¾z³Û5»S·¸T ŸùXHI´0Ö+…=gÅ bE¡àøl `@ПB!-;r‹ynÉ®Cš# Ÿõf®GÕ‚Óy€ìÚÆÿÞ…Á¯}Ø-¤š7OáþgèkwPoí>•­?Z–‡}xr·`jZ0:—ªolç®íc;áÉ.¦ñQ¡çU¹ògÍcåÛêdJ.JA)äÖÙ³Û£N÷,î‘ïn | ‹0~€;…òyFíIÿæKû·×nnþ½k¶÷pRm÷ð>n†ÎŸ«S/…°ÐoÉèoÅE§S€ü&M$ü‡ š¹Þ½ùïÈíÛMÙ.'ª@R/¥”ð4„%GW˜©å£kb–£k4ÃéšÅ=ÒÁ tMaºp§Ð5ïÁ¨Ý!]Ý#u¹m_íª²”à¥Áy Ø©×K”Z¢”A£™ëÏ%~.ëõÁ“Cê.ÃØÙ†ëÛÊÑôÉŸ¸Ø¬«‹Œ”¶ -,ÂÈÔ,ÃÈÞ ed·g$†ë9€Í3rˆ;‘ˆ£v/1òÕ(KæZCKÊ Ñ€„– %_‚Ò0ÈQ¸EøØ›}×Õd„¬÷m 9Á$:ÆÕ4 £cb–£c4Ãé˜Å=ÒÁ tLa:p§Ð1ïÁ¨Ýst|×¼?,`bg°Œp Ul>ÒmêE&p˜•á•j…ñ1š]Ê`O(z÷<êš„z–‹b–"f"ÞÛ#.ŽÛu.ž‹m—RŸ8p™Þ ƒ…d ÔX/ÆvWwÀåÚGcSµÍ*“–Hx£†ùÕ‹œê³œê¢®º,îQunP] ‹¨n€;EuyFížSL»®œy×´ïÍ®…Dr”B ·xaи‡þp…½­!:/²d*(”@‚Å£Ù·/ ¤ˆ“–ò.ŽÛu.þwnZž 47Zºs:oE+Ì c ¥…:QB [wÕvÙœh“͹ sÇÍŒ(ìe³y„"î.~ ñT·')áeAsK‰0Û’NÍ2‚îÍPAçq{Ac¸^Ðؼ ‡¸x0jw(èn‹îÇíBÒù îº^á›uPÐkG–| a4Žòß®k;ˆGtݛӵ s‘±~.²':‡ëÅáúa_íü¿*öû¡Úw{×v¼qFë¶ßضnc;ÜÜ6áJ ÛUÐLÛ4+¯ó¡ïSI¤Öbrbœ>‹U4s±ú1]ø€×?.6¡*äP½›Á ñaÜšóá»(cD1j§† ·ÇàGí:ø¿î—u}»°|^Þ7¸„!Qºa!€h…y  Å2J =8Sã ==Ñõë𿯷—ûoQ *˜|ÿ£†?jÍág戗â ÛhLÍrs@4Ãç€,îq@pÃÂ"sÀwÊ÷`Ô.>Àˆp_½†éüò`!·c ’6îcÉYm†´ˆ(ðýÇÞìÜ$P0? Ào7»ót€ón€ß0 ìt(’]ó¾Õ&·ø<%Yb¸Æ°ê'5Ë %šáBÉ⅂ࡤ°ˆP¸S„’÷`ÔkÞÖëuuh¹>Tg7BEÄÄíƒRõ"ɳšh®±¢§7ûÊ/ù¢Ý¾ª~»üy^¿ð›g¾€Áã©éä’ÛEdF­ ,ËOÍ2ÄíÍPâæq{âb¸ž¸Ø?¹WÔìÆ‰Ÿ #:‚Hª^¤ng……Rcù}oöIaˆ‡1ÛôKÍrŽf8…³¸G #¸Â),Báî ç=µ;¤p—‡¸Ô4ÙT=æ® Ì0Ž…Å­àSó"Ü•ÌbiIovú©á¡. )‰;Ô¥líJÿ3üxÊ„”nœ|Ãú¦áx›/kÜ.é€kUÝ>ø²—û}xt[n‚K¾89MIj¨e;†=¿Ãæ®ÂVh%¢öü @if¡2øö?…IGœ²ôïzàÝjaEýrýú¡Úº.âǺqÜèÊ£Cü3Ÿjé ÿ̱â†ñÎ>»7)‘ÏÃíš×Í—çûñ'~PAudÕ dƒ¿ù,j™ßendstream endobj 1398 0 obj << /Type /Page /Contents 1399 0 R /Resources 1397 0 R /MediaBox [0 0 612 792] /Parent 1384 0 R /Annots [ 1403 0 R 1404 0 R 1405 0 R 1406 0 R 1407 0 R 1408 0 R 1409 0 R 1410 0 R 1411 0 R 1412 0 R 1413 0 R 1414 0 R 1415 0 R 1416 0 R 1417 0 R 1418 0 R 1419 0 R 1420 0 R 1421 0 R 1422 0 R 1423 0 R 1424 0 R ] >> endobj 1403 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 577.14 296.6656 588.0439] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1RangeError) >> >> endobj 1404 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 549.2446 340.6904 560.1485] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 1405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 523.4065 283.3852 532.2531] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate) >> >> endobj 1406 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 493.4538 278.9621 504.3577] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1CantOpen) >> >> endobj 1407 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 467.6157 292.2424 476.4623] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU) >> >> endobj 1408 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.2274 450.9376 267.641 460.8429] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1409 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 437.663 334.3041 448.5669] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 1410 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 400.866 248.5165 409.7126] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1411 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 384.188 207.414 394.0932] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1412 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 370.9133 267.8936 381.8172] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 1413 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 356.2926 223.2486 366.1978] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 1414 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 345.0752 247.271 353.9218] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsFatal) >> >> endobj 1415 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 315.1225 329.6217 326.0265] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1UnrecognizedType) >> >> endobj 1416 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.2274 300.5018 287.7613 310.407] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchType) >> >> endobj 1417 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 287.2271 326.7626 298.1311] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidExtensionType) >> >> endobj 1418 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 261.6475 208.024 271.5527] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 1419 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5147 261.6475 250.0399 271.5527] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1420 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [260.5016 261.6475 294.5487 271.5527] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1421 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 248.3728 330.618 259.2768] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidImageDataType) >> >> endobj 1422 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 211.5758 292.2322 220.4225] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoNullValue) >> >> endobj 1423 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 181.6231 308.3322 192.5271] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoSuchKeyword) >> >> endobj 1424 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 155.785 304.1774 164.6317] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn) >> >> endobj 1400 0 obj << /D [1398 0 R /XYZ 133.7684 692.1046 null] >> endobj 170 0 obj << /D [1398 0 R /XYZ 133.7684 667.198 null] >> endobj 1401 0 obj << /D [1398 0 R /XYZ 133.7684 646.795 null] >> endobj 174 0 obj << /D [1398 0 R /XYZ 133.7684 646.795 null] >> endobj 1402 0 obj << /D [1398 0 R /XYZ 133.7684 596.0675 null] >> endobj 1397 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1427 0 obj << /Length 2519 /Filter /FlateDecode >> stream xÚ½[Ûr7}×WÌ#YµBp¿ämcÙ‰³µÙ£ì‹íŠɳˋBR±½_¿`ˆÌ ™-UÊUÖ:ìÓhôiMˆUþ±Š AŒ¶²ÒŽF¥®ÖÛ+Z=Â/¿¿btÝ£®SØw·Wß¼‘ªrÄi®«Û‡Ôš"Ú1^ÝÞ¿_p±¼æŠ.~ZmëãÓj]w/oöëçm½;­NÍ~oQÍÄBÒåÇÛ¯^ßöä‰MF €<õoWï?Òê<ýñŠᬪ>à J˜s¼Ú^ bŒÅw6W¿\ýÜ›L~Û~tjÈ=æšKâ¨îC¸ò@ÿc:<Ú¡í££LÅ8qŒ©ax”!\(ч‡Q:Œ·£øÌFEI¢˜™œ7 ®Á—9/%Yï)1Ê&—"¨‰“KXðÿÕ«”òÓ±s4šwõÃÒ,êC½ƒwfá’K, Xë(ç“IH!ôʶnŽr¼ØìÍî±{¹ÚlÆ>ÁôÀ õÙJë’ÿÍá1@Þ%ÎõðëŸû–Yõ¾õq» !ø–Ž\E¥!ÄZnØ€w½Yõ1„`wß=«ºDW?– Ô*n_Ú1æ²”Drªª”²T"ñ1·ë}¼]:>a+ åÔŽÜ—‡ˆÂȽ(5”Ôùë/§zwD´Ï½.¦­3ª$­€Â•U"= «Lt•p"²JI/QU‘~lÕó×ìæJ°LóâØµ"ÖBy AQ%Üaz ¨TNrRNð. ouøš j·æìl ‘S„—=̬–Åä ¦á¡c-E [daø9UÒ5lž¯ö°³kv>^Â-ÖûÍóv‚÷¹9}ꞎëÕfuèž÷áçïõúÏ0˜-æ €Êv›«zGuXJµØŽÓ¡© ò•–!­Aô›Â îa¨‚˼½„1ÞNÃÚ²ˆ‡¼¨ñ ³Û*¡Î\ÁœhÉ\yìšùs‡z K­‰¤Ò îaí²~w<–L-VëS—Bw«cØ5¯ÏëåC—‚ƒá)(Pθ*¥- 9â?s»…[œ“bäC¶(Æl L®1ïïþ ,IJù½À–ÄV’T„á’*òž%…ðI¥´ˆ¤¼—HªìAf7Ðn~Í%¥@$N—Ç«"eŽ¿ˆ¤„%Š:I*¼ë³š?{j˜dUÊV<|<â^n×»÷æíí/¹–aÛ(µy0ÖQDa¼ `n­òÖKNqYìb3|üK÷ØÚW!¿Z2ºx»]-áÇ£ÿ/Äò¼¢Ž°ý"_’(WD)ã0‰&°’D# —h‘÷,Q„7H4¥E$:à½D¢e2»³‰DhOéòÈ!Ôª—(l…4ؾµ‡yÇÿ^o÷°/m³§«îÝs·…Mv²±Uéq!íB£¤9þgE–Ms×damWÅåI2b Ãz )¬$¬Ã…Uä= á ÂJia x/VÙƒÌnÖ›6ü§ÕfêÜÆ5CB %”ñÛBp8n°VHó#xÿ´?ùöåjóñ’lLÒPåïêé¤ËG³;Õ‡Ýj“'ngº_þc¥Df‚8£±ÎC +%r„á‰\ä='2Â9¥EyÀ{I"—=Èìz¦Ú”ÃAšéòÀ#̲9Õpçk;ô°öË„?Þv0„ùÓyÊVl;<â^nw.¬ 6®‚Ê‘Y×! 0ZÈ'cFAyÿC½º‡ýHõú*SŒ_wÍéczþ+ìÂü7eÔR¬u ëa¨ÆÊ¼½Æ0ÞNcڲƆ¼h ñ ³ë]x»]=Ö¯¿œòuÂÁ: Þ*ØjX`öWmÃnp#ã;eö0|fƒ¥™AxÃ̤´ÈÌ x/™™²™]ïÂß–\-Úãý×Ͼû¶?Üç“äõ­d9Zf^äk /l8›aÉö¾Öˆ÷]â€~£Ú.Ðýý¡‰¯?|wDHØñ¦î•º=Œ'·ÛM‹ðÓ"(L˾mPeÓ" âÖ_\:4nþD最hV¼ZJØèÁ&Ód+i2ÂpMyÏšDxƒ&SZD“ÞK4Yö ³ë]øçä–Ä­¨-–NÃýÒù*0)Žb‡ÐvŽÝto5×ÜÓ¡ÙNÝ€ó6÷çíÔƒÒ6%â—s»3ÛAE—þ±®!TǼHSÒó.-ãæ¾huéà{<æGfw¶§,ýMBÇáGÆ ÙÚ^ð^ÒSö«ŽèÅ…Vª,†W–"ï¹² ¼¡²¤´Heð^RYÊdv» 2s·àÄ#ý­£âðµoŸ²®EÂ^tÔ›ÖÚb÷AaÍ!,ÞKÛ-Íây[VÝY{.Güg`cR¸ªŒÂö‹LÃÐÃÖ¦†fPj°Ao—AÚz÷¼ÍHA¹Ñ(à12»ÞƒµŠÕæ¹nSéëÓÄÍPÓ-d9 F#ÄŸ×Re²½ê­f=¬to›9X ·Uj4ŸèˆÂ¸üÖ'þ€ûwâ°^BÇßÃÚ„%ä•/âoÿI¿=7ðQXnÃ'>PE›Ð„Z¯žŽðšÍÊÉ:"´tÓjb _êþ:#•eDðôoM`Ò°ƒÂ½òaù¾Þù¢PßÛkí•€¯›zÝ=èî§ŒuOLËø·*¼zð'Ÿ¸'Ûôšoö_¾>ÖY+]ã3[Mì<øþendstream endobj 1426 0 obj << /Type /Page /Contents 1427 0 R /Resources 1425 0 R /MediaBox [0 0 612 792] /Parent 1384 0 R /Annots [ 1429 0 R 1431 0 R 1432 0 R 1433 0 R 1434 0 R 1435 0 R 1436 0 R 1437 0 R 1438 0 R 1439 0 R 1440 0 R 1441 0 R 1442 0 R 1443 0 R 1444 0 R 1445 0 R 1446 0 R 1447 0 R 1448 0 R 1449 0 R 1450 0 R 1451 0 R 1452 0 R 1453 0 R 1454 0 R 1456 0 R 1457 0 R ] >> endobj 1429 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.3101 599.8049 261.7767 610.7089] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1431 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 547.0026 224.4473 555.8492] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1432 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [263.4242 530.3245 285.0171 540.2298] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1433 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 519.1072 217.8124 527.9538] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1434 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.625 502.4292 291.2179 512.3344] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1435 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 480.2529 213.6382 489.0995] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1436 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.9017 463.5749 286.2905 473.4801] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1437 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 452.3575 216.9458 461.2041] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 1438 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.1178 435.6795 255.043 445.5847] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1439 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 424.4621 202.0119 433.3087] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1440 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.6308 407.7841 334.556 417.6893] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1441 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 396.5667 217.5034 405.4134] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1442 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 379.8887 207.414 389.7939] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1443 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 366.614 236.8806 377.518] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 1444 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 351.9933 223.2486 361.8985] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 1445 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 340.7759 216.2579 349.6226] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsFatal) >> >> endobj 1446 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 312.8805 203.1079 321.7272] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1447 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.1131 296.2025 257.5267 306.1078] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1448 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 282.9279 220.2632 293.8318] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 1449 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 269.9764 218.1017 280.8804] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 1450 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [334.3477 255.3557 367.8029 265.2609] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 1451 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 244.1383 208.647 252.985] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 1452 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [283.2576 227.4603 304.6712 237.3655] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1453 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [324.3502 227.4603 344.2754 237.3655] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1454 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 216.2429 203.4166 225.0896] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1456 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.3062 159.326 226.6596 170.2299] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 1457 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 144.7052 196.2691 154.6105] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1428 0 obj << /D [1426 0 R /XYZ 133.7684 692.1046 null] >> endobj 178 0 obj << /D [1426 0 R /XYZ 133.7684 667.198 null] >> endobj 920 0 obj << /D [1426 0 R /XYZ 133.7684 644.2063 null] >> endobj 182 0 obj << /D [1426 0 R /XYZ 133.7684 644.2063 null] >> endobj 1430 0 obj << /D [1426 0 R /XYZ 133.7684 563.8728 null] >> endobj 1455 0 obj << /D [1426 0 R /XYZ 133.7684 178.3297 null] >> endobj 1425 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1461 0 obj << /Length 2271 /Filter /FlateDecode >> stream xÚ­Z[sÛ¶~÷¯ÐSFš‰PÜzê‡ÆNRwÜ8M”LϤy %ÚæŠTIª­Ï¯?  À‹HyÜÉdv»‹ Ðd†á™Æ’šÏd@Á\ÎÖÛ3<{€Î÷gÄ‚– jéÃÞ¬Î~xÇÅ,@¤r¶º÷¥ $Bg«Í·9eˆ,–c<¿¼ücZ‹%xþ!ÜFÅ.\Gõã§è>ÊDÏ£Ô¼"š³`ÎÉâûê—³·«ÆO A KblùóìÛw<ۀ鿜aÄ-fÃF$èl{Æ8 "„¸7ÉÙç³ß‘^o5tÈ fI9 °¬=…¨0@ó3ì/©@¡nÜ%ÔLƒ»$k»K(D™`•»ÞíÓugiq|â'\è!;1ØG‘P‚OE’q€aÞ˜F©IsÂRϘ1íJEÏ*Á ÔLÍ|}½5©W#©D[mQnÎϳ¢Ì£p[§Ê«®”B` “+LWþ`1Ÿ<{ü„=}¹Æ låa™åÆŠÞAN€I (h1Àþwm•©‹q5¨) ATÃRkG <à¶âuÝXCz•]»˜( \ŸêÃ?aa_®±ÐQÁùùÏW_º¦p¢‘ 2wQƒš0€S‚0îfÕ«<~x,ÁQ}†äÀ$ ÈÔN$`¤€ö`¾Ãº×²2Í“QS©)€Wù®(Ò\Óƒ*cÚí¾ÜíË:T&×DÌ«|«ÞÜ׉×J).!퀄ÚO‡Ÿ0¯/ט70 1–Õ:qÙ²AM©5Þ¢ã•ìî¿Ñº,ÐbÉžÌãm˜ÇÉÓÁ)U£ŒŠ2Nê‡Ý>ßeEcŽr)–áLå5Æ•5M•cJL9®Ô¥§óY<é›p MŽÓ“úo’䈯<Ž5¯¡H?@/bÈ“¼çä˜y=©Up½úÜS¯%âXéQŸ4  ¥Z#mj_é ”(LÑÅÈKÑ1Bˆ5ʇPÍ-\†IbëÊì(Ï‹]—ÙWqj dŸ§ÇùB(H9LÕÉ>l„1Ø$eŒëm8cJoM-µÏa¶'ÐÆ¸=}¹ÿ"qŒzìÀ:êhGê%Üq¢ä1na_nU]eÉ~›öl4ÂŒ“qß4¨ Íc$zšOáÉfB¾ˆD<c,â`Ub=¿¬â°NiÇà‘ªª†Oדz<`æ!ÍF]¶lPSŠ‡Þ èxÅ•UG)+ÄQ'x}ðȉW0‚$'Íý@sCp•aœDˆ ÕðT¬óxgŽÃÇÍ£R‚M2²`ÆF†£x@teYç‚"J×IV4Å%l8½x1–ž˜‰Œqø¥?`€†zrý#TŸ1Rw­èQ EMé†dl«^'auµuDº©Ivº]xëÒ¸ºË8ž]<‘ü´ìòÁ#ÙÅ•@8P‡ë'Dmz½Mj¾ßš ÆäT•d«×ó§]dS.[CZ†£IÇ8Ç®`$RôÔ)I¨×´ SSòT\{3j–LTÏ©Þ.[÷q枈Qn·ËÉûë" ¾ûhµP¼šúÑyr v*Ô±«&Œ°†ýx<˽ÉR(@8‹°e9¢œzèáÒÈ¢¦tKSnB½ÙÒýׂŠÊQ¶4Wus¾|Œb»ƒ\š¢ýúÖ’ÅŸûØŒ¶" £ìHS<¸Zsî ·Us m–DÁ©—×§ÞUºO(,8 æ«»¶/¦Åü¢þY½¹®BøÚ>Þ=•‘iòà?«·®7Éâu˜´%Üܾ¿¾üéÆa  ©·|^}ºþ°¬l„˜‚!jê~o†qe–˜ï‹Ç,7öÁrº°ï¿|þùöSc"t¬ªAðªqÒâ´+ëúCKÒ‚‰¹dù')É`F-ëkf¸0^e øæöÃû×ö¡WM×ÝôòºwáË€„eYX¶Aïnnr¶™Ë!“V›l—@ 9­æd~VW·_Þܘ(VOël»Ô.ÿ´a—·¿~¼yû»Ãmîz±ºzsS##i†Q*ç_MŽ]˜¶˜/½ô²}_K—TóÕe¼¶-ÓÃô’:[™Pv€Ã·àZ:qp#ìfÛWçtù=Â2!3Ãlê1õËa+Ph%x‘¦BCŸ 5tùñ­ÇÕ±„.À¿õã ÐC ?|íFqyãïGIŽÃHbªOÚ|ðÈþC{‰ýDQm@Ìn?î{Ås¶OpPˆ±íó4ó©ÖÀï“U¦Ø‘^Epø(Õ9ÉÁ$^Õ?#QB`[ÑBwO¢]ý NH"°(Ãü°8…TYVÌ ZÙÑÅë!àJ˜…ÔÏJ^utT2‡S–n ƒêÄ6 vwnʘÆzbAÚ÷êqŽø§IœFßGÞšã©j݇ %HB\o‰ªÐ q‘A>ãb¨ZÃÕ]/‡Õc P&èAmõ®Kû¾ˆ·qææ²Ú<–™ý}ŒêÆ}™e‰mnöÛm6‚ê÷íÔµ“ÈlsJÍkrXG»ÒÉ ›V”[ÎÆ4b¼û<Š6™½É0öuý´ ó26ÅCí°m[­ñŽGlÑb&F¡È\ïó<2{´yˆ È¡z—Ý׿eåÃêMãC°¡S9ƒ:IC¡ùIW¶Î¹Iqø¥?`à&¥'×LåãÀ×&à|A¸ìXнGq¨)½P¦Æs-½öXn}’Vß9L« IáœfÝæyød‹HÊ£}+ºEü¿ÈÝN¥YÙT®ö¤–¡íüû1^?ºî°ì~[ a?³«bu¢+i[’Üá¸ÈËÇ<3ÙúW\Ô9`ÒìÞ‰‰‹Îò­³­Yˆe”n"[xÃz2,ðõ>m¢»ÅóýÃÃ3>ˆ‘šßuÌÆ$ÆŒo[Îá/þs ¤ƒ¼ðÿÞ¸[1ÝâA &yP×äQjœçÜ䜼2g>w¹ŠÖuCÖ? Ô-"Ï =öéÞ^œ[Û¼qg½~•ýóôõ¶z®ä2ìðÎ4ÏeÿŸàtendstream endobj 1460 0 obj << /Type /Page /Contents 1461 0 R /Resources 1459 0 R /MediaBox [0 0 612 792] /Parent 1384 0 R /Annots [ 1465 0 R 1466 0 R 1467 0 R 1468 0 R 1469 0 R 1471 0 R 1472 0 R 1473 0 R 1474 0 R 1476 0 R 1482 0 R ] >> endobj 1465 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.1173 631.4173 269.7868 642.3212] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a098a546c28ff774b84e56666aca95c76) >> >> endobj 1466 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.9286 631.4173 419.5131 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1467 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.1962 616.7965 266.6098 626.7018] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1468 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.1173 603.5219 269.7868 614.4258] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a91ec1e6f0c672b698749d34d65d190e4) >> >> endobj 1469 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.9286 603.5219 387.4041 614.4258] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1471 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.1173 575.6265 269.7868 586.5304] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a0b5c90532ac04bc76509c001b709bc2a) >> >> endobj 1472 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.9286 575.6265 399.0304 586.5304] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1473 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [243.2057 561.0058 273.5946 570.911] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1474 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.3101 504.1387 261.7767 515.0427] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1476 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 425.4874 160.2387 436.3913] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1482 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [326.9001 198.3216 356.0108 209.2256] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 1462 0 obj << /D [1460 0 R /XYZ 133.7684 692.1046 null] >> endobj 1463 0 obj << /D [1460 0 R /XYZ 133.7684 650.421 null] >> endobj 1464 0 obj << /D [1460 0 R /XYZ 133.7684 650.421 null] >> endobj 1470 0 obj << /D [1460 0 R /XYZ 133.7684 592.8862 null] >> endobj 186 0 obj << /D [1460 0 R /XYZ 133.7684 547.4317 null] >> endobj 190 0 obj << /D [1460 0 R /XYZ 133.7684 490.5647 null] >> endobj 1458 0 obj << /D [1460 0 R /XYZ 133.7684 466.4851 null] >> endobj 1475 0 obj << /D [1460 0 R /XYZ 133.7684 466.4851 null] >> endobj 194 0 obj << /D [1460 0 R /XYZ 133.7684 310.6028 null] >> endobj 1477 0 obj << /D [1460 0 R /XYZ 133.7684 288.2447 null] >> endobj 1478 0 obj << /D [1460 0 R /XYZ 133.7684 288.2447 null] >> endobj 1192 0 obj << /D [1460 0 R /XYZ 416.1271 171.8952 null] >> endobj 198 0 obj << /D [1460 0 R /XYZ 133.7684 155.1681 null] >> endobj 1459 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1486 0 obj << /Length 1918 /Filter /FlateDecode >> stream xÚÍYkÛDýž_a„b‰ ó~¬X$Úm¡H  )|(ò&Þ] Ç ±SºüzîxÆ^?bO¡Jcß×Ü{æL–Dþ‘ˆ0†”Ô<’†"‚¹Œ6»ŽîááW âA«µêž­Ÿ½ä"2ÈH*£õ]ך@Ò­·o—”!¯ÆxùòÕúõ›*Ëãxù]²KËC²IÝ×Ó»ô½L {‹(FÕ’ÓøÝú›Å‹uMÇ A Kbcù}ñö޶ú7 Œ˜Ñ"ú¾`DŒ¡ÑnÁ8¼Diîä‹×‹Z“§õ«¶ˆ [ûÑ©W qeÄ™JŒ”0ƒR…(l¦T÷J_¡±Z¦Çº“ù Ž àÜ’áì ¬9wOí½ã½øãù¥ei-i›¥g—¶Ù|Ú$†1J• &ê·Uƒ ùV ƒußwVÆ+¦Å2qÅS™–Ë;¨’¬ÈŠ{÷øîTlªl_ø—NeºuWYQ¥Ç"ÉóG÷ýöq˜ ÇI uî'3YÒHklצõüù/ÓªEÁ0†«ù’¶¨ï‘5ëûÓxʼnYÞÆ/O•«ÇÙæÁe$bT2X9‚Œî¥]vÿP¹ ¾õ“¼¿sŸPewq·?ú'ÕCê/“Ã!Ï6I½(hºÉ¡H333“™Ô3„Üma¡5RLòv$ñCy“BÓä¶5ìÞ¤åæ˜l„“ñ -‘æ†L!—D_<„BrÄ´b!la a×èÌ|7CØóýßa?™ †p>­±Ý‹†p¶¤OCð=²ö?BÁ8šÓ‹†° n7FŠ !¢ßÄ!Â`rê)ä~ŸçIYúñÛoN»:h~­mŒÙÄ–Ìa—EŽ)DnB;:×@&ÁÞ’GÓ4WW_–›,[ÇæâöñÜïêÜ.Úà­#Lˆ h².l†3¸ÐHK¢\ƒûPjÙu8¦%Ô¹S{§eq^Z;óØâWÝÆñíÚøÖ±†æ¼ÍGÅ¡€´„1(N‹ 9—iÍÓsþâC•e;кóΊP…0·™ÜÁÝ>òqVlòÓ6uo€–|zCÀ M!4 üüŒM…ÇÆ\÷ØäÑÃk T/#û…ô’ª[ƒ*Lš¯¼*`ê³*)½½Í’ûc²è‹ýB\M·)ÖH`~v%̇"XX¶bÀqBwQC4èY ³Š-&úÝju©¥¬v¯k½ÿ4ãõÏ^íHt³QýÐjì9DG+_ž ’ÆRø2’€ÂIȀĠXIYWþûSÍÙÆÍþ·éî¶æ_¸~ÙîˆSÕµ–´¢ÓúB(Á Aa£}CN0„€§Xꨅ٠¡TŒ‚‚N–†©¨kpì·Aýj$•è»}Ÿ«S§"bðò½Ý÷ÙvDX@§@QúqLsQƒD4¶kCJ¶Ûçûü´+Æ\êNS1_ŽrÇ9fײ¿ Xà±_k’íÒô|0‚¡]ÁO1œŒ—I~Jk.x<Œ8™aÐ1‚éù:´¨@ ƒ®áRõ£¨À/(#Š©U•eåäuu¬w-{ýɦ^${’öÀ|ß<;¦‡4©VNAn鸾§ ~Ž9^fÛê!ìåM‘U×î¦]ž>‚ÿÉÈç6Ýd»$/¯±Tf¦¿z“>Ö“e‚klßÏF†aCçô¬À!0R8 <#íljÒnT޵ˆc-î¤=P ´è“+ßö^#º" (Q÷ÅÅﮫ½Çùï©ÚYù$(ªs;9È2-°KõœìâÈfl×fóõÍ›QÐ_ <èl…W-*ävdͺÖÔDiÄ ‰».l†º[Xºçý¶Ôò먻綡î¡g­Qjèyú0ÜàC1Œì>‰§IõXŸ¸$¯B‹G@xOºÚó¨úpùå–û´¾´->Pƒ±]ÁHhœº$H2%©7¨c8±ªÙ0uí¯Ï’²ÑÁÝzq¤hupS§á¡Øj@î1‡š=ãX>ž$IÉàÒü#’ìØ˜#ÉÖ“+.ÄÃc'ØãiSªž$ˆ]Àö"€lŽX˜fý>@À¯'€®Û¿£ÝÈ Žv#¡ˆÆvmHÇ4ÙÞ$U2H+2à 7[ò ŠB3>\˜†Ûý>o$H²}™'÷×w1rÊË3r¦¬¶WWïí6›6­38ü›‹À¬–ì' è^ºŒ Q 'ÂfŽ‘µíŸüf£®Àcy qz-E5µ<`úZ*„ÕuZΤ@Àˆ¼ ÍÍL õ±Z·|#j¡5/¶¨íÉÿtlÌñH«û4fj ÒUWe#«ü]¿ 4¸T@cÚãzê!Y#ÉÒæÆáäLŽG»(Éc,ÄŒ.Ñ1ÉÍùó¦[äá/n]‚½Ïh÷ŠPg×=O7QÙZ}•é1©šœ÷>çulèòäó¾I7îBºЉßGˆ¼"ôªÙUîb*–ß>ü羽ËoöïÓÑá¯ýK`·`½þs4‡œendstream endobj 1485 0 obj << /Type /Page /Contents 1486 0 R /Resources 1484 0 R /MediaBox [0 0 612 792] /Parent 1384 0 R /Annots [ 1488 0 R 1489 0 R 1490 0 R 1491 0 R 1492 0 R 1494 0 R 1495 0 R 1496 0 R 1498 0 R 1499 0 R 1500 0 R ] >> endobj 1483 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1AsciiTable.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1501 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 672.27000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1502 0 R >>/Font << /R8 1503 0 R >> >> /Length 1504 0 R /Filter /FlateDecode >> stream xœ“MoÔ@ †ïó+æÌøc¾z+¥‚ëBø°bËVÍaµ•àçãI3™‰Â¨¢Uâ7¶ç}ÖÎÉ:@ëÊ5ß÷£yû)Ú»³qöƒþîÌÉà”`çÛ~´ïMJÖGÄv8˜§Z´LÀÉ2C@ÖW£yuss8>ž¯®®ÏûãqøúíáûëáÞÜfg$ÃLö§68š“­mf#‰ 3 F##¸òü°<çà€«R3·JÉÿa$D­P øÍg»û/²Ì€„Ùyy¶fºH¡ bìXªÒˆ(%ôÿ­Òª”Ë…qr ¿KËÆ`EÏ!®¸n=~|ÿåï`œÁKV•&É!è¤ÆViU &ºB:Hõ¥žãK¦d¬•ÁeH"+²Âò1è6c‡U•†"QY‡±UZU™Wù2¤˜J 2c‘€s9èg°1CÞ¹e«çEø²ÓòÇ’šSÃeg¦óz©dDÇ#¥'ë$!Ç^Yw9¼¹pn]×9T~–g­Öœ.[°Xm V­r :«²îrÑj]À9ô¤C|ÖjÍ©á4ÙÞé¬4£ÞGÄÑNYõPŸ;ó«endstream endobj 1501 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161252) /ModDate (D:20111206161252) >> endobj 1502 0 obj << /Type /ExtGState /OPM 1 >> endobj 1503 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1504 0 obj 446 endobj 1488 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 629.7331 170.7492 640.6371] /Subtype /Link /A << /S /GoTo /D (namespaceFITSUtil) >> >> endobj 1489 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.6244 629.7331 431.0909 640.6371] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1490 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 561.2342 170.7492 572.1381] /Subtype /Link /A << /S /GoTo /D (namespaceFITSUtil) >> >> endobj 1491 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.6244 561.2342 431.0909 572.1381] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1492 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.4356 455.7086 259.3159 466.6126] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1494 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 227.1435 253.4787 238.0475] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a245630609bfb16d581263b7ee868ce10) >> >> endobj 1495 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.6966 227.1435 301.05 238.0475] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 1496 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.0138 188.6125 331.4274 198.5177] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 175.3378 231.0924 186.2417] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1499 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.0625 175.3378 262.6339 186.2417] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_aef13a5add47a41179c1f751c2235a17e) >> >> endobj 1500 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 147.4424 242.9382 158.3463] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a7560ef2a9c29653a9685e6d20371e15e) >> >> endobj 1487 0 obj << /D [1485 0 R /XYZ 133.7684 692.1046 null] >> endobj 202 0 obj << /D [1485 0 R /XYZ 133.7684 604.2039 null] >> endobj 206 0 obj << /D [1485 0 R /XYZ 133.7684 534.5842 null] >> endobj 1276 0 obj << /D [1485 0 R /XYZ 133.7684 502.589 null] >> endobj 210 0 obj << /D [1485 0 R /XYZ 133.7684 502.589 null] >> endobj 1493 0 obj << /D [1485 0 R /XYZ 133.7684 246.1473 null] >> endobj 1497 0 obj << /D [1485 0 R /XYZ 133.7684 192.5975 null] >> endobj 1484 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F58 909 0 R /F11 844 0 R /F51 914 0 R /F14 944 0 R >> /XObject << /Im1 1483 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1509 0 obj << /Length 3280 /Filter /FlateDecode >> stream xÚÕ[ëÛ6ÿ¾…‘ Ô,ߤ—mÓô®@wíöSÛZ[»ÑÕ–·’7i>d½é4@C¬Lý43çE–­(üÇVLb´•+q¨ԫÝñ†®áå·7,€¶-jÛ…}uwóù©VÉ4׫»‡.5EtÆøênÿóšKÂ6[F)]ýõ/”òss{ûe³+Ë»MÆ×ùý¡Øl¹‚·‡¼iüãÅCQo˜]ÕÞ2eµXK±ùõî»›oîZÉ: 1T3”ë÷›Ÿ¥«=Lã»JDfÕê=ü „e_o„„cqäpóãÍ¿[’·îÓ)}´˜-Ì-£Úkp…@ü3­;m€¡mU§ÌÊ‚ê´è«NÂ…Nuÿ¨õé\ìÎÅ4ÃíúûâxªqÏož«Ý¹%ňnºá¸õ@ÏK:ÚFP‚?.öë>·%‡\¥Å…¿Vžâ?¤Šìÿþú§wm¡hÉXbÒ•âj(œš>[o–Þša v«D¢/‰.¬ïê$=ãc§^S"¬×TWòº®«v]§\ Kz¹%¾ëêFÂõ¼I„õe£‚¦ò†”c„ŒLH±¬Á•Ð ‡tÊò‘>q™ua²1Uý§¸°.ÖÂP°}3‘ clɺ4'𵽪;Ý/´§!ƒÄÁ¶±ß¶ö_ç¼<Ä.õë¢ÙÕå6§çÅ“6³5)ãïÀ&Œ¿¥Æ)ÑLûâ¹w’ðTMQ]6ædnÆ…&R°ìB'áþ"~Ûý`´Ft}n6g×°]­b í:¢RÌ5%–QÑgþMl'5$4Œ *¡ç ÑP$8Ø÷ùHt5¸¸êàž4&Á°È•Ž)›ûás<|jvù!¯=>ôü X‚º,>¯ö’‡¯Žùáàë¼z,üKìtáÐ>?ÜùÃSÑÌ[¼€hK…)ßÕW÷ƒãjaiÏÄŒ&Ú‚7îË24ïˆJI`)l|eû kª tNåñéPAµï³>´'Bî'š>ìÃ{Ü–øÛ­]HćUB—î÷J¶øÄ Æt7€0Lvû¢úZTйå„gýô˜ç÷à@s,OP';ôd³ÕÔ®ï°@qŠ:Æ’òÅ3Þox¥çQÕÚ¬Á~/Ö®}©ƒã°Îõ\ ý1hyò?]9”Êÿû¸qžÁ_ôƒ¯ç»j’Ô 4 “ArÏSíòßvñcu¨¦Í]JC¸H×—d°^-*%ÆVÔvO‚·¯û„ P.Ú‰s(Œ‰°ީѾ3{]Ö®ŠÃ&hÎ9Ä·z8Äp]F9¸&2%0¢(שpàÛ.~Â!©^‘éhHN•RIF‰q@¥0‚@J¦úøj½ êi¼NöeÓÚt±¿ÝlάñÍCóºð»û {ÿá}xë<Ê]yF@>–Q6X<`ƒÁÚÈõù4r§Ø¶`’Â%JyößvñnuHåÀšøö6ßïç×;¤b$ͨ2 ¨„cjÑ·{e^ <ØÚ·ÏF™‚ R1s­fZ|JªÝ‹nê‰Â™gÉ ÂMè$¢RÜGÔ¢N@.w9Õ^Eeu.ê ìçƒÿ}ïþ HY ?àÎÊаÆOrˆ t$ø¼øÄÆt£Ǿ“C9ƪkQ)¾RÈó²>_,Âæò©¸ïákÅ]ä²*Ï.åÞ‰ºç]lØí àùZ<1‰+¨¢´¸" %NYdÀo»LYäîu»U0íŸwY äß–äJÕ´ø”P#º(ÔWe5¯©&6clY)-*Á_bm™éó÷Ž¿WdLgë²8°Ä«êÓ.x¡>噀c:*wÏ.|_£¾lKÕÞðëÓî¹MîfeG>\°¹‹Uæ¹4WMŒ[ ‘ذÔÄ ÂS<û¹LlþZVX÷³>Cè xˆ3JÊõB/˜Yéo ›ÁI_d4àw˜¼4ƒ}ç¬7 ð8LÆC­x† R´'Ððür‚4#c"ÿpDíá¯Û=Ÿäœaµ¡¦N“/·ž¦eĘöujPÇk[ÞîÂÔ˜ ¦œh|îR¡ãÄ)J1)3äDœª8żr5A™gÄÚVIù¢Še<Ýœ;ôóœÆöè–Y–<„…ºÀ¾HÑy9mF¶Àoá¾Ö¼Þðî ¡ [ðÝÒlyº÷%‡ =²½&äìt…Bg¤Óµ©CÐ)“ ²/-,<6§ñŒe’åí™Í»Â] 7†À¥Mš$’Æ/ØÔžíj}¹a¥ïQq7ŒXÜ6?CøówUwœ§¢6ÑõëÂ3ìŽ ªÛý潉Ã[ÊzwÐ0¾ƒ¦¡úÕ Å–h"‰øm÷ƒ©.Ünºê fìõeæ.•ˆ±{Ü ¥½JjwœÊ # —R >€„“_æØÂ®ô ï êôÐçé Ò?¡ x@Y€•Iòd.â·Ý¦ŽM†tS ¯…b“´/ƨ¯P)æ "!TÖgî²I6<‡W×0¶®|ôÃL¼ ¯N®Éžü¯Î­ ?³Ü36iËÊSòGñì²X¢­¿ oóºÎ?ú~Q%#Ê÷t×´qþÑÕ¶_¯ÓnÌ¥EŒ¯}Íf×ÝÛ¸~¤¬öå.?ÿêýÛr÷Ö¿ñ_|r­|p™6 î‹È5ßcµ’‰P­À˜çÛÚW':x‚,cž Ëxhoã+oÝSùpÁÛЉ˃£àD¼Âðt!¸OÉ¿ïv£½ð%.ÖÛ|îÞ5ÄæS |î㎧ºè‹®>`;—lWî´Ýè Äǧ¨6½Î#Æ«F¯ŸNeüÎׯºßs-l„:[„·¾îÃÓÍwøÏé¹/‡°æ0¸ ôóÝïÏeSÆÜy8X/õ«Í~ðxÚÿèdúÓÏ_æUþ躮ó……jDËl:'fðÉÿ‡H'Já]6Á»ÿ3Œ&™¶£¢T8ÿo‹ª¨}«ÌM³òÝU€çPk¿.vþAû?œ2柘¾eüV…_ÎÜ®R—ÀÿrþIþøðXŒª> endobj 1512 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 631.4173 202.5897 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a1c5cfbf4c9bcecf8b0bee071fca37d32) >> >> endobj 1513 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [293.9779 604.8414 333.5032 614.7466] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1514 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 580.6078 202.5897 591.5118] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a56e7f260511c4a4ee08c84d00c624913) >> >> endobj 1515 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [308.1569 530.1216 329.7498 540.0268] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 516.8469 202.5897 527.7509] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a69d98cb082fc738212066f583242c67c) >> >> endobj 1517 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.197 502.2262 229.7223 512.1314] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1518 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [247.6617 502.2262 269.0753 512.1314] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1523 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 489.3251 210.3306 499.8555] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_addd0761345234235bd36d3dc46d452f6) >> >> endobj 1524 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.4356 417.4638 259.3159 428.3677] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1525 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 387.8842 177.6831 398.7882] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1526 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [355.9347 387.8842 379.8149 398.7882] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1527 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.3618 375.9291 448.2728 386.833] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1528 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.7407 346.3495 270.6517 357.2535] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1529 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.2418 334.3944 228.53 345.2983] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) >> >> endobj 1530 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [252.4555 334.3944 297.6156 345.2983] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) >> >> endobj 1531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.213 334.3944 443.6885 345.2983] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1532 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.8677 322.4392 315.1559 333.3431] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) >> >> endobj 1533 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.6112 322.4392 407.8873 333.3431] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [263.372 219.8775 308.283 230.7815] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1537 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [150.3579 190.298 174.2382 201.2019] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1510 0 obj << /D [1508 0 R /XYZ 133.7684 692.1046 null] >> endobj 1511 0 obj << /D [1508 0 R /XYZ 133.7684 650.421 null] >> endobj 1522 0 obj << /D [1508 0 R /XYZ 133.7684 506.2112 null] >> endobj 214 0 obj << /D [1508 0 R /XYZ 133.7684 462.4828 null] >> endobj 218 0 obj << /D [1508 0 R /XYZ 133.7684 308.8652 null] >> endobj 1534 0 obj << /D [1508 0 R /XYZ 133.7684 286.5071 null] >> endobj 1535 0 obj << /D [1508 0 R /XYZ 133.7684 286.5071 null] >> endobj 1507 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F14 944 0 R /F11 844 0 R /F51 914 0 R /F75 1521 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1542 0 obj << /Length 3202 /Filter /FlateDecode >> stream xÚíkã¶ñûþ  d føÉE ¯K/@Òön¸Ü­½uc[Ž%ßfQô¿wF$eêe9‰ ½û ®4çÅyÐlFá?›1!ˆNœ¥–Fe:[noèì=|üö†y EµˆÁ¾¼»ùì…T3KlÊÓÙÝ}ŒM‘Ô2>»[½I¸$l¾`”Ò䫯~¦”Wåííår½¾›[ždï6ù|Á|Ýde醯òûü0g&ÉwKøÊ”IE"åüíÝw7ßÜ5”E 2¢iÊ®_oÞ¼¥³lã»J„5jöP¬å³í0‰1Þln^ßü³A}­§"?WÈ|D\ÒÀ&9pEZ˜!Þ ‚H˜!”sqœhÍa”¦F†5,Vzf€Å©p,öp ²øs.“ìmó ÙÆ’²Ç)͉bTÌbô=Aó”Pj ÜÓ  ’X)Gw‹+¸éo» Ï€çõ+žÑ[v.`ç\iS{™¨S’2à\KÔlV ƒ%ŒX¥ø8nmÃ0Ìh£Š ÔN(¡NRg±a°!­@z@š•ÔI}ß2X§²ÌÎ<¶ô ”‹gM!ç1…6%’«4PèL_¬w¨‘µMW…{¾xy÷úˬôF_¼ûW¾¬Üø¾ð õ¬]¶q¶³S©ai“ò+î¥Î™å?Yþ3Ò/A‰…#ú¥à«ž¥Bð´ª–ÝÃêø8”q‹0^MǺTŽèXLç‰tªtß%– FÀ¯D3jÇ‚Ÿï=Ì«ØÿøE<¡OI/RâÏ4Cݙ֥EK©`Zº8@MQ A‡¬èÈ,6¦`nïs;‚“\³#Ðd)œŽJå0:î¿ØdsF“÷ã&!¿šIu 1©˜`ÒDö¾­F+ -¶ëצLJ¼zèzvT1U™7Ê{.‹]YŽËj oFµðj øˆ´P(ö©~ǞŒQ-T†aø˜B¬')úsj‰ÑÖÅ¿ îåsA“§rTcÄ’ØF{ÄŽh`LìÏTÑbº’m` ù×6ÉÜc³.+7_?ýÞ˜JžqXVågËbsÜî0¡ÐÆ©(@ÖÞžÎ.„ÕÉ݃·Þî7ù6ßUYPÒØ‰ Yë Æ$Œ·Ì 0‡õòÁ}ɹ Krk’—÷dWìòÖ,‘”û|¹Æ,)_}ŠolR=øOÁ„C¤U!vò4嬀 =uMÓ¡ƒÁ¼ ³Åë©ÂGd‹2Ì‚.ßS˜1n‹ r%-䨉cžê™ÒHS.rÿ€Y ¨ï O¦áý“´žL±Kë°)¶h0En“¨×ù¡Þp•&»ãöìJ©ÍŠ §ãø¡¨Ü”Žf T•Û ž"¨'¼BÈCmè›ÑoU¾+{–騬2÷l³jùû:‚bÇãžëqùcŠ{$‘R™³å†F}!v–<œâФTꦢC ^«ê¤ "à¹N6ùÀ+ŒLk­š/¤e§tDôÙ &;i/e¹Â¥ED£&g=ÌþSÑÞ#BvR»QGÅëê°Þa #UòÉjç`÷ÊO ì:ZF‚<€ 9ìF …z˜ÃœÃ¹€ºýXa„c‰ÈûMÛׇ0ªju{û‚þâà{p>ZF·Ú_V€3]àÙÑÇ*/ ¨¶û| Ï'ƒR’J5À“Ùñ7ñWÐĤKظ Œ:¿ÍT!“dg›16 | “Û çW{›£xP‡k8(æÚ59ÀaÑÚº¦£Û~¬QNuh­1gEk%»@²ò´£ÏÇа³’UÔ°–h_lý†$+ ,UÏX²Î Gë°ÑŠiÉ‚Ïáç–ku‰Ñr ý¬Ñžð ‹VX™¶Dûãníw1"[KÚŸŸláˆ&=ëákÃæ)Ómñ×!ŸJ|ÀÄÍ ûÜ4HŒ d”Ð4e§­°,d ®áÍþPT ƒ|õv´}"5ðÐB”z¾ûƒ „ 6±‚ö%©Çúrgl\(·%Â9º„ȯò äBNB÷G7ôjh¬m–˜¨çøE|X{¶`Šòä†÷E/mØVS©¼”) üu}¼HÞWµ°ooѸú½fˆÑà×ϲ§š @r`£è°'èÍzWæ‡êUQÛ­×=x“mÚvÅ>?Ôe,†ª OVëò—ž„™Åˆ]Àê)ÁJÖ„†ðE? é.V$ Ó~ÛÀBL“v–ïêWšXTB¢ÄTkM´Ûß~­^ð<îWÎÂ8[.‹Ã ¼ææ §šc*â˜+®Â¨zÚûw®Æ“<«õFÎ!4‹8¿®FÊ´#›¦–…®z÷äžÎÙÀ êàϬîÌ¿?b©Ì½Á3õîÅß_}ïþª|áY…12y¼.o\îÏU±¬qfîu(%7mBàS¾¯N¼Ë:æe/ágœ¬Ñ`¨ð[eÕušõ É0‡™‰f}ö;›õ1úÿ7ë?š&€])ÍÏ6SE*¯yQ3Õc×ìüÄ8Ïû<öòfj3ãÒfj<áL3µEÉ…ÍÔ6-£ÍÔ B3µEÁ¹f*¼U>ÞȺž<Ÿw;UHJÇYà‚¸Fó€(ÈúK%‡¹TIñ8ÞÄŠ‘^͘º„ŽSL¨/‰sr}˜+ù{.°>:ÌðLýዟ^¾æ!ÍÖ´«möy·iç»J3æ³Sæ,œ¸æJás0÷¸hÄBf.;9ýy—-x­þMo#Zo";²§¶6¡!&ݰ‡²W:§®¯Ió3×I®·ùgîÿ% Ë«ÃZ‰wQ!€œ ˆÞ׺SbU½ëÕ`—ÒÕ‹)P=зmVý”ïjÛÞÊÇ­ÁfÔXçW†©ƒ  ´PvkÀcÊc½–òõ(Q¾ˆÒ¶5fŒ}<Âfº:xº¾´Þµ´r\é®·íNéØU•Î(bà€š¸.Á ¸×\|]"Æ{5µëÒ:¬v-Z‡õ®}]BÑVl8TNdø3È­ÜåÄ¿ˆ' ”{xGj¬uaY—€n‰;@M-ÛÆ˞1¦« óc1¦ŽH¡ÄD…+CÀ©ˆSé^P¬–nÝ%˜ÒݲA/†ïªóå§}þ)6WÒVŸ²ÝÊÍŠ zø~{,+÷¡¾Þé:0‚o~Ш) zØš>m{Qì@h}1üäò]¼¸ü—ëÝèö%—„«ž(º­˜5±>¶„è®j°‚6`Kï?ã6F¡þGF“Ãbà3à æÁßÄ÷ÂĽÆM¸¦Òó÷Â@ts¯iô^å͵€á{a›£zêÂå&ôäw‡¸£»B‘^»5Ï þ”ÒLý03;s¨°Îm\ˆ\_ºìy@…ŽôyÞvøEabé-ã·!}ºG®‡cÅW†|:ÿuñÛÓû¡ŽŒ­·ª!­ÇÔÿàû endstream endobj 1541 0 obj << /Type /Page /Contents 1542 0 R /Resources 1540 0 R /MediaBox [0 0 612 792] /Parent 1560 0 R /Annots [ 1545 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R 1552 0 R 1553 0 R 1554 0 R 1555 0 R 1556 0 R 1558 0 R 1559 0 R ] >> endobj 1545 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.2884 630.0036 275.1993 643.9513] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1547 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [283.3555 452.5234 307.2357 463.4273] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1548 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.1427 434.899 282.7142 445.803] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1549 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [359.7601 434.899 419.8738 445.803] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) >> >> endobj 1550 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.027 422.9439 240.5025 433.8478] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1552 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.2884 358.561 275.1993 372.5087] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1553 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [315.9165 284.8375 339.488 298.7852] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1554 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 218.0904 155.9949 227.0666] /Subtype /Link /A << /S /GoTo /D (todo__todo000001) >> >> endobj 1555 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [339.395 216.0531 384.306 227.0666] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1556 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.9714 216.0531 425.2475 227.0666] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1558 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [152.4083 162.3253 197.3193 173.2293] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1559 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.0214 162.3253 241.5929 173.2293] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1543 0 obj << /D [1541 0 R /XYZ 133.7684 692.1046 null] >> endobj 1544 0 obj << /D [1541 0 R /XYZ 133.7684 667.6624 null] >> endobj 1188 0 obj << /D [1541 0 R /XYZ 133.7684 547.7123 null] >> endobj 1546 0 obj << /D [1541 0 R /XYZ 133.7684 543.2291 null] >> endobj 1551 0 obj << /D [1541 0 R /XYZ 133.7684 383.8661 null] >> endobj 1538 0 obj << /D [1541 0 R /XYZ 133.7684 207.5367 null] >> endobj 1557 0 obj << /D [1541 0 R /XYZ 133.7684 203.0535 null] >> endobj 222 0 obj << /D [1541 0 R /XYZ 133.7684 119.2528 null] >> endobj 1540 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F14 944 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1565 0 obj << /Length 2728 /Filter /FlateDecode >> stream xÚÝZmÛ¸þ¾¿Â¸… Ä,ß_í½ärÍ=´‰Ó~ÈåƒbËá´Òždo²ýõФD½Ù{Í ŠÖ5ÎÙg8"+ dECJj¾’†"‚¹\ín¯ðê^þpE<Ѧ£ÚÄdßm¯þð’‹•AFR¹ÚbnICèj»—PŽèzC0ÆÉóç?cLÍõõwy¹]š¤Šl½¡ÞiÓ¸æëìÕk¢“¬ÜÁ["¹b ë÷Û¯¾ßvrEÓ¤°$Vª_¯Þ½Ç«=(ñãFÌh±úcèêöŠqD =ÅÕ›«¿w,£·íйÕàJ!®Œ˜Y ¡VVC²áj…(,¬A̯Ç_³Û é†R¼<•»c^•îéEµ;Ýfå1m»Î{NN ò!E¹j_"*ì{û3¿±4æ\_R…Q¤µ¤‘*ˆxeî×”'U¾‹¶úÏÍ.Ï·k)`³×*)²ëëtýóª8Ý–Žüg,°UslQÒÀ6)âÚÿÑšLqʶkÅ“‡»Ì Q,’•Kd%~ÄÑ|É3G:P‹Äì‹#ÝUestÒ¼9ÖyyãÚ¿Ÿ™CPÄ©QÝ@«ÇOéíòL`ÖŒ†*Xs‚Œn‹ f™²' Źg_gwYzüg¾?~œcÍ5’ y¨5½Ð^P‚QÜ,Þ–¹ú'?޶L€bÇÚîÙ7ßÀ2ÇÝ ¥€0'¸DDt;û¨•Øg»ü6-š3B¤;ŠçäBF)ùX±šü_ë ø¡ñ äŠ ¢5[IŠÁÜÈ£\ER3ïx6ÇMÌrzÁ‚Ššö3·f>£é†aŽ„TfhsÞZO½ç™[H Æ….äÐ'`p=2œ³Þ l€È¬àÝ}^Oiñ~Ù¡aphà`.…¡ˆ¬]"JçÂÐiÛ°“§û½‹.©û)³5É'÷° ®ÚÇÊÓùçlMDò9oŽî4YŠ6jt 0,ìgmu°¯êOó:Ò¦£ßĦÚLùZmþòâíX†5¢œŽ-bGuaÚ)7;-šìÕHiEV"§äòg&eÈž¢¦”Ÿ GœøîÄ)½Ž<]Gfeû›?i nøhÑIš‰°Š"A0[Åì'+D%ÂØh'xb‹ p @82œ™Eµí¬6 Í„á1=³¥Ö¼ã“‰AuÞ(€#Íã X¥xžÿlT„.‚SY”ÀëÛÐ #F®¯?ׂVt‹évÄÇÚîž0ÖÔÒTÈ>À÷pšUÄï E '"=‘ @²ˆÛâîÓ£w>–ØVuð=hÎ}ðïÀ‡eûi,,&{2míÖS¢àô0ødd‘=±×)ŒX62ëÅ0]°2!‘À|€Ø`Ëû ¹±K´ókÁߢF~¡½Ž•X°ÃX‰Î˪>µõ=™–_‘ùÁòi)ÄoÐ)ŒX4?®!PJ¹d~#M€·óɼ«×L%. X ‘ØT`ÑÚbþ_(sgm™¬-–ùPYx)e‹·¤JšŽ@×½…^6Û?ƒEÀþòƽr¿Ê[$t|jµm›­µÂ»Ô=:Žh »d’—¥¹);‚Rè:ß¹>oÙöãááµYc"iNwwÅš$yÖ¸ŽVÛ¸·Ì³ÝÑògŒC[ÞX¡ì;+”íëˆëª– &$K^yîyãèò›²ªáµ‡À1µI²Ÿ5 Ë^N·¢½:>– ÅÃøtFðÆÿà°Y#T,Ѩ4v]9‚Ô 2åÅñ|*Ô1‘sþä ùKugïÒÂ=Ù[™¬ð©Psõá¡OlB8‚ÍBˆèQŒ½Ø¾ýéÕ¶ éß¼1>Ù‚ü c¦–Œè˜û‚Ü\pÁ‡W"‹Ö1}*ð1tÁcA#+T,¹ëò4xäC;„×ÎÖàE®) ³5Dè‹n ×…ènÍ:¼'u£7sþ>ò¢}P˜·Ü'[¼¯ÈrÝÍÜoIÂ]Þ¢å2{G@ »©9Ó H9ÔìDµÛù%³ŽgüB-:³žh±`Ö±½Y3­b³¶±YÛç®m;X¶m[ m-Ðnéj@zÙ„¢4yuð#ªãœ5·“´^½Å4ÚOǘGÔcxGW èY’•vJ!¤›z@C=ûgi±EþsȪl²ú˜ù’@Z¶ •lãи޴µ÷îmúî: ]y¹w—q-³Â2, ­i1#z‹´š9uø †ßçíBP[–h" *ìúšcùÊÜÕ ìû6’'VõÑ=ŒnlWí3÷®NAÓÚµ[ïëlWÝ.8&Pp¿ŒêžÎè¿w4ò!œa}áN— 4ÁvÁ^gùí]‘ÙBYæ!Í¡®n'W³” ŠM4øÂÕl ßÄf®f'|­P}åëûÏÇ™{Zª•­ØŒ¥ßBªK2L¸ÍßÓöëGAf?饪`L|¦*Șh"ãgWòª‚TŸ¯ Ú3ÿÂK m+‚.À-VU1[Í5îËdéþe‘® Nn–ëà» —aÌ`Ä\ ‘¤µ2ç«D›qÑMCNº¿¾¾w©b;ŠÄ‘N£ä]Íä3|á¸jÍe¶>mñB&úoŠ0ã\P!ØåPØû¥ugÍòÂöJÜÏ«+R‚ñ‘º17…T¿Œ‹ê†Ô´\äc-'ªG LV"Ì™|Ú¢£²®…s¦ˆìœƒÃIåk> vHµ ¥)ßû‹5÷~ÏBJà€íÈËQþ–—w§£çS×éƒ=ƒ¨ Gp¦(wýM6½Ó,˜p;VÒÐ ž´£ßÄf´Ÿðm/,×'sµ¶¶À`èPŒIÆS]š\Á[ÀÃÉwý÷(ûÁÇ.Ì´i‡mœjä-avLó¢q«¹á„Õ=^ÔW!`MS6ÍÃD©T€4ù¥(ÕÑoâ3êMø>*Jqðl"Í8Jª 2L¹uQʺ0„m1-Z¨¾jrfõý½¡=ýv}²‡"õ7Y™Õé Ïá* we×݃إ)²æzñÈSûQ¾T¦Ž¨æM^êŽWë‘(~承4„ž4]šTƒsƒ9}$öG }\Vš´-.i‘S;]Öûì¼½âæõšÇÓŽTß}þ¼¨¼Mÿ„~ä×T1qÀMU ëúz a08û ßÉõ É£(oëÐ|àEV·YÊ¢ìêÌ‘ÔêÜ=7…Šhç%ƒ(F(wuÖÀAuÇz@ø´~˜z† 5¦gtúM<`ÎÇŒùž!”! *Ę| à©.M.5$Zö+‡xrp­YÙ€Û²Å.hò¼?–—~Åú˜Ÿò¶Ì­f—iíÚ•ÿ*Îg&“!ô¥ÿÝJ x*sÁh„pº@ï,ïwy¹+Nûl±Â¦M ᬹö^dŠ~£O¾]4Wm“ÜÌÔRù/þÔ36|Lì·mÑ7­eS©ÃT*+ûàÂRûEëɇ•™¿c”î‡bB\‹ÈkB¯…:Ø- ñ,|_x}ð¬ªÏǦ÷þCÔ™û7G$åVendstream endobj 1564 0 obj << /Type /Page /Contents 1565 0 R /Resources 1563 0 R /MediaBox [0 0 612 792] /Parent 1560 0 R /Annots [ 1568 0 R 1570 0 R 1572 0 R 1573 0 R 1574 0 R ] >> endobj 1568 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.6674 583.7153 309.2389 594.6192] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1570 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 355.6907 288.6357 366.5946] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) >> >> endobj 1572 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.6486 283.9534 173.5289 292.8] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1573 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.3057 264.2717 250.7282 275.1757] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) >> >> endobj 1574 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [242.9336 149.5651 266.8139 160.4691] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1566 0 obj << /D [1564 0 R /XYZ 133.7684 692.1046 null] >> endobj 1505 0 obj << /D [1564 0 R /XYZ 133.7684 650.3448 null] >> endobj 1567 0 obj << /D [1564 0 R /XYZ 133.7684 650.3448 null] >> endobj 1569 0 obj << /D [1564 0 R /XYZ 133.7684 568.5478 null] >> endobj 1506 0 obj << /D [1564 0 R /XYZ 133.7684 356.687 null] >> endobj 1571 0 obj << /D [1564 0 R /XYZ 133.7684 352.2038 null] >> endobj 1278 0 obj << /D [1564 0 R /XYZ 133.7684 203.1849 null] >> endobj 226 0 obj << /D [1564 0 R /XYZ 133.7684 196.5847 null] >> endobj 1563 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1579 0 obj << /Length 2119 /Filter /FlateDecode >> stream xÚÕZ[oã6~ϯúPØ@Íò~ š}˜É¦;ºØvÒ݇¶X(¶’ë[eyÒì¯ßC‘R(É"•¦-°`"[ŸÏùxtÎÇCR$Ãðd„1¤¤æ™4Ìe¶Ü^àìn~}A?­Ëê”o ê ž}šS<Û¯W} Èȶ {§|ðï:-Åa`×’[”bR†¸„†"ƒ5ôOx¨”ðœyêÆc6ð O“Sf¦F Å'"0´k,A‚†C”˜êÄÐTÊ1LÜ0ÞºÀ7n?¾Ëµÿ^¼8ôáDwâÔ³\w|Ücµ.z½±j<&‘Ì@*@Þ¾E"C‰laÅQ<<dËÓ²‚z¬ü™†¶‘(“(ÿ)ÿ–,ÿ¸ß¶üS~]ùwܾ®[ëò˜Ð®Å íZJe‘¯®ó*°à¶Ã€ÒF£E¥|C?¡ï?¨†»ý~Ó4 ùêf“?\ÝÏ ˆÓæx¦™9V«ËËOv’-šÔ"¸Äf¾>¾:S@IÐ|ã24D%¬gHcç/cv´|þ˺žÿŸWÀÓwRTÛ•ž6ÝN*1˜'©–‘!0"'ŒAs‚BŠcÝê¨Û¬h«Å@×Ì+oÒ‘ÀFLGX§s¦f!aoulš*ÿ­ Úoëx€Ó.Í Y7 ÙcÑ|q8UÞNYÚ‡’?Ï…ˆt%ŒC(ד–¾!8²ôe0Q(&·ö­iì+ÈŽšö«×¿Öf\¼iýË0¬Å„!)Ym`iY Æv1b}Õ$9¯½!·X×C Pq1Ž‹•ro ìéùOOýXb1aêo$éX…=®Nv¡7¶ ‹ o­]ZƒVkÖ•.ï®®®¤K «µ¤’9;bL<,w gIžâ÷Q\ÓSÜ/-òu\Ë#TùU\Ž©HÈ·ˆñ‹…ˆ{P(ÄíÊ5låìȸrRI‘Ä#û´/ÊÂ"ÊÓÂ’ÊóûZåI‘s°·IÊM«< ÷F#b7»±I(D+ùJåaœ7RÓM«<öºQª³šQ9+÷s¸ûtþ:] ”ÚÝlB#êv?$“]½/Uew›šb¤j–ZÁæÙE!Ø–&qI Ì¿çÙ.®Ž2}‰2Ÿe¥‘ÂBÿœO‹„A¾ÙV“bL¥&FBÑ tµâò7È6S¦ ±`SBlôµúÏàÜ5ä#Û,K”²Ê.ºµRïÚNšÕ)çüÿp¶„Á*s¾½›<_6b3f³ÌŸÊuuv¾›)­k®Rç»!,2S¶°äLóûÚ™2EÎÁ:Ü&Í”ñØ´3e½QˆsC{±™²=Ç^Û£‡¹º«3¢I 72˜½i…Úˆ$i 묰§ˆp#{ÄÆ Á§X ì¶)мi0Øœ¶çÈœDC´hQ ÿ”cJºþŸÖÕãp/L"̵™Ÿb0°;r Cí:J“xƒJ¹•Pz6M:n]fº„†º Nm0¦mdBX÷pœ+Ùhõ}9çb¶ßÚiQõŽ»˜¶x¨}•ÄÞu‰wpŽÅ®Þõ° »gpïVøŸ¸óIIÖžOb[ïn?ñ°‡:+ü+‡ñuP®&y®ÂbêÚÀÒêñûjuí“ë(U«®n˜áÔ=°¨0&¿•ˆŸÝŽ&6¯zEü¨—Ønø›Ô1°SÇf‰­Š‰‹\ žäæüÞ[Óê¾ùͧ0M¡ f4|Š ˜îl06¬ìP¾.vE™WÍ–èÞo‰Ö²{òÛ¢×ÅÒ]H÷‡b♈¼$ô²9tº·Kºþ[PîÓ?ê¹ÞÿúüP ^ißË:°ÿÄ;«Ìendstream endobj 1578 0 obj << /Type /Page /Contents 1579 0 R /Resources 1577 0 R /MediaBox [0 0 612 792] /Parent 1560 0 R /Annots [ 1582 0 R 1583 0 R 1584 0 R 1586 0 R 1587 0 R 1588 0 R 1590 0 R 1591 0 R 1593 0 R 1594 0 R 1595 0 R 1597 0 R ] >> endobj 1562 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1BinTable.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1598 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 733.94000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1599 0 R >>/Font << /R8 1600 0 R >> >> /Length 1601 0 R /Filter /FlateDecode >> stream xœ“QO1 Çßó)ò8öà%Žc'<ÂÐöZ8>CЏIHÛÇŸÓ^šœŽÂ@Uuçmç÷¯­uà­+Ÿéy;šo—b?ô{o¶Æïìô¸íÙ IÉ2Bv™í°6ûboC ”l`àÌÙ£ùr~¾Þ¼<Ÿžžm~7¿žîN†Gs1˜•‰„Äö–oÌÖÖ&‡ !j0Ê( QߟïÞQʪÔÌ¥Rò 1G`Q*†B5š+»ú˜1I ˜Å*/„gÆæ®Žú@m 9unªÒ<O(u–J«RgèQÁ VÅú„³ ³¥Èà2Íœ]ü}ùùýú}kä³/µª4kQ3A§ÝŒ,•VU†æ=`,\”ëÖBdÖŸtü’ÃÌÚùbÌz6w¾ªÒ|I(v.–J«R_^(…ÚûBeл°€ÁèÜaµkµµ6Üý)¯—L9SØÖfw^/• ]p&ëSÀrƒ”ÛCà^™wY=rnÝØ2ç²¢o¡Öœ)lkp@mVQCN(j§Ì»E­XC½ þMÔš3…ûÉÆµ-MEe—t•¹C픾d‡º2ÿÁë!gendstream endobj 1598 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161253) /ModDate (D:20111206161253) >> endobj 1599 0 obj << /Type /ExtGState /OPM 1 >> endobj 1600 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1601 0 obj 450 endobj 1582 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 460.7659 253.4787 471.6698] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a60e89ab762910b76155da983554d433d) >> >> endobj 1583 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.6966 460.7659 301.05 471.6698] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 1584 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.0138 422.2348 331.4274 432.1401] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1586 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 408.9602 224.4575 419.8641] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1587 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.4276 408.9602 255.999 419.8641] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a04506e39335dd06136d276091f097cde) >> >> endobj 1588 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 381.0648 242.9382 391.9687] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a90cba1f7ee83d3c9f4471e0a2f317391) >> >> endobj 1590 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 299.306 195.9548 310.2099] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a8d97ec9581e1c46111ce933c608b489a) >> >> endobj 1591 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 259.4554 195.9548 270.3594] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a7f144dbfdaa1a01331adf1bb83a9347a) >> >> endobj 1593 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 195.6945 195.9548 206.5985] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a7a3775a258e59292fad79c41a08d0683) >> >> endobj 1594 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.1534 181.0738 225.2004 190.979] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1595 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.0526 181.0738 266.4662 190.979] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1597 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 157.2138 203.6957 167.7442] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a1bb44b892d5ed7c6d7271c4fb4c637c0) >> >> endobj 1580 0 obj << /D [1578 0 R /XYZ 133.7684 692.1046 null] >> endobj 1581 0 obj << /D [1578 0 R /XYZ 133.7684 479.7696 null] >> endobj 1585 0 obj << /D [1578 0 R /XYZ 133.7684 426.2199 null] >> endobj 1589 0 obj << /D [1578 0 R /XYZ 133.7684 318.3097 null] >> endobj 1592 0 obj << /D [1578 0 R /XYZ 133.7684 212.9542 null] >> endobj 1596 0 obj << /D [1578 0 R /XYZ 133.7684 174.0999 null] >> endobj 1577 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F14 944 0 R /F11 844 0 R /F75 1521 0 R >> /XObject << /Im2 1562 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1608 0 obj << /Length 3314 /Filter /FlateDecode >> stream xÚÝÙnãFòÝ_!ÌC Q§ïÃØ °Éd‚äa‘M¼OIh‰¶¹‘H‡¢Ç™ýú­êƒâ):‰ŒÈf±ººîƒf+ ÿØŠ AŒ¶r¥'ŒJ½Ú¯èê~}Å"ж…ÚvÁ¾¸¹úìT+Gœæzus×ŦˆvŒ¯nö?®¹$|³e”Òõ—_þD)oN××_åÍÆñuv{È7[®àÙ!;Âå÷ù]^o˜]çåž2-XK³ùùæÛ«¯nZº:Û1b¨fHÕ¯W?þLW{8Ä·W”gÕên(aÎñÕñJHx‰1–VW?\ý«EÙyê_âF ³…“9ªÏWˆ?ÓœÓ6´-ã”YY`œ}Æ)C¸P¢ea‘uoó&+ù8Ä-ÜvuñØU9Ï¥ˆvI¢g(O瓜X«ƒ@“¤œI=Öù)/›¢¼+ جþ0$ŠÏwîŒÈS…êûó}‡¾~Û}aLà/x³±4hÖ ­ˆeFÈ0§…ZÚ\[b hIoó¯~kòò‚9‘ÍV*¾þ²*Ate䨮:<ÓÍsÑ<„«Ó.;du¸®âïû Së|×À=œ…¦eÅLjS*ìWW®ÖÏÁr@u‘ÃγJAT›þwô£óÂ%I`H’7î0C UÌ (êg‚ZÚßBµýý¢ŠÖ9üÏŠãã!?W€á‚ŠõÝS¹C£‰·¨¼`G·hV‚òuQ†õæaD·†(®_ÌÁ~ác¼5XhG$“ì2ûZ¨¥Í 'R0Õß<»=5u¶k/vhí¨ÊÚ®o€/~ÑóuÔ’ KÀ Ô™ž%VK±Î‡¤¨BJÏa¿zðÎoª»ðtÂDQ…åÓc¾+²Cñ_/'x^WOàqòˆú.HMôÇ»U„bjIZ ~Û}a‚a#¼Kú.¹& 9 d °jaɱ{û?äÙfàgU&¹8M¨¯Ô“ ˆöÉ›AIÊ®Ep!×YÝ»§à‹XBÇÁ È]8 Å8ˆ– Â >=Áo»/L¸ÕÞ% ˜ƒö)E‚ZØ_0ˆÁÒÈþþ»ô€E¹;<íóÀ°æ¡:åa}ŸgA•ñ&ºv¸zjŸÕE¢äa‘Æõó\ìýàÅSŒ@`ŠÎh.o‹:GË tœš B¯7³°4”„Y8„’ :LÛ%)%øm÷… )ð.I‰+pJf@Ç0ô˜¥½5ä{Ö©þÞÕí€5IFñw_œZÏ“ï¯Qç™Wf­HVGùíêõ¿=Š]ÙŽëÉ-¡œ \ØÌ0èIE¤–n¥„!V³Åð›à·Ý&Âß/îÿî››®¯³ý~^Ô@ئf@ÏP jŠ1¶„ÝN¯ _c¤Å%öé85—ªx)oZø%ªFxϼAïGt€Q‚A»ž$¨¥ÝGØO€ȇÀLõEEÙäu Šõ!ÜßÆßªÌãÅ]øðÃ’9HCµy)[ø…#Œñ&Ž(X÷¸uj¡–ö•P÷PÙß³àSâI0>Á($/J÷¯(‹Æç Y rŒ®ß¡û´¼k×0>-?8Q¸C^ão×™ÅÊ´ˆ¿>}Á‹}~· ²§C3Ÿt+ nʽ°Pì_¨¥óU¨=WŠm‘ ÁÜy`(?ikÆÞòÛj÷Ôfi³´ã>jº/¡IÃc‰¹t.i5±œñ¥sAê I‹éœ«­í aõvcÖ‡|´'´<º ¥¥×Ú/²“·ÏÞ19(!¬r@n°P*xŽ3y£û®€‡yü4@ôÀˆP Ê ñTd>)€ëO&P+88„¼ðÞÃþéŸÙ1’ÿ÷¸íP»…h©½0}­›àyß¼ñÞeb´fÀ6š:‚†X¢D¸­ªÃÌE”Æýè»C†€'„ôsŠfáÀž[ße‡$‡fÌl­q/¥/q˃f}ý¾-”A¾¬³{8wÂû· ¼Ëln×ä;ò öùžO&µHÚö¿„ä4Ï7Ș!„e$Y³˜Á_:®VÄ(($úÇí¢…`-©[:®Pà|•wªÞŒâ%Ú/ – žLBá4 15¼Çö ZŸ‚Ë_6©v’HšÞ`S&‹ ‚fç° ,äKfóãc]5Àú|ÿó¼Ç”à1µZè»u .´U$h¼¶µ¶àJ|pöòJ­ÉT±ÐF‚Pêe#’!I¿*V’‚Ö`Ì]HKü¶ûÂù#¼‹µä ^; d˜|%¨…ý9çD0Ýß>$ò±7kߺ:ℸ2ä3¯Hq -O\ã—ƒáéc³Äß,&JJ¨ÜÍKÞÂ/xŒ÷bIƒõ§ºÌíjIÚIY¦$:6¯}¦älèÝ _|aåL(¬àAâ\eå>\T¾¡Â]hÖÑÈáÍòéx›×á!–×E®C2æl‡ýJ¬ÿŸfu}ˆÕ»H“wzçúºÛMí5´}/*5l… 9$.þ‚!¯uàø¤(÷ÅÊÇSx~(váÉ>k²°è+M\jª°pïѲlåDl±ÁZØ7ÀyÔ„@JUúÊ:*¬wçÒ÷qõVÁ/xNY·þ>ù\÷jÏ:þ¥H+éM”Ò{q< ¨«OUXÇú¸ w¬ê¼Otˆ_1ó`*» "1:ô™à7Wmx•%/g¸x¬Šôž©Ñý^fý»•^ áiÈÑ7œb3¸õTÇq‡7 sXÜEüÙî×§âT¤¼xÈõTôK7añXíóC¿Žˆ'Á‡Y™Ýû~ô¸Xà–kØJP‰½™Œ‚àPŠaÓ‹‹Y7à0›^œ#æçN®Ãó}·á¨«`Ÿ ÆY¶>›øbpð]ôsˆØSí<îôÃi…žqRΞ7%Nð‰bcÏÀ qŒ±Ý7FûÂÉÇ.&‘N»—5Ñ 8×þ±·:5TR­Y Â{tuL—é>ªNr!°ÏT§Öb½ð, (Hjâh¬!GBvƒŠ[u±ýI Ê1…ýâ ×çPÚ÷(ü®òm’XWá·­ìBV„]ÚXÔge2ÓÐ[‰wi"Ô)ø÷~¶:Ž’@Nõ^ïü¨ œ0‰ó|ùÿªuì5µŽ;È•aÓ­SðÔ@™'‰’–÷ÊÝ9Íëb|-ÍQ9­y=:c®|ú0u ’RÙyc¡™à·Ý&’ØÞÅ$Z()°OÉÈ+G¨¥ýýÖÚþþ¡ÉÞ7ÁÛÈ›ÅÌYÑëÉò£³¢WõÝ~üE›³"Ðc)–B€õF˜u·3kPä¯fPC‚g ªK0¶Ù²û¾í1Ý8eԦ燾·éa/©J^¼—±Îjá«1à#ÒÂÔ«yù™ÒóZ(¡„–bN ñ»ŠÞ\;b% ñ9E‚bQ4«Ä’س‰ÑÀ.±Ø°Jõf˜ÇpãB=àÖ‡Â÷á*Ô®[ð=ãeUïOŸ¿å16V0.xCãRM' î¼yˆkƒäc¢8z.˜¨0Þ3&RA‰OÂÀ.¦ˆ"¡Äýæ.€”U™÷ÞÝŠ3%æbaÅDkBÛ©²§I”H#\ð@†¦ÙGâw ³¶øjªðÙ"‡j+£—Ÿ)½1o‹X?‰«ME¸† xQ&Ã}‡”†é¬)vðþIZϦ8¤uÆ»´N˜"wƒö8•ØþñÍNÿ’×q|P5á•f ™T•§¾‚õ„%„¬½¡ :èüMXfó5©Šovi"SØ yÏ«qùcÊ{(±"Ìòj8K•\ü1ëŽO:s?þGæ~BŹŸ4ôòÜò#ôÒàZg.þ(1¶o¤±PÑþàzrð1Ôr7œüÕNm#p<ÖŽ3æ‡$ާÙOí[]¨Öϧ)Œø¤ºGxøpÌ2Â(7ÃÇ.„mwúâ”Íš–þKS6a(¿8eëà™™² #ÛcaˆŽ3UH’§EJ†î6ýøÆkö¥ã5~q¼&¤š’3æÂÊéß3^ r6—§©¼æ]œ¦žÁ>ŸÃc¦©ÎöäüîØÌS¥%-¾¿â Ub<2„fMÅï7æKBÆÑ)eòRV”‰ Rî#š³Òï*PÌÿ.ý·xjú é  ö–´6-ÉÓ¤. •rðmÔŹùkÍ™ÀO?ÅÂØ¼uaÉpP¬xH/Ÿë¢™›ÏQbñ $é¦?yZìø¼ôOº‡¢ŒNY÷¯ª4qFØÞ©]x¨¯ó2¯ãתˆÿ›ª§X~½ÍwáB‡Ø…+¦¯¿VñÎÏãRq—r­ØÚ‹ÅÝÛê·÷y9;Hž`ÙÿÆ€:endstream endobj 1607 0 obj << /Type /Page /Contents 1608 0 R /Resources 1606 0 R /MediaBox [0 0 612 792] /Parent 1560 0 R /Annots [ 1610 0 R 1611 0 R 1612 0 R 1613 0 R 1614 0 R 1615 0 R 1616 0 R 1617 0 R 1618 0 R 1620 0 R 1621 0 R 1623 0 R ] >> endobj 1610 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [242.9336 629.7331 266.8139 640.6371] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1611 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 600.1536 171.0482 611.0575] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1612 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.5301 600.1536 370.4104 611.0575] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1613 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [389.1036 588.1984 427.3797 599.1024] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1614 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.6433 576.2433 315.9194 587.1472] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1615 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.1901 546.6637 260.4662 557.5677] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1616 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [144.4687 534.7086 208.757 545.6125] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) >> >> endobj 1617 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.071 534.7086 284.2311 545.6125] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) >> >> endobj 1618 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [418.7805 534.7086 441.256 545.6125] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1620 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.004 402.5674 220.2801 413.4713] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1621 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [454.5955 402.5674 478.4757 413.4713] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1623 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.2884 289.9653 268.5644 303.913] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1609 0 obj << /D [1607 0 R /XYZ 133.7684 692.1046 null] >> endobj 230 0 obj << /D [1607 0 R /XYZ 133.7684 667.198 null] >> endobj 234 0 obj << /D [1607 0 R /XYZ 133.7684 509.8966 null] >> endobj 1604 0 obj << /D [1607 0 R /XYZ 133.7684 486.8213 null] >> endobj 1619 0 obj << /D [1607 0 R /XYZ 133.7684 486.8213 null] >> endobj 1622 0 obj << /D [1607 0 R /XYZ 133.7684 327.6241 null] >> endobj 1605 0 obj << /D [1607 0 R /XYZ 133.7684 211.2885 null] >> endobj 1624 0 obj << /D [1607 0 R /XYZ 133.7684 206.8054 null] >> endobj 1606 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F14 944 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1627 0 obj << /Length 3080 /Filter /FlateDecode >> stream xÚå[[ã¶~Ÿ_aô¡˜åÔ}hv³éÈ6Ý´’…´Râôð´Tgà†‘ †'à¦(ë¼jÞï Tk#ˆwS k— TâZò*k Z®˜’ŒŠ&›¢þu4Ã$E˜2¶\ ª1=±@¿ŠLÌõˆ¯‘íÍÛ›# XŠ–C † TçúåQ"úÝ{´õƒ`AÿÇâ»ÎÖë}µ)ÊûíÓRŠÄŽ›ˆÆ-k2wÕ<ü³ýûÏ3‹^¸Z[¤´Ø"X#Îe;CNœMÞäÕ®(ó¡Éí“ûo\‡Â³z³kÜmfÍäýq——þÉÏXà›7yÿ½»ýuIp’/‰HžÍ%(S 1Šhž|È_g˜‹½»Ýì×–g¶²Òâ¾”BÎRßYÂŒS~h:kî ×1¨ Í6ÕHiE°àáTMÍ*CÆüÂòÀ”rK€¨04毷5Q¤…+‘JD¤ íä µÐ0ù kŒ=]KfùaI9Œa¶3þ$$©GÂ*ŠÁl³CP"ŒS âDvQ¦ÁZ'¥œ¥³j›^QÊüÀôôÒØb¨Ù˜ã£ŽAuªSØ·À(lŽïÀÎÌ#/âx1ä ¥œA^,gi„´P}l´Ø9yÔâŒGèWqƒ‰yÄ×HbC]ˆ0rRÓ$#³ì©Îõ¯0ÂBë~ÿûÛæë¦¿oýØŸ¯ÉËùut±Ù|áëHp„#3ëæ…Rˆø½’À’2óR-¹HöõüRrLéE—RÄóÔRŠ-»Û`íSÿUpÓ½½öðzð¸Š<(ãȽûÓ?Þ~ Æ_›GÚÅ”ý‚FÁ‚Àútr-Ø ¤Ñ\%Îæ,¶„"?ÁRº]Ø9ÛÎNÇ\õýàÓ=êð3•èP8Tb…±YUeO}¶ñ\{_œy÷¾ž6}mÞ"ß yT^LùnÿÀog ËTšlD-0œàPE#TšpzŽ«º¨Œxž‚^,éèÞvYó?ßÅÔáàÃa¢æ°G1áªÀIÌd„½Ëâø:®ÃÞ@ÐèÅ‚šÝs0qO¶µû§‹“Æ€<‚.Cú¬N´A{PžÀÜ¥´~Ùã0§R²Ù]®Ái_p˜SÊÓÔNåG“šÁImbØ9ÐÅ|/…º‘¬Ó°ëÉ: »&ÿ–Wu…ÇžáT›HØ ©îxŸÉcúUÜ`"=â;“ÜgL#ž’¡ƒðª¥:×툛év~-]n2¿”Å4XTr}¦fÄ%GRä]ÍH’dSìòÒÀ¨v÷ÖˆÁ¿3O6Z~:ä&)$¹øÎÅó’&Y¹‰©]nwÇ:\eÍúÁ·¾]R0ŽþEóPø}úz.÷>NÎK€ózbsî0`AõÉœn;XñTN7ð§ÃP…j#b¾Þø}î×ÕÉ›c¹öy0¸{ÜÍ”Y‰3I'ë0Òø¸ÏÔ„0$™âg4a&ˬt¬ "^™&Y½/Ì$2=,¥J‘d·K•lóëël›WÁÓbc–Œ’Ãz­¡¸NAXÓßßlAv{Ìo–Š ¹&ŠE’ÌSO\ Wôãü•#í)E‰I¾pOj=7'͇¦*Ê{wýû‰>X`)XÛ°ƒñLO+0*°Îu¿ÚµÝC'cîà ŃXU~ȳæïŦy˜âÌÁ¥`ÖÔÄ:дÓ®gt`w ·Ög²äôý螉D ì†'wÌͤýîw!øò‡øJ‰Ð`Jt’PÂl;=“y䫈~êØÁ€ëœ?¡åtÐûÐ D§ûñšt†Ú")Ã`qÙ‰j¡/’²gIì)©ôL‘´%ûÄ"iÌþ\‘”=£HÊÏÖHõ'×Hõÿ_”a°óàüÏeÙaö äðl$Ñ´ÛÚç­˜á¥Â­‘ÓáVOÈ›7ï"v#ŠðÛäú” ‰%°_ùf6"¹œ¾_\’]2ÉN5ƒM“ê3Ivš‚q“àŠžN²“óIö¸ÃK%ÙGJL±§D Ä^ùôR𻜖_ü˜@ZŠO9iZÌÃÏD'¦Ž;“ÑÄHàMG\ˆPMd*qAÀRˆÄóh‹ø¦ÌÚ†2Ï -–Ù%*¥´Î–TI‚xÔ¼Ú˜@^u±»tçÛ€Ü! áµ?GÌ» ìu€µ¹6>¶ù7>6k¿¯Ù€ï (MÞÞùûf ʶkЭ;AƒÒægŒyǃz÷ÝÑí{ô,ÉKÓ¥Òu Ojp„:ö_'‹ÍòŸpVÜö qeà%™'Ý ãýlÃ73ðÆ\úÇUåÆ%á¬'f„eØ|â`ÝEÖ7)ÆÉš¬À5ƒæ ;Ô”#êÈG5.”KJ¡eá¾ì2ïm($‹¸¯w3È Ùz¿ÉÝ»*M+wÝ> endobj 1629 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.1427 654.0823 282.7142 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1630 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [359.7601 654.0823 419.8738 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) >> >> endobj 1631 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.027 642.1271 240.5025 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1633 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.2884 565.3906 268.5644 579.3383] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 1634 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [315.9165 491.6671 339.488 505.6147] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1636 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.6674 347.0079 309.2389 357.9118] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1638 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 118.9833 288.6357 129.8873] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) >> >> endobj 1628 0 obj << /D [1626 0 R /XYZ 133.7684 692.1046 null] >> endobj 1632 0 obj << /D [1626 0 R /XYZ 133.7684 603.0493 null] >> endobj 238 0 obj << /D [1626 0 R /XYZ 133.7684 438.0528 null] >> endobj 1602 0 obj << /D [1626 0 R /XYZ 133.7684 413.6374 null] >> endobj 1635 0 obj << /D [1626 0 R /XYZ 133.7684 413.6374 null] >> endobj 1637 0 obj << /D [1626 0 R /XYZ 133.7684 331.8405 null] >> endobj 1603 0 obj << /D [1626 0 R /XYZ 133.7684 119.9796 null] >> endobj 1625 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1641 0 obj << /Length 2328 /Filter /FlateDecode >> stream xÚ½Zmã¶þ¾¿Â@Âb†ï/‹6@swI“×önÛ~¸Ü­VÞUãµ6²|»÷ï;I™²dÒEÍ!ЋGóÌ gÈ% ÿÈ‚0†”Ô|! Es¹(¯ðâ~üñŠx¡õ µŽÅ¾¿¹úö.IåâfkHB7wŸ–”#¶ZŒñòÍ›_0¦ÝþúúM³=<îVk*àí¶ØïÝí‡jSµ+¢—Õ®¬à#©5]r³ú|óóÕ»›Á¢ˆ …%±öüvõé3^Üù?_aÄŒ‹gxÀˆCWŒÃG„ðf{õñêƒÊè×þÓ¹8 2kðÉ`颅¨°‚ö23©P!j¡!d’C&¢L°2Š¢>l_V”/›úbÄXÄïëÝÍJŠeq»RËmu}ÝVÅÝÛ¢+œà/XàÕšKµ¼mš­á·?(ƒ+M˜¸Gµ_ÿ°-V/ï†?»„Ž™„™$þ›M±ÝW3ª©AZ+㥾ñzbÏ%, —Ínß9È}ww}ý¥*»¦uA¸àÂX^ù¯þ4£`£^àc×Ö»û5kª b x¼&!H/ÿݬB¥E@ü㌧ 1Aâ¯ÕŠˆåWËfªgÃC+ñ`aÚ[)Œ?q7Ö¦âØäÜei)„û.§Çòþ'3Ñ aÎäQÌ(#BJ´úô¥n»C±ý|~ôb†ê\î‰Äú‰QŸË=”©íKOi—YÊ>áø4SìüÛ_-ÙcoöOUYÛ Vy‘Úg©î¡ /ž×Ó¶ÅW;‘u ^…$ån¬ª‰Ï#ɹYH,àš9ŸíOí½—ù{ä×ñ3ÞOôZnVl¼ÝNÍ€‰/|:6ã4ôA*®Â0wÇàå1«ß5åá±ÚuEW7>š ¼»9´YÿpWuE½Ý»h®9a}wAå½ÚŸŸ¶•U¶Ÿ8¥˜˜…Ð ÊL.¶A~0ãÞD¯µã˜…ß½t}ûÏSk(‡ÌÁ&Öœ„xÊØ0Õfmðq"D€ ã@ݾ¦¢ß=Ô~Œ¢áz¶“¢ð÷Õ®j‹.̆MÛ<žÌ‡M³Ý6+*–Ï6ûô¯lh¶Õþú씜ú-HfÊÇbó¤§Xꣶ>)Q*¦ÓŽÁºÁT7Heq5’JŒaûµØO7ôpÞqFlNÏÕY±XÊñ –w<‰{t<ƒëaGŽ—//ç]vbÍôEES,ª&XW”0ãlÏBBJ~A¥ r¨4á*M(šª¶/4Ï™lµ3©xf´b±ÄÊÄ”tD¹ôø—Û}×¥_Hn‹}5™‡WŒ² •°¸ayÔ•Îqƒü:þ`&¿Lôö9Î…îÔ`UÆœØpšÙ‚TY¨N›Ûÿ@Qä‚“êbM(Pƒ’QºûC½+·‡»j®h„øM/-£œ×nŸhâ iŠÕ¸¹ì3PB¹?*~ÚÁWYôö«ï|NXÚ×îSXÂ(ÒŸx0&L%FB‰w3£D#¡”N˜> Â7'…Ò©¥ÿZA´ì ×sFC   QÿG£Ñù‰L¡–à„_”{báDÇÆ¡ÚQ*”vÚVûó€°ÄzváÁvž"n{ÒtžaP‰¬MfUIJ«B¬0±*äpݪ0‚uilR¡aWPŽqš—ÏY0ÑëæÜþ°±u‰enYCôîLåH%AS–Ž´ŠšP;³¡ûçó4H†IKéYˆ”™ÔˆHq¤qã¡/×2V²î¼{)«§c ×=´+.–ͳ®7'eÙÛ°-Íáéi[\¨ýü¯Ï6/¹ÛæÉn¾ˆeT)†òª¹}(v¡Z‡QnW –Ñ»óS y‰·#±·ƒXžÛIÜ#·3¸žÛ1l†Û#ÜK¸¶`¢×q{Åû}!¬mÝïùôEØ×§jÚˆH$ Ï „ݰò½ µ9Œ•42Çí v¹ÎÖÎoëó)Ë;ëû±Aß' #:×|Äb)F±<#“¸GFfp=#cØ #G¸—02mÁDï #ßo«öo›®3œ¦\e·Rin0`]Tš¾- ELqš£e;¡%1fDKûls®½övÃÞÁêbS(ä\÷\¸Ë®Ù­ŸšýŠ,ë®þRù—}ˆÜ}Op1ókãq<º×Ý5îê8‰ò‡ƒ8¥*ÃøX,ÁøA,Ëø4îÀø®cü6Íø1îŒÏX0Ñ;ÃxÏtGüiÏ]•"¬3’¼ ß©æˆ+­3|Ä.HÃá}ÑuÕ#È…íËD{uµ@Øq-ÂË^…{¬î› jÅ`ÅjB‹1T.UxÓlFšº~+3MtE Ù†=K=ˆå‰žÄ==ƒë‰Ãfˆ>½„èi &zÏýï}¥ØU7Ãw ,%Jgc7.µ eÿ]tPæhÆstbÿÝë]Ù´ŽÛa¿fDj›€‡¹àä~;Tû.ASŒ`¹v/’J‘ÔKå9š=R4 êafƒ^ÂÏ$ü©V‹ÿ¾yØnÝ~D±=Lë_f{:n’þk{ÊÅ«‘BŒòi×KЉq•aŸm•a¯…»ìÀ[w÷¥wnuߦÙW£Ó+ûâ¹î{\Õÿ `Óú‡CytOÕŠâåK½wD¶oÊaó¯?ײgz¾±~€o«x‚â˜#ÿå8‰¥HÄò,OâižÁõˆYëÇÆ)·j\ãg{ºa§á²8„}s·qäít]Ñ:e¡ OsËèïOÆeËh$ÑEˆ¦Ö”e‹%>ˆe žÆžÃuÁ¦ >ƽ€à &z­ ÿn›Ý½Ûa>»Ÿ¥´ÑР¥ ‚éWáº$ ~Ÿáz{…Jº(ËaÃ-ìâ•…Ým›°7Ôú¿"vEÎ3æ$“ÜÌoE‡¿‡ùÝPÏLP´¦Ã: ‘W08ñvz°ÊFïÇñ¡sˆÖÍÊÐåÁÏî·Uén¤»PLˆ»#òšÐkáŸú-à˜pŒ1>†yÛ¼|½¯&]\)hŒ˜ Ø‘OÌ@endstream endobj 1640 0 obj << /Type /Page /Contents 1641 0 R /Resources 1639 0 R /MediaBox [0 0 612 792] /Parent 1560 0 R /Annots [ 1644 0 R 1645 0 R 1646 0 R 1648 0 R 1649 0 R 1650 0 R 1651 0 R 1652 0 R 1653 0 R 1654 0 R 1655 0 R ] >> endobj 1644 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [149.6486 604.4525 173.5289 613.2991] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1645 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.3057 584.7708 250.7282 595.6747] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) >> >> endobj 1646 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.1743 470.0642 259.2762 480.9681] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1648 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 382.0131 263.7394 390.8598] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InsufficientElements) >> >> endobj 1649 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 352.0604 247.5906 362.9644] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidDataType) >> >> endobj 1650 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 326.2223 274.7087 335.069] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidNumberOfRows) >> >> endobj 1651 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 298.3269 260.3228 307.1736] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidRowNumber) >> >> endobj 1652 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 270.4315 267.9141 279.2782] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidRowParameter) >> >> endobj 1653 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 242.5362 234.1012 251.3828] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1NoNullValue) >> >> endobj 1654 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 201.6246 228.0042 212.5285] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1RangeError) >> >> endobj 1655 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 173.7292 260.9805 184.6331] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1WrongColumnType) >> >> endobj 1642 0 obj << /D [1640 0 R /XYZ 133.7684 692.1046 null] >> endobj 1643 0 obj << /D [1640 0 R /XYZ 133.7684 667.198 null] >> endobj 1279 0 obj << /D [1640 0 R /XYZ 133.7684 523.684 null] >> endobj 242 0 obj << /D [1640 0 R /XYZ 133.7684 517.0838 null] >> endobj 1647 0 obj << /D [1640 0 R /XYZ 133.7684 398.8833 null] >> endobj 1639 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1658 0 obj << /Length 2749 /Filter /FlateDecode >> stream xÚÝ[[Û6~Ÿ_á§Âj.ï—Á¢›4Žd3ÞM4¶2cÔcÏÚšLçßï¡DÊ”(‘v¼)¶AF±?ïèðœ‡"M&þ‘ a )©ùDŠær²|¸Â“;øò»+â@ó5a[\ýå ƒŒ¤r²øZHB'‹Õ/SÊ›Í ÆxúêÕ{Œiu¸¾~µÛ<=lgs*àÓMq84—ïÊå~Fô´Ü.K¸IjM§Ï~]|õí¢õ( "HaI¬?ÿ¹úåWìö½Û–µV%ª’+ÔäŠòˆJÕ¤CåK2Ez¬È4©+È€³éžêǾ©öíüU”l0½SÝsc¼Ÿrè´?}›µ4®Êxšà*Ú¤TZP†”Ãì bg–8¶,ãÙM4Ôâ²#°‘Ên³>Ö)[VO{—Ï‹×ÿ1‘Ú£¹ B‡ËÎ(,•½–Oß$ï13¼.CÚ³3¸ãÉ )œt)²Ú$ñ&¹—85‚¨e‚Ñ¢rÌ0BÖ„3R™‰°6ê’Tm$R¹…¤òÍÛOÈe˜¹a`=Ë!,‘Ë-,›ËiÞ6—s¼M.whÏÍå®'ù\N»Yµ.ÁôøPÄëk.``3¡ð -$ü1ëNb†²\Ù°TÙ{X¾ì“¼Ç²Ïðº²i×Ûx¨~[öHÕÀsì}« ûª´¯ßDÃ3)&2OîQ9nèeˆä¤ñsæ+Œ­^6_6RYïaµÞÔ¹d~'ƒˆ€¢ï:8>XŸó&²›~%Ëz™ Ò¼Ee˜íKAeX/u¢P ‰RGÂ][´ÛîkéÅâßo¿u×eµ´#<^ÐLÃÜfdna‰‚naÙ‚Nó¶ãm ºC›œ#»´'Ì‘"»õXÞ•EÔ:Q,1™'÷  /ź¥z?£žTtæ’zm$ê¹…ùY¹°5íÖ ‡¶¶Ý–Iµ÷sÚº?§•ÛjÝô¯ádÕ\¯Šªh®î · s[–îËæ¦ÂÏzûÓ݃»q}øm¼:„A“Ü®KKU‡‡å«#É{¬Ž ¯«ŽöÜåZדür-íRdµnÂl«-Ö0$™0éH´¨-tLÈ^(Î*Αê¢Ä¡T¹xØÐrí¸¬€Ž/š†4ÂÂfOÇÙIJÃg<‹í¦ö%ôõÉpÍ&Çj³×ÀtÙa­[ÿ`~hm_ô·ÍŽçCRÀRíaù‚Nðž{Ú!眫úзÅLãiq»‰Û'‘TeãQ1wo«•ÙLá½À¸…Xÿ … ¢? ‰¶ÍásOÙµ<û2nó)ôœ~ö•a¦–÷„FÏ~†Æ€(IéEØHiŒ‡ iŒ›Gw°4*÷½Ù9îÀíA. íù?.;Ÿq6¶Ûd²¡ƒ™L‡Ü32Æy‹Ê‘+‰&=òçûõÒ®Öî?·ç=î×Ñù+ÆäÕ§Æ¥Åg\‹íŽË1“ð¸Æö§É 0ŒÃPÞ„"#òífH¬rêèayu ¦ÚÞø¥^‡ös½Ô»~©Ç13™—z˜ zæÞ=5i!äÉ{÷á ‰½ûV«ÀÀ’…4¢çAô¡r¼F#ÈCÒåµ y¨V××me•õ Ûà­@°.ÖÑ`Ö!ëq3`º˜£‰o²&¾‚qÓbspç¿6;ß,Û3«ûC}¾)é³mVU !ò…m$¾…ÙGyWB«_¿gúXö—KÝÕûð°,6Å>^eÁŒ°ëë‘+O8D%/qnç+„%´¥…eµ%ÍÛjËo¬-Ú/C[E‹Ó¥åˆO)‹Cå…%¤ו$i++i *uû}³¹ÝÓ¸E«öÄßgÕùu…)4Ò¿ž,+G)Uq¨?BTêA«Ê¾Ì„H) åˆàì‰Ã–RË+K’÷¨,¼ÊÒ~ÊÍ$gœ8 oHi‹‡åÅ¥ãÁ¸º¤y[y yÿ”ú²ßÙožI-!F!J.; ÚH¨I K¬Bëíݦô¯q­¨Ø±ñ­¤ÿº;Qà~³ùz÷ûË]ü›® ò•Cû/ÙÎÎFendstream endobj 1657 0 obj << /Type /Page /Contents 1658 0 R /Resources 1656 0 R /MediaBox [0 0 612 792] /Parent 1688 0 R /Annots [ 1661 0 R 1662 0 R 1664 0 R 1665 0 R 1666 0 R 1667 0 R 1668 0 R 1669 0 R 1671 0 R 1672 0 R 1674 0 R 1676 0 R 1677 0 R 1679 0 R 1680 0 R 1681 0 R 1682 0 R 1683 0 R 1684 0 R 1685 0 R 1686 0 R 1687 0 R ] >> endobj 1661 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 631.4173 191.7806 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a01cd84a7155888aadc568231f908bd5e) >> >> endobj 1662 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.1177 631.4173 253.2196 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1664 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 603.8955 228.0241 614.4258] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_afcd02b475ed7c08c391bc5917a9b3f06) >> >> endobj 1665 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 564.0449 234.4602 574.5753] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a29aba21352578c3bdb94cee15e5561f0) >> >> endobj 1666 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 535.7759 245.1896 546.6799] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a8409427a876646e0f1846f55146872bc) >> >> endobj 1667 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 507.8805 249.065 518.7845] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_aa21fb01249bbb97f4a3149e704634f61) >> >> endobj 1668 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 479.9852 246.8433 490.8891] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a9e95e761de30327378669d11295de1cc) >> >> endobj 1669 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 440.1346 232.4476 451.0385] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a35fb61a8737112aa1d90e7081d0fb65c) >> >> endobj 1671 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6897 412.6128 194.6697 423.1431] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ab5c2c865112b6610e89bb0829e35c6dd) >> >> endobj 1672 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [198.159 397.6185 228.5479 407.5237] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1674 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 384.7174 206.9933 395.2477] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a3ab461fa13db155ab8d5fd649cf0e9ba) >> >> endobj 1676 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 356.4484 241.8621 367.3523] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a09634d63a37f46d871ddee6ffa456fe7) >> >> endobj 1677 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.0574 341.8277 257.4462 351.7329] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1679 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 328.553 181.559 339.457] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.5291 328.553 216.418 339.457] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a53c239a7eda28388ac278de7f5b6f59f) >> >> endobj 1681 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.463 313.9323 275.0558 323.8375] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1682 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [334.7066 313.9323 365.0954 323.8375] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1683 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 288.7025 196.8217 299.6064] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ac6720082cfafae0e48779c82e809e4a9) >> >> endobj 1684 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 248.8519 196.8217 259.7558] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a957053fb51a8024fe46bf0b3dfdcaa1e) >> >> endobj 1685 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 209.0013 196.8217 219.9053] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_af730bdf4681626ec457ba9d8286e3d50) >> >> endobj 1686 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 169.1508 196.8217 180.0547] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a7fd3388e536a354a54ee110f41e0c1f5) >> >> endobj 1687 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 118.3413 196.8217 129.2452] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ad9ce91e8e87c9a3b88b94ddfc9d42fd8) >> >> endobj 1659 0 obj << /D [1657 0 R /XYZ 133.7684 692.1046 null] >> endobj 1660 0 obj << /D [1657 0 R /XYZ 133.7684 650.421 null] >> endobj 1663 0 obj << /D [1657 0 R /XYZ 133.7684 620.7816 null] >> endobj 1670 0 obj << /D [1657 0 R /XYZ 133.7684 429.4989 null] >> endobj 1673 0 obj << /D [1657 0 R /XYZ 133.7684 401.6035 null] >> endobj 1675 0 obj << /D [1657 0 R /XYZ 133.7684 373.7081 null] >> endobj 1678 0 obj << /D [1657 0 R /XYZ 133.7684 345.8127 null] >> endobj 1656 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1702 0 obj << /Length 2870 /Filter /FlateDecode >> stream xÚÝ[mÛÆþ~¿BŸ\ °6ûþrh ¤v$H‹Ö¾öKô‰wV££.å«ûë;Kî.—o»:ÈH›Â°MIçÎÎ<;»$Éò Œ!%5_HCÁ\.n®ðâ~üöŠ8Ð: Ö1ì7W_|ÃÅ #©\ÜÜÅÖ’†ÐÅÍæÇ%刭Öc¼|õêÆ´>^_¿ÚïNÕjM|»+ŽÇöðMyWVD/Ëê¶„“¤Öt)È꧛ﯾ¾ ED),‰õç—«‹ ¸ÿýFÌh±x‚cèâáŠq8‰â¿Ù]½½úk0ýÚœ:F%ÜØ#Ž4Äb E$2L 8ž ¥Tp¦4J¡e‚‡P ²ÐJÉ›P*Š4×t`6”oÊú°-WD,?Bt˜ÒËMQíÑÝaÅÅrÿÐ~r_o‹]qho]Èíñ¶ª÷}`½¹¾þhÁk¾ø´bùrµæ/‹ÇÇݧmuß"«Ón÷÷DjYìN΋§eeÇ®¡MãïaÅԲܵUæ¹ôëPMÈ(³O`D±ÔÁ–õà¥bD*d'SiRš"UÈ(LZR¤=κ|xÜuiy¿øRªƒS…8×(,ð÷-¢gPBrRåõ§Ç²*ʶ8ÞNdqÌŒÃÿ!ì²V a.(\‘mQ~\Q¼Üo7£Ø({=Æ,$%ˆI£ÛàØŸ÷ó&“ǯã&gd·É²{Ú¡©†ÃãQ9^£# =ÞwXà6ãW’Ýf=d¼nw¶€"TØŒ†+²9Ljpˆ·64Âhç¨5ásâ…séø²ôÝÞž=:ìí/OþÏÅc.lÅÅY©etM˜Ãô‹Â2–Z¨*Ã0T(–ˆSa.Ò¼ÈFJó<¬Óútp³EÑþwAÚ¹Âh•ï©ý°¿ëá>–·õþÐßF“N«€±Ál~+ëzëÇáTmJ;UåÆQØØg¥M†¸â9m‹a q °¬º¥yƒ¼MñŽõ­Gû[8B H„&HÃθ¿ŽO˜¸¾]/p_Yq¥¥1…éÀÁ0T†B“E§˜=’9Èè¶ÆÅ¢pnBä ’ʲœ£›Ü !?×ä”lBIÑ ;>VOƒ“|J=±pê ñ°jHÇzô=ôžuR÷„„¦O v‰îÅ6º`)Ý+ë¾Î9ñ;^¦~1ÐÛˆÅ0!oVI(39y‹`)yó°¼¼%y;y›à·˜ö·.oŽ…àÄ–˜:CÞü:>aZÞúvsòÆP}?FòæPvÈÛˆÑ>ûç’7hÀ¸àâ³ê[ßæt_H•ÀQE&ÇŸ‚…´§o°ðrÝ¡¢±¾Eß·úö²Y›­)¡I°4ëeÒd÷¬Ÿ¹„ƒ$y‘žF6Rzêa¿¾žÞØVv3‚òYÚHL&šæt6‚¥tÖÃò:›äít6Ãët6¦ý¸=Ô§bç®~FÐ(VN?f-à3ízA{m·T†^p*¦2£P9nÐ$I‡ƒjÖ-ö\9¿i×|+–"¤*wåCYÕã•¢;ùkøýKb‹ñK<[Ž0›´ò‹¶²b‰r °v+«Øxoö5Õiûo±it¤ù¾Ýæ²GÝ6—ýTpsëf{üyXŠöÇÁe3F'jpÕ³Éäá™+Yµèv8‡CÎX2îë€ÊKPtÁMŸyÿþŸ S¿[qPœ“òPùR뚺ùý8]‡¡TgÔ&†%Ô&À²j“æ j“ãmÕ¦G{Üþ»üG="Ö0MÄóý’Çç\Ùmåå±,ê±Äi¤`µ“¾ø€Ê0S˜Ü)Sf[d]9Áìt¬ç%Âg”ÖIBd#% f}¼_¼ôÓq¨ìV š¸9ßO•;¼ó²Ýä=›×\Bo£x.¯#X*¯=,Ÿ×IÞ.¯3¼.¯cÚìNnŸúŒÜŒ#»mfCsófb;—eOMÀƒ2Ô”Ú®šªAÜ}jÏæ3È3ÖŒ_”Ï‘T>{X×qGÝÎ =}>ÆÓ!f…­7™ûÙìºþr>¯‰†Ö#×F¨TV;T>©S¤]N§I]JGœ0[“Ö}°îî1&R¹Eg¨6›!s{ìã›iÌIú’=(Ãk¢†âü}ÆÐf^(ωT6;ÔÔò)dsuzx_Rk¨íð”ºxßÞœï?˜±wEdî~t Kdt€eS:Ír:ÇÛ&uv³?Ù«õQÍô€8Ñ8|Î…‘ݦº-Æ.ØÆ‚¹ö€ÊS‚¡ª ÄüéÍ”€ú mÄ6 `£öãæí«¯~¨¢…ù|¦BÎ8ÉIo Keª‡å35ÉÛej†×ejLû¼uyß3ÖåiÆv›Ä-ë×Û‡²¯ËbRët4*ÇÍ!„„#Û_08uÑ:¶‘JXsAëÍëïþä’öç&›W /?=íñÞ$Ô–Ájzñ\G°T{X>‡“¼]gx]Ç´Ù®¸O}FWœqbd7¤íñq×n"÷÷Ç1¬æˆH‡  2ìv2øªúlâƒ&u±TâzØlâ¾ýË|æÎ'.–Hœ[ÎŰTâzX>q¼ac<“Y.m³Î¹ìŽ}ë¶ÚoVâô81©ÃB„ “ô”"n°ÌzJ¡ Tf] ¸ž¯õ”wÔ6 4=|”cµ÷UƒÑ{FÃA ,°—”Al#QÖo©ÃÝ̰ÝÙD¯×[ÐíäcHzjIäž:‰P‰Âð¨l]$IƒžgHÛ„9Ûñko¢Ö‡p åÅx³Á@×;pc>¯:íÏЦõçTmÇ»x ½Jët (Ãɢʰ~àŸ“ÒÒ=ÍzIJG6R)ía£ÚFip­KìíD/G’œŸ>Ïx:¶;¿=OhŽ "Àu@å˜mŒ '}f;Ž7ûów7óóÝä¬ Y “[ǰTi{X¾¶“¼]qgx]uÇ´ï÷ûÝT£¦•!Úd£ÖàsŒìºvQ,‹Ãeu_˜R¡l¥"Pì#]ØX?òÏ)n&&B]TÜ‘Tq{˜¦²¨^nœ‡Ûm‡“›™¶w£ s³­„žïóµíñGÇvSµ ƒ °HÆoP9fMí“>æÅÑï¶Í.W{k¶Í«Ñ#~Ÿl~ef³EKžÛ]ˆa©b÷°|±'y»bÏðºbi›ÛÔ³ÅÞ£=§ØÓŒìZž¶›‰"‡†Y(¦ÓWPbŠ99烈?§È±B:ꋊ<²‘*r›ÚçŸréfïɆt$Ö@Rç¶bX"i,›´iÞ´S¼ãG{´ÿÛ’ó¶<ˆ†ÓSgoyÄ'$¶<¬)®Ã¶o–ƒˆ zàÂèþ‰CeˆmJÎDŸØW´NÈ?(5L¿„f_î—¿ÜáŸ|±­l Í=°ãžöIîÙpKsÑäÛHèB€uãzÆ#Ãö¶™7,ÜËhCY9ÖÅ¡{.îiëgÊ&*¶9¶‘yšW!TÈ©MK©‡åÕ&ÉÛ©Íï„ÚÄ´ÿ/û0œdä|µ‰NH©‡¡6=æÕ&IÜ©ML<­6ɇ†•DÌPþk¼Lö9õ†jK›‹nnÄ6Rzãa3z¿›õ_Wm“|òíøë¦å‹ßJŽõ ò0z¤€ ¨tc[ÑøÅkï•à·eU@EÜs%{wÝ7+C—~¥öº¼mdû$»ëN‰¼&ôÚ÷ªw6Q¼Øû·¸ÛOïÝ`¼ÞÿëÓýøW Xʈ©€ýë{¶Ôendstream endobj 1701 0 obj << /Type /Page /Contents 1702 0 R /Resources 1700 0 R /MediaBox [0 0 612 792] /Parent 1688 0 R /Annots [ 1705 0 R 1706 0 R 1707 0 R 1708 0 R 1709 0 R 1711 0 R 1712 0 R 1713 0 R 1714 0 R 1716 0 R 1718 0 R 1720 0 R 1721 0 R 1723 0 R 1724 0 R 1726 0 R 1727 0 R 1729 0 R 1730 0 R 1731 0 R ] >> endobj 1705 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 618.2168 196.8217 629.1207] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a6fe330555d7926430bd4fb72af3df248) >> >> endobj 1706 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.1203 578.3662 223.3664 589.2701] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a5b6d04384ee5608b7bf6f86e651b5a02) >> >> endobj 1707 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.9066 538.5156 224.1528 549.4196] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a01773423bbd768e4fb22d43aa884da19) >> >> endobj 1708 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 498.6651 244.1336 509.569] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ab33449dbc7dd32f10d493e2b5470b739) >> >> endobj 1709 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [330.4207 484.0443 360.8096 493.9496] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1711 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [183.4118 470.7697 209.7427 481.6736] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a922e6694d82092fc487c406b74287ea0) >> >> endobj 1712 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 443.2479 218.9583 453.7782] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a3529fff681af7e826b31cb366dae9afa) >> >> endobj 1713 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6897 415.3525 191.8004 425.8828] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ad11ca53a9ed8c8d60e12aff99cc757af) >> >> endobj 1714 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.2875 387.4571 209.195 397.9874] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_aa73abbd02668c1d3a48e0b2e187be177) >> >> endobj 1716 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 359.5617 246.3651 370.092] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a07f4db0fc1eb719f128555712977adc9) >> >> endobj 1718 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 331.2927 221.7378 342.1967] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a20d67e697b433cef52a8a3680bc1ba6f) >> >> endobj 1720 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 303.3973 202.0321 314.3013] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 1721 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [202.5303 303.3973 221.6783 314.3013] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a005f5d623d129e979d3ba1bd2bd0be17) >> >> endobj 1723 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 275.5019 235.7849 286.4059] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_aeb67db3dcfa5eb20db8ccf540f1f1cae) >> >> endobj 1724 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [241.26 260.8812 271.6488 270.7864] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1726 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 247.6065 220.5725 258.5105] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a7e6589bf0f95eaefc52eeb5c1a119b44) >> >> endobj 1727 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.5579 232.9858 280.9467 242.8911] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1729 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 219.7111 202.57 230.6151] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a6d952ee287b4764941a76eb59ceb450c) >> >> endobj 1730 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 179.8606 200.1491 190.7645] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) >> >> endobj 1731 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 140.01 200.1491 150.914] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a5f3e2fe6f35970812ec010af5ed2ff0a) >> >> endobj 1703 0 obj << /D [1701 0 R /XYZ 133.7684 692.1046 null] >> endobj 1704 0 obj << /D [1701 0 R /XYZ 133.7684 649.1577 null] >> endobj 1710 0 obj << /D [1701 0 R /XYZ 133.7684 488.0294 null] >> endobj 1715 0 obj << /D [1701 0 R /XYZ 133.7684 376.4478 null] >> endobj 1717 0 obj << /D [1701 0 R /XYZ 133.7684 348.5524 null] >> endobj 1719 0 obj << /D [1701 0 R /XYZ 133.7684 320.657 null] >> endobj 1722 0 obj << /D [1701 0 R /XYZ 133.7684 292.7616 null] >> endobj 1725 0 obj << /D [1701 0 R /XYZ 133.7684 264.8662 null] >> endobj 1728 0 obj << /D [1701 0 R /XYZ 133.7684 236.9709 null] >> endobj 1700 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1741 0 obj << /Length 2453 /Filter /FlateDecode >> stream xÚÝ›Msã6†ïþ:mIU‚ï×V;ɤ6µ—qí%“ƒ"s<ª’%G’Ç;ûë·A @‚€Í$ñ”ÉÝ`ƒ|ºÉd†áÌcHIÍgÒPD0—³õýžÝÁůH'ZÕ2–ýãæêÛ×\Ì 2’ÊÙÍûØš@Ò:»¹ýyN9b‹%ÁÏ_½z‡1=¯¯_í·÷»Å’ 8»]®ù¦yßDϛݺNRk:tñËÍOW?Ü„EŽRX;žß®~þÏnaø?]aÄŒ³'8ÀˆCg÷WŒC'Bˆ?³½z{õï`2ºÚvÍÅ!h …4Ä¢-¡e‚‡hQGK`D±Ô³ ³ÑzG©Ý®`N¦f±Á±_¯ÊúUÈ(Lœ_¤©ÛSsÿ°]ëúÛ×p‹½ž*Ĺ–àÄ ÿî‰E ¥ªœ>=4»Õ}ã&ômÆ 3ˆcf:ýwÁ`š¥bsAá¦2B¸éã‚âù~s; ²7dÌLr¨ÆÝ´ØK‡»Nó&”×/ã™ Ùµ£x:l\˜’!ƒˆ z0„á yUÅ1ÅIÎDêø؇“ÇÃ$ˆqźp Æ2åÈhâ5›Ýíê´úÆÍÐv¿»s­Ý›ý‚ŠùÓqtžµ‡ã©»!ãG#Ã0¼‘ ^ &³ 4R@;©à¥’vZ"mt™i¸ÉÝ´P¤¹¦½«~ZÚÑ®:¬tGŠ˜¯>¹Ãý{÷yÜü¯ ·ýÔág³;íÇõj»: o–Q˜GfØàf'¸ ¯ÜÙØ®½³•Ã1ÀÛ+˜Å€/ƒªæY¤”ÄôxZNÿ½¤qòõôaô¢PU´p e RWÞÕ _ÆÆ1ÛµƒýÏ›·£„C(bTéÁ† Ç«*~áHHÃS¿6,.í|Ú—t:™)‘P‚U’I,+$“ «&“²ßLr~ÇÉ$qûU$!8’ôExÜ¡L‚¬žLÒ!L&“²ãLÇùdp¶„9@‘9NJÂFy5ˆ—›NøïH'ðJuÙ:!¶QJ'^¯T›NìÇÇvêÂA¹¤Ò]i“ŠmodîV}OŸWlÛç•ö|_7+ŸWl+›W¨’übµx^¡PõÅÎÏ+Q‡R^ñ²z^IF0WŠ~û¼û}^^!ÂÔòJ$+å/«ç•¢ß>¯düfòJìöëÈ+€#M°:?¯DJyÅËÎÈ+ɦóJÑqŸWbÇ™ÍZRà MÔ—Ycp­-Ú/ZcÄ6 I!Èž³ytæþp a%‡÷3 U¯¯ ~l·°?„%â ^ÜRL—AUñ<¶f=wÏɃÛZ7ÇcØ,zÜÝ6öÁÚ5·xÓÔåJ CªÕ|,+P7ȪÔ-û ÔÍùS7qûUP—K&09›ºq‡uƒ¬NÝt“Ô-;ÔM¿ìjþ³ì×sn&—Õá±r½,ÜAíÕ‡:<‡`×îêê&í×íSÓ³Þ]·‹dÛ®x/À‰I„%W58E²œ¼¬§¢ßN¿8ÅnÿÚp"g‰rDð3ö­ã%8yÙpJ†0 §¢ãN±ã—¼oýyЄ!|RÈ‹ÐÙ(¡ÉË&бâ†Ò$“˜‘ˆ^û B,+0)ȪL*û LÊù3)qûULLsDý"þ $Eú‘¼ª¤Äÿ$Š^Žb¯_~úöi7·¾ L˜4¸E.Il£“ û=¿KøÓ±" À•¬öC°XVŠ—Õ±RôÛc%ã7ƒ•Øí‹ÆŠÆˆ0ižÆÁ²ÿ]Ú4W¼~wÈLÐÈî$Y(ÆHb3Á`‚¼¨â–bŽ„&u:Î[…)ûªÉR© ÓJJ˜*Íe©ÔILô¥g¬cnL§ôJvc3šÝXƒg\"¡HŒÏ¼ÁƈBv#% zÙ‹[í±ö)Uµ/bY ^VG`ÑoÀŒß c·/½²0Ä5CÏù Õ/ãùÚ*µ[,®0Qr0„LuÕª*ŽmyÅ#©ãxµÇäy«=I$)¯ö`-É „WÚpQ^íE&¢Õ3¾ c*-Т+´’l))„‡xæw îkR:h´`éSu&©HavÑR3¶QàbÅ\¤²|PQåfÏy"B»#bßaHĨ_DD8ògWNd-ÈÜûrPlg‡Œwô¡[¼£Ÿù^ºãS)'HVÛÞe¦Y•©e¿©9¿c¦&n_zYɘ„ðPƒ4Ó䌲²Õ/ãù²2µ[,+µÝêJ‡©+[Uű-,ø\²B¨ž‡™¾ôº£'2Y²®ÄEar%_‚$7RÊ0RLÓ?ƒˆ˜BÃ\ÄÞD‰‡*Æ¡6-¥àãUw•ŠpØ¢ >¡Ý±ï:cÔ/ct¶ë 힊ƌ©KÅìïtžõå'QP:P][tDzƒ¬JDzß@Çœß1·/½âÄ ØG+&Ψ8[ý2î¯8S»…ŠSÛ…2 aTqvªŠcKQ[é&~£‚“˜3¿û„ÊÅpU(9 ’ŒébÅÉûo¾«Yˆ NLçãÑÊcU6gš;Ø–Ð3 ¡®¸“‡°†u˜2$}ôþÕìîN.ÚÐ$#¢øEKùØFÑA32×Ê} –ò²+5ÝÇghw|î»…_LB‡î7ŠpöøÐ¬76 -;áÄîñþ׿àÚήœCÎ…Òõ°q¶e;¦S³s¢‡æ²ÿ§¥â?(iƒ˜äÙ¬‡gþ»É‹ÿ×4Fº] Òøßiaê å'ÿNëGeoãÇf׬]fÙwÿC{³0tîñù}³v é>`ÅI\‹ÈkB¯EwôÞ>e~WÄÿo®;úµÛ”ù~ÿßOwÍh»˜+x‘•¹€ý¡«¨©endstream endobj 1740 0 obj << /Type /Page /Contents 1741 0 R /Resources 1739 0 R /MediaBox [0 0 612 792] /Parent 1688 0 R /Annots [ 1743 0 R 1744 0 R 1745 0 R 1746 0 R 1747 0 R 1748 0 R 1749 0 R 1750 0 R 1751 0 R 1752 0 R 1753 0 R 1754 0 R 1755 0 R 1756 0 R 1757 0 R ] >> endobj 1743 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 642.1271 200.1491 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ae509fe7fb63dd53a12674eade9f8a53f) >> >> endobj 1744 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.143 627.5063 358.5319 637.4116] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1745 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 602.2765 200.1491 613.1805] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a73d57c6cf6453ba5c934afa1cca64035) >> >> endobj 1746 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [293.3989 576.6969 313.324 586.6021] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1747 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 551.4671 200.1491 562.371] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ae1529c918f00ce00419647715ae510ac) >> >> endobj 1748 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [293.3989 525.8874 313.324 535.7927] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1749 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 500.6576 200.1491 511.5615] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_acac40215c2eab8f9db13683536a9ea71) >> >> endobj 1750 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.0802 486.0369 307.469 495.9421] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1751 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 460.807 200.1491 471.711] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a9fc84f8c9cfc7aa45584f6115356bf81) >> >> endobj 1752 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 420.9565 200.1491 431.8604] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a17c0c46a47a511536db34be16230f0b5) >> >> endobj 1753 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 381.1059 200.1491 392.0099] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_aa7a896f7365af06ed76c8c77b013ee1e) >> >> endobj 1754 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.1399 341.2554 201.6053 352.1593] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a5690eb92353a1b887cc8746bd1578353) >> >> endobj 1755 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.5485 289.4496 200.0139 300.3536] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a00111b943e40d3f9276094615093d16f) >> >> endobj 1756 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.3404 226.685 201.8059 237.5889] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a3dbc65c7f0ea3589ee4f81ce217e319d) >> >> endobj 1757 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.0859 163.9204 199.5513 174.8243] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a246fc3a403b5d9a83e7c607381d7d2f8) >> >> endobj 1742 0 obj << /D [1740 0 R /XYZ 133.7684 692.1046 null] >> endobj 1739 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F14 944 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1771 0 obj << /Length 2791 /Filter /FlateDecode >> stream xÚí[Ksä¶¾ëWLù°5SµãýPeS•ì®í¸òpv•âõ’(í$3…Ѽþõi>•rq*å*E~ìn4º¿n\²ÀðYÆ’š/¤¡ˆ`.7» ¼¸‡‡ß^ZÔ:†ýþêâëo¸Xd$•‹«»Xš@Òº¸ºýqI9b«5Á/ß¾ý„1m——o÷Ûã®Z­©€»Ûâpè.?”we½"zYV7%¼$µ¦KÁV?]}ñþ*X)"HaI¬=ÿ¾øñ'¼¸ó¿¿Àˆ-OðFĺØ]0/BüíÅÇ‹¿‘ÑÓöÕ9? \! ¾ÈyK(D™àÁ[”ÆÞQ,õ"À¬·>Q*&à ÜÉÔ"8ÕëQ³z2 “N¯FR‰¡Ú¦Ü=l‹¦´ª¿þ†Øã©Bœk J,ð7b Q‚C©r€æËCY»²›Ð3™A3ãð¿ {׬C˜ ƒ"ÈÑÒãŠâå~s;q‚q #âQÝ´ØGõ½Ã|ˆåñëø…™ šÈµV<Õ›ÎMŒA&`dÂx†<*£˜b‚„Ô#ÅŸ°À7ûêЀg¹\šÛËËÇËò¦Ù×ÁϽ©!Z™žL\4B› Ü>Έ€I3”%fj áÕ¦º-šâµ5P-Ÿe+Á¢Lžmìv_Ýψ¡€‘RmpoÓÚbkª)2Úaäý±¬î›Ï‡×]L·ºÛ+Ëfõ¡ù°_Q±|‚ "ÓÔÅÈ0 LE4bš¹À 0RÀõlÔHd# DM$£AF&y®i®i¯ª×5ctYز|ìæ ½µ¿ë~‹í±ÔkÙ×{“ùDqïLH6ãO”B<‹ö‰©£bð²z¿-w.÷ı§}t{ ƒ´Ð)ö4H2¦ÒìI„%ODF+EOÙ3dG¢BBg!}ø^çsY¦ I"ùKX3–‘`Í‹X“JbIJº|».êÚŽ·øÒÝ·g=uZ¿wØüâÞÓÚ:n b{2¶=ÏÚûÏÚ»À³+àà@µöPízŽ=[þµ.n ßÀ¿öÀ¿ö=qYßg§7‚¥×ÃòŒ›ÔÛ3îŒÞÆÕþº×€#[ÈX%°É2®Ã¯ãæw,7äÂïêºørB©DJs:2d4O•QO)<5šÕGm/à Ȳ!ÛùÂ8—éfR‰ÀÛŽaŽŠmaG:#“(Œ-s®¶õ‡Ê0 :úlÔ¤­fD:µo:õ+‡—(…Ð9$ËaQ¯Ñ/!ÙXF‚d,&YÈš¢û lQØc;%yí“ëΑZ˧ö÷³Õ±¨kÕMQ7_xŠfHy}5Z‹ý÷ü¤õÆáB;­Gé;Ÿ´W¾,¾éä’“dÊ!Í Æì ÿÕRé¡òsº±çÃ6ž­×ê‡æ q7Ý.&Ü} ÷¦ÎnçŒ(XÙ(N†Û ï;»!øæ«¯’Ãq¥^T1b‰Š`m/Ú&íS¼–v×õŠ©eYX^ŽJ^}ôˆYž¦F@#-sLÃL`Y&Né}.çŒë`Û2LœöJ`âŒb`b:Vl‰xªV"a¨©==pÏ0–›ÌoJ Ììavrô5U>ÈoJ±Ý0ã៑ßop2ó¨ÆHhú¢3‡XF"ó¬eóÍîa[NSk°ÍuíÅvë××n_ìp¼¾é?¥qézÖ*­0»v:½ÍOa’åvù#T*W*Ÿª)¥ai’Qêr0ÒéYÙ®Ò} „ëWÓ°4°¤™q27<:mÏXfgOËûõBB·Ù>›”Q nÐÂÆUìûg,S¨ Hjõ¢ÈïE¤ß¡º#¨öœÊVžÇ»Ú?r¨ïöq`óéyóð´©§Éœ*XŠcRN[Î&ŽPèH¶2ƒ2—[–O®H`*»2z]z Ô¶_òÙÿoË™]0»ï‹Ã—8ž—‡e‰ÙMÀ±‰²äð9k'r{sØCWWNƒ‰q$ìgAIwTÆÊ E%˜Œ ™ºC9R†Èe_$#•~Ö{Æ ;ÿ¸¬»Ü<<ì«¾ŽøR¿çÂÀSLSlª¾îDM¤ÝzM”h”5ǹÏ*cX*I<,Ÿ$I½}’dôº$‰Õ&?YT–<ªÓŸ,Z|Έ‰\kÅ®øW»ôÝ»¿½=Öõl¢°Vɹ" 2VPÁ„MA.l?©d/I€XF",vÏAbÈȰ$Aµøœ¹Ö ˜œikÂã˜$=³¨ŒZJ QÖD ÕŽ³µù¼9ŒOTަqà¬iÍÔ¹. øŒ­S¹'\ÄE;*í¢€Ê©µ Ïáé@­?‰™a>è\NóÑ0áö‹²4¯Å°¯X–×Òz¯åôv¼6Pû¸©›c±õ‡ì·——{X¯”ÅîT“͵ý¸ŠLJ´kŸ1n*·]á§' $In.*§V2¤™ÍàÁ\ÁÍøâpn÷M¤AÏDs6ÿE2Rüça݉Pò+?›í*Ô¶ÞÑNdÀô¬Í€NÎp‰?Ǫ´›`‚8ÔÞ~vfÛµ(!‰¤Ñ–<ÜÌoðûµÿ³8ý0L>ÿe ø\1=8ÅðVÙÁ|[Ve]4~îuµ2tytTñ®¼é.d÷C1q±@ä%¡—>2îìɲ_ìû&3\Þ¿Ûÿü徜¬C¸‚N[1ç°ÿkE‰zendstream endobj 1770 0 obj << /Type /Page /Contents 1771 0 R /Resources 1769 0 R /MediaBox [0 0 612 792] /Parent 1688 0 R /Annots [ 1773 0 R 1774 0 R 1775 0 R 1776 0 R 1777 0 R 1779 0 R 1780 0 R 1781 0 R 1783 0 R 1784 0 R 1786 0 R 1787 0 R 1789 0 R 1791 0 R 1792 0 R 1793 0 R 1795 0 R ] >> endobj 1773 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6462 642.1271 200.1116 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_acf2fc78379fcf87368be58a5af5e17e6) >> >> endobj 1774 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.0859 579.3625 199.5513 590.2664] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_aba3909f84c581320091c0e360de2ae94) >> >> endobj 1775 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.207 516.5978 227.7805 527.5018] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_af3c3c6cda70971b8f88fba3409222f91) >> >> endobj 1776 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.207 464.7921 227.7805 475.696] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ab4c9789b84aaf531fcccfa76e19e4fc4) >> >> endobj 1777 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.2875 414.3562 206.4256 424.8866] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a3329c1be8b0491661be582b59710ba32) >> >> endobj 1779 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 344.179 191.7806 355.083] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a206d06dd199e7c73c32864b06f760f77) >> >> endobj 1780 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.0056 344.179 431.359 355.083] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 1781 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.1748 332.2239 328.0551 343.1278] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1783 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 292.3733 191.7806 303.2772] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a3a1f099043fecc7567eca702be5e6a41) >> >> endobj 1784 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.5962 292.3733 219.4765 303.2772] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1786 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 264.4779 257.3638 275.3818] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_afa347ea0046bd222d1b70346ec126332) >> >> endobj 1787 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [248.8273 249.8572 279.2161 259.7624] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1789 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.5574 236.9561 235.5157 247.4864] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_ad79fd54bd8997985b37cb6722777c4c0) >> >> endobj 1791 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 209.0607 253.17 219.5911] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a2a85f49e6e72ed0b3619df9e586ad159) >> >> endobj 1792 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.9228 194.0664 214.3364 203.9716] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1793 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.8874 194.0664 333.301 203.9716] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 1795 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [247.62 180.7917 262.3447 191.6957] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_a636120f892e981e24fc7e29248c66a59) >> >> endobj 1772 0 obj << /D [1770 0 R /XYZ 133.7684 692.1046 null] >> endobj 1778 0 obj << /D [1770 0 R /XYZ 133.7684 363.1828 null] >> endobj 1782 0 obj << /D [1770 0 R /XYZ 133.7684 311.3591 null] >> endobj 1785 0 obj << /D [1770 0 R /XYZ 133.7684 281.7376 null] >> endobj 1788 0 obj << /D [1770 0 R /XYZ 133.7684 253.8422 null] >> endobj 1790 0 obj << /D [1770 0 R /XYZ 133.7684 225.9468 null] >> endobj 1794 0 obj << /D [1770 0 R /XYZ 133.7684 198.0514 null] >> endobj 1769 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F14 944 0 R /F57 903 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1804 0 obj << /Length 2915 /Filter /FlateDecode >> stream xÚÍZYä¶~Ÿ_Ñðƒ£¶¹¼)NÀöf H¬~±÷A£Öl+VKmIíõø×§Š¤ÔÔ1Óø@0M‘E²XçWä° …?¶aB£S¹Ñ–F¥ÞäǺùƒ_Þ°@´©v1Ùçw7¯ßJµ±Äj®7wñjŠhËøænÿ]Â%Û£”&_|ñ=¥¼ïno¿hªó±ÞÞ*ë:ß|W<í–¥IQçLÒiÊ%·ïï¾¾ùûÝÈQ´#†j†üüxóÝ{ºÙû_ßP"lª6áƒf-ßo„„IŒ±¡§ºùææßã’Ѩ›º&‡‘fg²T{i®Öe¦ l˜Ž"Sf“‚È´˜ŠLÂ…£È B{SôYY{Oá«ËÛòÔ—Mý´T”"B¦×ty¡r|q¾ªJÁIšj¯ÊÏÍòÞ+ë>ë ßÊ/|hÚ9_œkÂ@K—µc8Ô~4ï"Gú]ó]ySƒÚë¢ ´ç-[åâp‚ ¢‘¦×Ì^‘ï@¾‹é—‡\¬Šü¿ýêî›Åö`®4µ³í羈®m R3z²kŸÝWv§™Š°yð¿]žUY¤ùx âüž*ÚÔEPˆ¸1ÐbÄ*å•VÔ}û¦kXr‚ÐãyQU0•ù/§%l”ÇSUa‚óEè¸ú\£’¬w_4éÎ÷ƒcÀ˜gû *ØyýÂHdPÚŠ 2õO2‘ ÈEÒ4Ü­¬¡A¾†‚¿=µ‚ ÄKh¦“ Œ(ÎøTB(bneòÓ–© ¼A)YÄŒ#(æé¨L²zïÉ~Úr2,Q…~¨m°ëcDŒÄNÄ@<1Œ|,ûCØnËh²$¬É¾FYãAèpùÜ·[ˆÜžÃ'”`4±œšk:°×tÀþɓϺ¼,ï¶)Mœ™ƒbà@ÇìÑ7šº ­üÇÅ æÁÿˇw^¯6%2µzªÖ'„ÀR’RËÿ8!¼†(úP¸hÈ4¬ ?&);ÿ›Õá;²yt׿’¥¹VJv5à ô»xÂJœ_¬ûd d’.ç̃à@ue_8.¤0Åɾ!9€(‚ž¡…®×Ap‡æ|`“F¼X2#ý5ë:O øŽæ|H®ˆDô¬|Fª+»Kže´œî~(²=†p” Âo=ÞP“)„ω ä š” !©Iª²ëÁ#%§Éݧ:i‹ÏeëÌÎSùy¶È]˜2— \ownËúƒÿêY˜.á+òò?m•JÂRÙ~-óàu,úCƒ™?µ!&¤é +o ±­ F¨Q '@®JÐkÈ`¤ßÅVüb±®C‡“8¶ôQA¬E‹™ð2G`Õ5,xˆÖvÊ*4ëK—iœtœX1Ìr+‡Ðûl&f©¿o€ˆ§ˆ5t–i#ÝAš*B»ìCÃ×J§l ÞßÞFxåX@¨búw=ƒ"HŒ{x8< aͰtš¡áÏË:Î{’2oã’òK¶ÃÞ`º6<¯>Hâ°ºú}ÏÉp‰!G6­çñ¥0#µ„³Ôþ¡Pbeòí£ B È@0Ÿª&ÈÓ\+LÎË“ã¹ÃЦyr_øžÌÖçcÑ–¹ÿÀ8\uÆÑõz²6Ì­Êû6k/…§“zñšõ0P© {zžöÉFÔhŽÝç.,ƒ^|ðwï»öM&‡LÍ%؇"$ýÀžì~ð$!w¸^lWÂA“—«é6S_¸(G «\T€¯jöÄ'Gþ"ЉŸñ!¥‡ÑÆÄ>Ä_àCvô! ¯ýŠÝ#Ä8”þjç+@ºÁ~µâàrÎÌ8¡v%+lõÍP‹ ºêbŠÎl²Ó?³#>H£Ý.½&H–EÇ·[ ˆ¶:w[ÀP —[`a AÎ.å=€¼ì2ujFMõìì-BNõS™!ÐdxÌm9¾úBLÅz±dQ21Éb˜âå—ðÌ„â{QÌðB¯†æŒ[bÈ}òÔ¸)±‚¯€Ê9= àh)ñŒÅ¾prÁÝ£Q©•ë@v(~õ0EöË(¤>ÿ“–†q4¶ÞÔB>•Þx¿,j¼˜ßÿ¸Ð|fö¦È}CûNó-¦o¿UáËÁhÇŠxR׿i~~üP, ¿4†H Ôk‘Àþ Þ®V`endstream endobj 1803 0 obj << /Type /Page /Contents 1804 0 R /Resources 1802 0 R /MediaBox [0 0 612 792] /Parent 1688 0 R /Annots [ 1806 0 R 1807 0 R 1808 0 R 1809 0 R 1810 0 R 1811 0 R 1812 0 R ] >> endobj 1806 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.1743 629.7331 259.2762 640.6371] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1807 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [302.6097 612.1088 325.0852 623.0127] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1808 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [293.2455 564.2881 315.7211 575.192] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1809 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [391.4775 564.2881 426.4161 575.192] /Subtype /Link /A << /S /GoTo /D (CCfits_8h_source) >> >> endobj 1810 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.0791 540.3778 294.9901 551.2817] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 1811 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [413.3373 397.5325 440.8038 408.4364] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 1812 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [198.1653 379.9081 232.2672 390.8121] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1805 0 obj << /D [1803 0 R /XYZ 133.7684 692.1046 null] >> endobj 246 0 obj << /D [1803 0 R /XYZ 133.7684 667.198 null] >> endobj 250 0 obj << /D [1803 0 R /XYZ 133.7684 354.3789 null] >> endobj 1689 0 obj << /D [1803 0 R /XYZ 133.7684 332.0208 null] >> endobj 1813 0 obj << /D [1803 0 R /XYZ 133.7684 332.0208 null] >> endobj 1801 0 obj << /D [1803 0 R /XYZ 217.6528 262.8752 null] >> endobj 1814 0 obj << /D [1803 0 R /XYZ 133.7684 256.2352 null] >> endobj 1802 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1818 0 obj << /Length 2365 /Filter /FlateDecode >> stream xÚÝZ[oã¶~ϯ0úp 5Ëû%8-Ðî6ÅmÚû XrV¨-¥’¼iþ}‡"%S¶dgS'XˆHi8r¾¹ph2ÃðGf„1¤¤æ3i("˜ËÙj{g·ðñ» â‰Õ"$ûfyñÅ3ƒŒ¤r¶\‡Ü’†ÐÙ2yQŽØ|A0ÆÑ‹¿cLëêòòE±Ùmóù‚ x»‰«Ê5_§ë´œ¥ù*…ARk 1·üþâÛe'Q0A Kbåùóâí;%ðhEJ*F€§@· Ü™$QÌY£³úánX!é€u$ä°B!wU Ha˜Fë¢t$­Ór›åY~ë^¬\ôd˜DÅÚ½ZºG–»§‹µ/ã:¶ þâŠôv"¨€  âÚÿëHz²)¤86ž`9ÀC"¬ñ_ãFÁÀœT¿Í!žFéª.Jç”0„!®÷ýÀ˜ôàÚ±™XøA[œÏÈÿ…$BhH÷°Ö#¶(Á´T3¡m6!x³ëîm\[cÀrªÜáHÌakì‰Y¹ùiji¹Ux—¿¼úéõù¸û…Ùdk}v0#“ÂLí¡;äò’BÌ„HpâR¿]žÀ˜šÌö;”qc¡g0f×Ð"ì×ëW˧ l²•~âŽL$1K*ÀN‰l&$CDk—Þã+à6¾%ÁW(¡Å׌&Â2²Ž°9ûÚOå­§yœ‚;úE8àX€c¾.kÅ7›c1…dWÓ1Žàչə@\‚íë§ÈòúÄIo:-}â¶Á¢\y¥`ܯÀH3î¢gywÂûü&³ŽCG¬#”ñw,pqWgEo Mœw-Ó»Òï–wyÝÅ{×è|vYÌ©ˆî]Çòr­/¿tOr0îëj•e=TÍ„£Èœl‡>ñ¼ÀVæ Ë 4 ƒH?™F\csïÇqp› —‡Žà2”pa÷YR¿GÌd²⾌‚f8‹ó‡äLP‰UmÕj»Móþ,à9nåÁÍœÎMîyã±'Išô?u8{ŸÆ ÄI!"4°ÉùœÆøí`ÁiÒû¼ XC‚C‚(¨f4ìÃËn0¤"Šw—!ÝuÈiSw^Pª£«]¾²Çõ^«Õ\ܼ»ý°œ&ƒ—6°‰„ŒG-…k†„’æÜR$€‹h,¿˜:ÝÞmâ:*±¤”Ðý*Mo†^•Æ–ælõÔmÅP͆CˆY¿àÔãgÒ¢-ê|˜SYâøÞA]^ÆÉ\EÉõn³ùmÎuov~j¹­ŠõvE"õô³äöàÕð`[›¡(¤E ·ôCá>ØhŽ(#gnãªÐñâ€iâ#É›´>0õåõ¯?üŸ)Tç:î|Úx‡Æn’ÔgQ?å› Ò6s‚<Öû/n‘n™A#›“òq;ßmêß9RPAâúnžÊzµÚ kGWîéD ‡º®+žÚÖG™hå4Ÿžg´ó÷AFb—‘¤– !ñ XØz…6=TˆgŸnßÅf ›€]¥õcrmÂ{H‚ïìrgÌ2r…°=\>®Â|¼oÃz† ÂpÃÏ@>$;yîAiåTüÝQr>’´ýûÉ;cCÉ;k#2³‰n˜¹Ã—^æý}$‡À½Z»·Nht¢C{Xt;Iå|¦aOLFY]L9öï³&†,¢©xÀó¾ÌêºIÙ  ò1ÎFBju³^Mˆ#£I ż˜ýC‹±ž¢F€ë‰ã<ñ“¿÷"­÷Ç~κ\æxNc#v÷C‡ºÜ¥“‰07­4¯ÝƇSo6|h6žyQ{áŠ]+pQ¶¿Î0ˆiT½Ã†Sȉ\?ïSŸ@1Ø€¦Ô>¶Dðí¬ãM5´” †M¸Ý¾D"­ä´:†ØÝ·kv»m‘¸à“Œ »*¹.äœ-“?ö7®¡{°S4ü¯DF1ÝsN­TÎ7åiwYU«°åÜШU÷ËtåÒ=(&þ΃ÈKB/Û •µEIë”Ú á‹“žUñ×Ãm:ðÓ8…¸‚ˆ8°aßý°endstream endobj 1817 0 obj << /Type /Page /Contents 1818 0 R /Resources 1816 0 R /MediaBox [0 0 612 792] /Parent 1688 0 R /Annots [ 1821 0 R ] >> endobj 1821 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.0942 558.6052 233.9744 572.5529] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 1819 0 obj << /D [1817 0 R /XYZ 133.7684 692.1046 null] >> endobj 1820 0 obj << /D [1817 0 R /XYZ 133.7684 667.198 null] >> endobj 254 0 obj << /D [1817 0 R /XYZ 133.7684 508.0918 null] >> endobj 1690 0 obj << /D [1817 0 R /XYZ 133.7684 483.5769 null] >> endobj 1822 0 obj << /D [1817 0 R /XYZ 133.7684 483.5769 null] >> endobj 1691 0 obj << /D [1817 0 R /XYZ 466.6471 402.4761 null] >> endobj 1823 0 obj << /D [1817 0 R /XYZ 133.7684 395.8361 null] >> endobj 1692 0 obj << /D [1817 0 R /XYZ 190.7341 328.6815 null] >> endobj 1824 0 obj << /D [1817 0 R /XYZ 133.7684 324.0988 null] >> endobj 1693 0 obj << /D [1817 0 R /XYZ 356.2918 266.842 null] >> endobj 1825 0 obj << /D [1817 0 R /XYZ 133.7684 260.202 null] >> endobj 1694 0 obj << /D [1817 0 R /XYZ 334.9914 205.0026 null] >> endobj 1826 0 obj << /D [1817 0 R /XYZ 133.7684 198.3626 null] >> endobj 1816 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1829 0 obj << /Length 2114 /Filter /FlateDecode >> stream xÚíšÝã¶ÀßýWø©°3ÃïEQ ½4Aƒ HrÛ¾$yÐÚÜ[²äJòn¶}‡"©¥lÙÞ=(í^»ðƒ)z8g†?É$s 2'Œ!%5ŸKCÁ\Î×Ûž„¿™‘ ´ê¥V©ØŸ¯g_|ÍÅÜ #©œ_ߦÚ’†Ðùõæçåˆ-Wc¼xÿþŒiÛ\]½¯Šý¶\®¨€Þ"kßüÉÞÚzIô–k ƒ¤Öt!äò×ëog¹î-JnDÂ’8{þ9ûùW<߀ùßÎ0bF‹ù\`DŒ¡óíŒqD‰=ÅìÃìÇ^eòk7tÌŒk˜?pƒàBI1ä†0¥¬@T8÷5p*EJQhI‰¡¥IïT¡æœ*™wjëÅœSXR¾Èêlk[ç0²hŽ|¤(³yªþhJT"ŒsƒÖ_k˜€G†ó“³v7E†Q}<íCyÞ¦.¢ÒG÷…™3˜9Uˆiž·ÈIž,ò§Šv`°„ #=m‡çÛØŒ#†ªÒT‚€c‚‰§U'i*Á¢JÍ\‚i†c¿êå¾(þ«MYq´ÞšÂ7¢S,'06ª\¥:;c)M5q*d4Öçý—>¥wU^ºí.Ú*|ßY߸_Rqœg7Eè¹­‚lÓVu^~<pýýß¾û®L{‹ÁX§%Ð.F(Q*Oâ¿q.ôÙâÒ‡ÕH`ÃN—XH FZsÓWløÈPµ[»ÝYk“¿øš¤a*”°wãþè%w€ÒÁ± íãΖP³`ù˜\|QËÅ%cAþO# Ò“AàÞ•Á*ßx…‡ÛËÕUm³ðÛ/XàåŠ+qµ¹ºº·k¯ÓˆpBÏLi`ÁØ$”+¥ò¹søƒPlà5Ne2I aÞ¼ÑD1„‚Žþ**È—cm+¨´»,è ™“v΂½C€GÆT°RKs^5”o!‚PÖ´cš$RBE‡ÀJ“º€Rb4'8$©G½6%‘¦ÔO÷'ÛÖ¹u%ãÞM:Ô“MÖf¡ðÔÕÖ·BG³ÎŠ,£uÂ+PϪ¡`QÒ.ª„Xt©ËU…$…=ÓYp}—wœÃY¹ñP×”½¢¨œq¡æA×¾\·yU†1;[CmÜú‹R2_ç­¿‚I,‰·†©å’ã0ɺq ÐrňY|Yz ë~úmmwN»ïzÈ‹¢79‰‘ëoí­‹>¸õßeýsxSßïo•7msT£ T&¥™ ¢èD4% za#.ÑT/öBšJÕ¿ÑÔ«¡)CRáS4¥<¶¸P#΃ʯú=ÔÔ“NJQ©Î3Œ¤¡f„ ¬öínßöÙÖfyiC©äÆO‚±lø«.±»Vm›ü_}:çá‰+ ߥ]Û¦ÉêÇ“(5G^JMŠÜ>Ÿ`#¡(`KrrÜ@®b¨ÉVì¶’wq ËTùTaydðxX îy¼Ùe!Òª°%„"„Õ~{ûÁþ•Fö馸™"»óWT^@v. Ò\ÓÙÕïŠìä²3·{ŸÅ]Àêd'gDd—,,GduæZcð¶hÆÈyx²el:–JñçÎfÞ™îýwÞÙÝ@:þ ì®'cwõvç Wü»§bgا(-ĆÝi ­Ç¥ ô>ʪ ž¤„Ð|Våj°Æê«öb/dÕTý«¾@`Z ÀrU™†˜ƒ,¸ÌªA! Rg ``äëaÕé<ò¿Íª°q#©¸ÀªLIØÓ y«¦Ê' ËCƒO„ejðïȪÓMñ3eU& Š M/°*ãu€šVÕo¬úÿÁªµS[9?<4ãš æ9„ÉZ¸!ìa¦bg“aH9E|‘¨m»¯Ë!æåÇø¯Ô PÄê‘Å¿¡ú7¿ŸÂ›§P“J†0Ÿˆ4©&;‡Ÿ'Í^ì…¤™ª#ÍW³½»’œ¨ ¤I¥B”jv™4S…SméGFŽoé#GIsUþ×›@^žÜ½§›Í«£D2i ‚¨Ö'X ÿ¨‚àiÅU(ú\,ª‡3¡”(,” =J©¡}(°àãaõÁˈïvдYÝö‡²˜Ämj§!r:O|¦I, gúDRØ?41<…HóvFáíŒÂ‹Ï(Œª‚àÂĸŒi›ë§7¡˜:» ãeJ÷”ÜÙ’¸;§4r[}"ú¥> endobj 1830 0 obj << /D [1828 0 R /XYZ 133.7684 692.1046 null] >> endobj 1831 0 obj << /D [1828 0 R /XYZ 133.7684 667.6624 null] >> endobj 1695 0 obj << /D [1828 0 R /XYZ 133.7684 632.9924 null] >> endobj 1832 0 obj << /D [1828 0 R /XYZ 133.7684 628.5093 null] >> endobj 1833 0 obj << /D [1828 0 R /XYZ 133.7684 530.9794 null] >> endobj 1696 0 obj << /D [1828 0 R /XYZ 133.7684 483.9558 null] >> endobj 1834 0 obj << /D [1828 0 R /XYZ 133.7684 479.4726 null] >> endobj 1835 0 obj << /D [1828 0 R /XYZ 133.7684 409.465 null] >> endobj 1697 0 obj << /D [1828 0 R /XYZ 133.7684 362.4414 null] >> endobj 1836 0 obj << /D [1828 0 R /XYZ 133.7684 357.9582 null] >> endobj 1837 0 obj << /D [1828 0 R /XYZ 133.7684 287.9506 null] >> endobj 1698 0 obj << /D [1828 0 R /XYZ 133.7684 240.9269 null] >> endobj 1838 0 obj << /D [1828 0 R /XYZ 133.7684 236.4438 null] >> endobj 1827 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1842 0 obj << /Length 2105 /Filter /FlateDecode >> stream xÚí[ÝoÛ6÷_á§Á–ǯ`(°uk±>mm°—®ª­´l)“åvÙ_¿£H)”-Yv§¢ih(ét:¼ûÝ1eSŠÙ” A´20U–FAM› ~À‡/',]4R±ØÏW“§/@N-±Š«éÕu¬MeŸ^-ßÎ81¿`”ÒÙóçQÊËíååó|½Ûdó .ñî:Ùnýðuzsffi¶Hñ%e ŸI=wõjòëUcQô!F4UÌÙó÷äí;:]¢ù¯&”käô3^P¬åÓÍD¾Ä«ï¬'o&4*£§Õ«]~`pZý–à…é’ĽΠ¡œ‹J€pédÜ–S9ÑšãH)Š#çJ=5èT%¼Sƒ\#æœúûœÃ,)’MZ:‡±ÙöÀGšɨ˜Æê¦Ä¡Ô4'2ø`ý5ºFH±½³v%Vps8í}y†ÞæQñßÅ™ œ9׬²§-²"Š¡çZ‹üeoÕvP´„+%ï·À¿G§›zX¿ÑVo%œBÞ­:‹·’¸Ñ4®:šfúUÿ”¬×·¤´ÌNƒB5‚‘µÊ‹Xge$籑VàRÕFúý~õ1õ›9ß•7»ÒyV&« ±*åŒÌ/£w‚×»lQ®ò>¯Ök?*Òíêß S~\…‘„ŸYºH·Û¤¸Ý÷h4Ñ(>¢G@8Ó¸OÄâŸ(JELli”¬VÙr -ÆÊ¼Fb²$ý8mŠg˜d0Tð>œ1LXÝÉ9á.'¸eËvëõŸ˜àØ,YïÒ~”EªGCÙ¾¹=(‹Í½ÉW™ËÈ-ô|rðªÌoÝ~®“››õ*]¶î²eêöXV?H×é&ÍÊíŽæƒûC Ò%R ¾¨ †2ÛG¤‚†´V ;%.׊Z¦››uRVH{ú‚ÅUã ÒZ½ø£—h}yPÊÛ›4C‚†Ë‡Ëÿ¦C!¦'Žï{ñgú,ÑRÖú>9Ê—¯–^ß>•¾¼t1Ê=ŒÍ§.Ö•ËËËOsæà—EâF·–04EQ¦ŽÌ­eK×l0+OÍ^@‹–û2Ðf¶¸3ÖÛ'Š8B€©Úqë<ûСì‚C¤¢pÊ¢¼%]ÞêPÍp²ÇU#g• ꩺìשÊx0¶=m©§†‰NŸPd¼LænmâáÞg‚[2Þh•¬·z’X"p }±XGl´I¬ ø8ø:-‹Uêâ^…>· ´˜-“2q#>».ò¿nl¡þÖ¢.ñ>†Ó¼-è!ÍkHßΕœ=qÏlIoW¸f•ä^ꨔ|þ˜ÅÔ çš»dÇjä¡î¬$ÍCMÇ}ïþæ(Àì}^~ Î÷·„SËêå:È]{¾J(–¸A<É– aȾª¹‡’Öw±.3L|ág‹ÔÏ)ËK? Î eÊüdLUä¨.Ú© o4ùmë¯Wá-O¹ªM·ã@ïA¸üç<ŒHc„ˆöFÅŠa4À§(«oé*?ú™ƒ‘Vì#q·ñjظBæÆçjelÒj¦‡_Ä<#•h"Z(Þö÷Á"· fûÀv¥~éMš†Ïû¨¿ ß]æ‹cI9g3WAUå”PJ¶q}u¹U ½áb™b]ÖQUr4Ë`ý ‹o§b Õ'µ:@KZËVG#vf«#V?Ôê€ZÂ>ö:Æ þHà•Üô:@1¢„•ýŽXáXtÿÀÈnºß2òþô:ÆóÈîA±˜ ÊIïu`&7Òœ×눕Ë}ƒ{`ü{ãMñÞጊ3 j ×H×1'ðsz±êÑP¶onÊbs¿e¯c<|§½@#)½ ”|"îu°¯ÙëP¦»×„ GÚŒú*à Û»»?Õ­—ò})T(ÓE‰œ·£Û¡£Ìa¸5ö‹’Sû) Ð}| âHäÑv 45Ú3œ …n·Y"5åÇÛ*’óû*ªY£“š'µS̹í”.MŠh©õ)m u—ÕŠ ´5b±#m ¡\~ý‹´Ü!£&!Ŧeg†Ý¶ï&uxtål…ËÀïÎÁC9Ù/\늋ÄþÊMpA¤ŒrH-i/µ0P¹5bgVn±úÇCê{Ö¦ fÀ n'¯5ƒáÂ-V8w90²›»´Œ¼?…ÛxyØ…›@ ƒÿ n‚I ÅY…[P>jáë<ËØà¯X¸7Åï”1sô¸5jèt£Ã„â²Å˜ù#c~dÌ÷™1ÿHs¤<ûRœÂÔ¹ÂØ§˜`ê±Ø¦ÎAn­ùLýŽ9­#ýçJÙÕâˆÎÌú¼;Æ¡š«qŽ^8b•Ú¡“—ZêLú)> endobj 1843 0 obj << /D [1841 0 R /XYZ 133.7684 692.1046 null] >> endobj 1844 0 obj << /D [1841 0 R /XYZ 133.7684 667.6624 null] >> endobj 1699 0 obj << /D [1841 0 R /XYZ 133.7684 608.2851 null] >> endobj 1845 0 obj << /D [1841 0 R /XYZ 133.7684 603.8019 null] >> endobj 1846 0 obj << /D [1841 0 R /XYZ 133.7684 482.3617 null] >> endobj 1732 0 obj << /D [1841 0 R /XYZ 133.7684 422.9844 null] >> endobj 1847 0 obj << /D [1841 0 R /XYZ 133.7684 418.5013 null] >> endobj 1848 0 obj << /D [1841 0 R /XYZ 133.7684 348.4937 null] >> endobj 1733 0 obj << /D [1841 0 R /XYZ 133.7684 301.47 null] >> endobj 1849 0 obj << /D [1841 0 R /XYZ 133.7684 296.9868 null] >> endobj 1850 0 obj << /D [1841 0 R /XYZ 133.7684 226.9792 null] >> endobj 1734 0 obj << /D [1841 0 R /XYZ 133.7684 167.6019 null] >> endobj 1851 0 obj << /D [1841 0 R /XYZ 133.7684 163.1188 null] >> endobj 1840 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1854 0 obj << /Length 2441 /Filter /FlateDecode >> stream xÚíZKãÆ¾Ï¯Ð)‘€¨ÝïÇ ìÚŒâÝq.ë=pF=Z&9!©O~}ª_T“"¥±­  ˜©fuuuõWϲÀðG„1¤¤æ i("˜ËÅÃþ/¶ðñÛ‰Ö=Õ:'ûóÝÍWßp±0ÈH*w97¤!tq·ù°¤±Õš`Œ—oÞüˆ1íÚÛÛ7õî°¯Vk*`tW´mx}gm³"zi« “¤Öt)ôêãÝw7_ßõe ¤°$NžÞ|øˆÿ»Œ˜Ñbñ ?0"ÆÐÅþ†q˜DI#»›÷7ß÷,³¯~ꔸRˆ+#&ô ÔBƒ$êA(D™`½à$e|^Q¾¬ËÛ9?QÍímc‹ÍÛ¢+Üw±ü ¼Z l–»ºÚ:…|õbù¢Š#¢°QÝjŽhR,Ûî]ížÏa?„©BgçÆ2F“8“L0È(%#Áï"‹|Ë)*‡Y ‘ÆDG¢ÊîìÞV];/ˆR®þÓr­©ÄÀ‡Ð 2B±¿IAJª§µg"pr)‡xÀKÙŒ \€Æˆ^9ž à_:˜”Mw(vçmË Õ—L7#ó¥tÒt)@T¹Aã@0¦ƒ_Ý„÷Æ:hú}øß›R¼|lê}xë>Ùø±lÿÞʪ«G»aX#mŒ9®ïwã>5ÛHó.ÛWO¿Î'œî딯ÛWô>c8A2’a¤ÑžêÒÊ of5\¹¾ÿ»}è~»‹n{µØ¦*váWÑ4ÅK‹œh€K ÐbLGRüÈݧÒMÕdùx¨º²®Â¯ªnö+²,v»—0°©m›>uñÅÚMxóg¡ñòÞ†ß0ÏnÐjÍ1]¾·q4žÔÈÏS¦‘T4fpØ­í<\<ù@ÎŒ‰JÔC¡=¨à¥¨âž5ƒÃ<cˆ!ÅÎ+©+WT€ã«Œðz^PÚKøQ?†ç“m€ï¾kJÍq;Fª(:1.ª‘ÒŠ,„€x '‘À‹D#L)óˆ Gã¤H) oBjÄ´fsQ#ÒõdnçuQ¢hнí\d$›±¬Š"A0[äìO`K¥C­q2O¼…WÆ ¾Ž ç³»v‹"âÏl{LOÀ¯P ÜÏ8YvÎ`çâ«‘æuÑ\"I@sƒhþËf%9ðt³„yx±O¯iÆUæx„Œdêxê$w¼†Cª$G@Êòàƒ}ô~>9qÈ>„!f‘³þ•â&–§âã„‘ˆS!‡âÞ%oïån»hoµ³Öçèó£ï¿·Éƒ¯È÷¹ KÒ+îË88Àý1¯û¯B‹\ZÎLf Å bœ—à­©Fy×,ª2®WCÕXÒTå’ö¨ªû{Û }|ž=ÑuUWÛׄ*H.Œsþ¯ßSš1*ðþ 6ç°‚€­‚¤ù‰¿òÉò,´2Ö¿RÜ#´ÆâÎ@+7 ‹#²àÝ# ž]ú!¿V£¯GW?Ž®Î‘80b º(šø½èÒ$Ë-dj> ƒÿÀK XÑøsŸŸ¬¶©n˜†öÕôú%9LŽ8úlj•0 ™6â"¤g r® Ò ˜ä9?-ȡԛ*ÈSŽë BEn-é "¼/éÊjWVv¾Žó‡ÉCîq¦ŽËÉÎÔq\@í7êÕeaSƒB¤ÍË=ÌŠíз>úT{×Ú¤¾(áyQ"™Côƒïa5IS‰è†êðôy<û¤¨bR~œÈRù˜UÖåÿ?uaNWîãx‘v g¿/ªÈ;‰꜡…‚ßY8jª:”"L”Yp`åB\¨N{úu>aâ´NøÎW§ÄD¨¢#Æ8IT—V>á:(k¦ù²)@MÒFõÒ–û'WZº÷ÆvMi}1æ«,O ŧ;#÷ÎÛ½;w qZÛÏçÞËyuƒÕ#¦0}­º{ú ›>å;¯î¾×wVÝÇŽàu÷f å11m5 Ï›FôÍØ KÃ{_ïµ·!8´öñ° c! ÀK°’Î,R•áC×¼„ÊØÄPc½ºUç# ÿêãÈ&œ;Ž\)—Žc Ãüqœ]ùxXºmp‡vÜ1Ø€Îã ªK¹èn÷7¨Ã]£å`SÓÆu@¶‡}O¬Æ{ÍÔ5K¶hv¥mŽù*š ‚š0¡d¸sâ3ìÛ¾D@#`éåŸ~Nµk@<·“ñÏ=Ô¤D³ûÑQ>svÙN2²3gÇ$E˜bC\whªQŒ›ªb¦Ö7ßFSºâ~gÑT„ËWøyŒGê€aH ±X0ê7B]0§ž~O8UÌ)ßys¢ b¦É0>uýGHd4U¯Ã!ƒ<›°K0¤pÆZÓ e„á¦>ܯÔÒ;®I0ºdÙ¾…ã„LƒSЂ¿6#c#Žñ¥ÎzNv¯"„ÆÁò¶)!»{ÿæO‰`ùìäÝÊT†•¥ŽÉŒvŽÞBZå·¾â8¶H}õƒEx¤$Ì„ÀûäÒCˆ;‘S×H™—XöÏΕ­‡> ¸&k‘Öˆ"¹Ì±.ºõT†î‚ƒ4ò‡±r ùÚSñõâR…bk‡6¶)·eWþËnŽóÞ²=8ò:-‹à† ëaÛY¶E;æ$/š%Ø„ä x¿Ÿ¸#RHql"A÷òd«Â'¶\.ßO0ä I†Ã?N0tUBߢÏJ`˜ ¶£M=7e 6Å ‰–äÛns{ûò•º™‡H8g¢Ù™šÚ“BKziKéí7“7yLQ(5ÆCÊÔõ µka.Þ[ ÉÏ\¬žò¼€#_ùMÔs½|}—“q2ÔÍ |‘[7é1¡ ~ÁŸáÀ°zÏÓŽïêâÄØžˆvz¼»÷=Ž>mz.»OƒFð»Ø™»^!Š Š™ºÎý ÑÔ./\¯$ªŸy»’1ÿÿåÊs¹â¤1á3½JðêÒPîj,ó³-ÊÈQ\³ûó<Ó¢ŒR’a÷ûx½>¾CqöÝ٠Ͷ¯·—/îåº(q®ô…+:ß®a1{å]Îújp‹;§\Ü_pEá5®«mí©éŒÝ)¢LO†¼¸Ï×þGZŽOL£Ùíd#Åô øC„b’ÞßÚÊ6E—Rå:Æë»•¡ËÔ·xk‹ X!þK‘·„Þ¦ðñM”2ôÉcÀJü׋·õO/[;ß¶I¢e*û7¥â“endstream endobj 1853 0 obj << /Type /Page /Contents 1854 0 R /Resources 1852 0 R /MediaBox [0 0 612 792] /Parent 1839 0 R /Annots [ 1856 0 R 1859 0 R 1860 0 R 1861 0 R 1863 0 R ] >> endobj 1856 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [307.9036 620.0195 342.0054 630.9235] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1859 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.0217 426.9924 196.1235 437.8963] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1860 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.3739 426.9924 478.4757 437.8963] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1861 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.3739 415.0372 478.4757 425.9412] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1863 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [249.2842 343.2999 283.386 352.1465] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1855 0 obj << /D [1853 0 R /XYZ 133.7684 692.1046 null] >> endobj 1857 0 obj << /D [1853 0 R /XYZ 133.7684 575.2726 null] >> endobj 1735 0 obj << /D [1853 0 R /XYZ 133.7684 503.9401 null] >> endobj 1858 0 obj << /D [1853 0 R /XYZ 133.7684 499.4569 null] >> endobj 1736 0 obj << /D [1853 0 R /XYZ 378.2291 406.2351 null] >> endobj 1862 0 obj << /D [1853 0 R /XYZ 133.7684 399.5951 null] >> endobj 1737 0 obj << /D [1853 0 R /XYZ 284.8804 344.3957 null] >> endobj 1864 0 obj << /D [1853 0 R /XYZ 133.7684 339.813 null] >> endobj 1561 0 obj << /D [1853 0 R /XYZ 333.0688 270.6011 null] >> endobj 1865 0 obj << /D [1853 0 R /XYZ 133.7684 263.9611 null] >> endobj 1866 0 obj << /D [1853 0 R /XYZ 133.7684 196.1103 null] >> endobj 1738 0 obj << /D [1853 0 R /XYZ 133.7684 149.0867 null] >> endobj 1867 0 obj << /D [1853 0 R /XYZ 133.7684 144.6035 null] >> endobj 1852 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1870 0 obj << /Length 2775 /Filter /FlateDecode >> stream xÚí[Ko#7¾ûWè´€ˆáûa,ö°“™`‚ÀÈÎx÷’,·Ç•ÕN«gòë·Šd·Ø/µ¼Ñ,¼“À±[EV±X¯Š›Qøc3&1ÚÊ™vœ0*õlýpAgà˯/X$Z6TË”ìï×_¾‘jæˆÓ\Ï®ïÒÕÑŽñÙõí÷s.‰X,¥tþêÕ”òjwyùªØì¶‹%Wðv³ÚíÂð]v—• fçÙvÁ$m-Ÿ+·øñú›‹××D #F Õ åùùâûéìÄÿæ‚ᬚ=Á%Ì9>{¸&1Æê7›‹÷ÿh–L¾õS‡ô !Ò85 efô E[Ê.”hôÌFeTÙÃãfUe¸¹/ßçƒ"µ#VK \qâ_E‹…!FR ªÙvõ ã’Îß,›SÂòHÿ·£Ó*ü²àr^ä·aÁî©]^>•yå¹±ùTÑÅRZ6_ 6ßîªð~WÝ^^þ²`j¾Ú¬Êr…£’1mˆÒTÙkK´¡ÝB5e§nî/Àˆ„`É­"– 4vFœRÌ“æÛÛUµúb`E`U}›bûa`U†[“5_Tb‰jØUï ü|X,‡s«›)ŠÛ>ªÓ.›ySå|Ðe9˜¦Á—À·>_ðÈUø‹¨OòcxSܵ¾ÙgÑ…ómU´¦îÖ8/Œ×‰ÛïªUYå 8ÿô”W÷aäõäuÄ£ŽZÛç4oØLØ…Tƒž*º0³„r.=á ið£¥%NŒá0R΀NŒsèHס–¾C/Y•àx-°ùž°†Ũ˜¥Ë÷ΊkB©³ N"pï@Áà˜€ÐÃ$l[¸Ñm#Wâ7ý}wéœ=GIgôÃÖl,^:íN‹´šhªkEÚÿnV-­=“KæÑÙC=¬g´—JœCYJ”âpìíØ$ Á(+ ãÎ%A¡wÔ”cn–.ù;Ŭ—ì‹Ùöa§‰äJ·Å¼¾ì¥õ£Ú1oâ7èæU¶%ݽHt-«ù÷‚‡Ë™#?ä×ÏÈŒ´…¼îôˆ)pp hH@+Fó4PŸžÆÍ)YúlæÔwÄœRqsŠá9<”1H3¯që:ÛÖ^’uI"¥²G“Nc6 R³TbE*¡ NS×B‘îS¢H!ÇP¤c>´„â} ¦(€bHÂ÷HjÓ°–©QRK´Õö€¥Äà hùŽ‚7ç¡þxÓLÖ‹m#dÛ ­'àˆyƒóFÖˆ‰™@x bž*Έ5VN Â”ì*T”­,A…¯âSîòß"é6¹ xØÙ ŠP%ÙA¿üªüiÞ%;kè—é„þÎúëâÎb5Ú•A®.;2ttÚPMq¾í¨t ·âjk5'£¨B‘‚±)T,NBÅÒ@*PBN â†ì™¨8]~ ‹P±œÅöÙ Øþñ@±T4ní(–šƒhJžŠã’îœ(&]óЉbª³âóíåóÅyÅÇÌÎÑjêGÔÌÖiöi7nEÉŠg³¢®”#V”JÙXÑ!ËÕy¯êX’Ÿ‹Ï·áÏÜÔ bÎÔDý%!U;jÙsê¯té³Ù\WÜ›KÅýõ×ù¶öZIæˆ3QI@lVñVýÅé'íâë±úK *Ö_Nr3ÐÅ×Mýµ×@#_×õ—ÃF~ìâëØÅÏÖUQöîÁ˜G{÷‰@ý{F5ŸÚ’>Þ»§#9„–ÿEï^Òù`-@”IÑÙqZÊjØ5“…,o Ù-F©ýfó¯…¦¾Ó>ÄV¦?¥B ÔbJv¤B´é(kUˆRøê>ü P°x–!Oú÷É­<Dz°ž(·ðª¹5€qR1ÁS¬˜`Ô/’¾À/Ô¼ÌÀ?×ÍŒl“=dÛʃŒC6 âg?ïW›v,Ýz½3(c¼â;efûŽš9:)Ja3d¢nmÈ— }_ݽUQÜ7o¯ß÷Øk e;ì{¥U$š`ª5$,º)STHçâÇCåP6Z¨¯}å¤á =ýÛ»h­©Ó[b©iÌ»­bOÝ®œ!Ž6Ýš †Ùù¶¨Â€â9ƒ$yÁ‹ÕãcY<–y Ê-íƒ×ÅP‹[ÈWTON$_¦ôzê®:z8Î7<;컇‰&˜ éQƒÇ·¸ÆÓ-4§Ÿòú‹›øf·¿ÙUyµ¯²ÛðâÎû(*°&mùÊ’ysà¶f‹¡óH®Ո8Xn!—³:ŸEïL£÷õã¦P`U¢ßlq†èk™8Ù²ÀP…­ƒË:íˆuÿyq("«ÝO¯ýGtÈêwûí:Ø…ïbë=¦€ÕáUH0x(ʺבU«|³ïJs g!Ü™ºÒˆK ô˜êJ7dÏìJ§ËÿÙ•~1=´!#ôTW@2\œÔ•N—Ñ*ä_:ûœVaºôÙÌ©+îˆ9¥â~‚Váù¶ö‚¬‹Cfô9ÿÜTÏ·.ÁÔH9f] R ÔÝœã?h6R¥ [W²ôï÷`]]qG¬+÷;Äv¾,T øéÁ ’²=XÀÁÓ}¾¾C¨ór¤Š¤€.†*HC µÎžPB¼–‰%d]°ž¾æÅÑM °£BþÕm…"_ ûÿSè (t¦Í`(ÜòŒw„4øT›”°z à6äË„~gvW…·P¤qå:ì»è¶&š` ÇbT‹åXCh8ŽœÍˆ_V–‚¼¡Nºrà”BprâÊ‚±.Öõ•ûó‡/ÿ‡ÜËqÊåƒ8㜗‘ŒO\>0½€JDzù À†°á&»?ZÀ/ðú?Óë|×8g^Ô×8®¯üûæú‰CÞš®„éõÒA†Z¶¯‚ÁÄ´…aô,·ƒ€Ëàl¬1“M•š~'ð±†_{]~¤×±Ô%”ÃÍîH5Å ‹µÎµù¹‹PŽ0¼Ú~ùwŒ9ÈuE?}‘ÒßE4TSwmöcwÇ™6w-®Ÿî.b0²X2ÈÁßÅÐÙd?âÔŸ ¦1Š2(á)K áÕÛŠQµ\¨’¯³mV®ªcÖ-µë…ãóÚ¯¿ÊÖa Ãp`aÄô%ã—*>Ý¡Rë^\s¹ªºøïF_¿~ü0TÕÅŸ1¨ì?;çTendstream endobj 1869 0 obj << /Type /Page /Contents 1870 0 R /Resources 1868 0 R /MediaBox [0 0 612 792] /Parent 1839 0 R /Annots [ 1874 0 R 1877 0 R 1878 0 R 1879 0 R 1880 0 R 1881 0 R 1883 0 R 1885 0 R 1886 0 R ] >> endobj 1874 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.0578 498.5051 338.1596 509.4091] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1877 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [242.6289 352.6819 265.1045 363.5858] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1878 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.7097 335.0575 299.1852 345.9614] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1879 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [267.0441 311.1472 289.5196 322.0511] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1880 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [388.1351 311.1472 426.1022 322.0511] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1881 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [297.174 299.192 319.6495 310.0959] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1883 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.7801 211.0781 369.2556 223.4118] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1885 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [268.92 133.7241 291.3955 144.628] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1886 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [276.7097 116.0997 299.1852 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1871 0 obj << /D [1869 0 R /XYZ 133.7684 692.1046 null] >> endobj 1872 0 obj << /D [1869 0 R /XYZ 133.7684 604.8521 null] >> endobj 1758 0 obj << /D [1869 0 R /XYZ 133.7684 557.8285 null] >> endobj 1873 0 obj << /D [1869 0 R /XYZ 133.7684 553.3453 null] >> endobj 1875 0 obj << /D [1869 0 R /XYZ 133.7684 483.3377 null] >> endobj 1759 0 obj << /D [1869 0 R /XYZ 133.7684 423.9604 null] >> endobj 1876 0 obj << /D [1869 0 R /XYZ 133.7684 419.4772 null] >> endobj 1882 0 obj << /D [1869 0 R /XYZ 133.7684 273.0457 null] >> endobj 1760 0 obj << /D [1869 0 R /XYZ 133.7684 205.0026 null] >> endobj 1884 0 obj << /D [1869 0 R /XYZ 133.7684 200.5194 null] >> endobj 1868 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1889 0 obj << /Length 2764 /Filter /FlateDecode >> stream xÚí[]ÛÆ}ß_¡§V¬ñ|l‹>Ô±ƒ‘ÚÛ¾¤AÀ•¸»D%jCR^;¿¾÷r†Ô"ÅÝZnm§0` ©Ë;w¹çˆËfþ±‚måL;N•z¶Ú^ÐÙ-|ùí FËÖj›ýõêâù+©fŽ8Íõìê&ö¦ˆvŒÏ®Ö?͹$b±d”Òù‹ÿ¤”Wååå‹Ýf¿ÍK®àî&)Kß|“ޤłÙyš¯RxH[Ëçš.~¾úþâåUQÔ#†j†ñüzñÓÏt¶†ð¿¿ D8«fpA sŽÏ¶BÂCŒ±æÎæâíÅßZ—Ñ·õ£CyÆiœÈçƒyP†p¡D‡Ý ãù+ÅbSF¤Tü£I–¯“*ñfÜ͘ fé¯ûd³X ¦çÕÎ[ÃwkÙçÂkH¹èYg™6ù~³ùdž?O6ût aˆoNKEíüÕ‚©ù®ð‘dy•âõmZßPóêÃ}ê¿ZÕ“]†ˆïÒ"ÜßîËÊ·®ÃÄÜé²vö>+«,¿Å€†ÌA©Ãq Fƒ±\½þû?’„ró-×~xÀæ®XãÓT¬S`ž†»wiY\[B%…©“ŠpK¹~UÜ›7$ZûeüÀ1$Žýb쯾»z{µDqÑ ÅÖjª_*u’uûÅéö y·à æ|Áæûôܲz¾ÃzÈÊÔ[$ý…u„ öèµö¡û­S”UåË¢”õÂ\Á„¥s2O­ÕDçW˜1¶Û¹Çà*½¯²]€X©*=¹ƒ5Émð蟩îŠ&õ!¯W‰ŠW‰ªã.©1]_ßï`ÝøfX%8 ‚bÓY „¦a\MA³1_FöCéy¦€å§•èußËwktºSÁaßvÌt: ¨„TdeØBîRßøîåË—¾õ:yÝdRÑ×»j™,_ï·×i×,ì°6(¢;/éû”àótþ6Mý™Sw‚•?œ²¿ôW¿<Y•þ“ãÃÃonöùÊ#¯Ö»Õ~›æUr¸uƒÓí®Î×i•d›’e ¯qtmhŸº8l¸á?~LÍãè¢Eá¿1t18b,¤SAëô;Wäù#£=€«í¸¢hÄ’®&A‚yâŸu%¶ ñ—u¥€‡»luç›@ï2´ ¦PZ G€3µÎ>‚9ͳt“b©R†>³ºà‚ÖuxW¨¡ *„ÓWwk¨ûM²J×~=dy¯|Â¥´iKVÝõ¾Nîï‹Ý}‘%ÕÑ Õ€Ñp2!%µSŒ¢±_Æ T™G~Gk[ g\¹~ýâ¶±šêæÆ¨n¯‡ê1*DG÷:þñHþœN*‰R‡=Y¿¶›À–SçÆê×`Å(QV©Vg‚œ±©J·€×*¨,^<Ú«e#§ü9,¯¸ ޤ,ƒJFu1ÌŸó·a¾$ŒÁþ/¡G¡x0x‡¥ö.[{‡±*ìYàåeM;ü÷ÈtK©MÛu,ö0 ŒËêcµÇˆÎx¨iãó›Å³(¡,vµVÛmv^zéù‚úZ3Ù8Ëßìà>”CþL1—ê´¿%·X•æßvBI¡ê’¢îb!é|°àL6ÉJ’†£ßN§ˆ«&Ôk™úØÑ4ÒĺÝjÇ•h½zþ9¨S×@‰ u5²:!*J£‰âÜo+ Lpƒ jj¸*ŠäC³S7µL0)WÉ&9T8,`¡¥9t0¡/4öËøáÈ/à~ Æid/„>Á FSýö}a·Ï|à(Z¥eYË0x½ÏepÝÛ¤O0v 3Â2S”]>вK¨|³l‚²·fO¤ì±û)Ê.AÙ…›äìæÉœÝüþ8;‚È:¡&8»0xKÙc8{ìò\$ë(Ìá:¸æ98ûùÆòÙqöóˆo‚ÇÇ`óhµò¢9‡Š8œÜå8Š"gCQ?ÊÅQ¶(*³ßBkwÓã€EÇÞS üùüuËCP† ;-IVŸXö)òPìúl˜ë‡;‚¹8ÜO oh_÷F&`Blü»Ñ°<$)ÆåØSô¡Øõ¹Ðuîºâp[(ÆQ»—EÑ Ì’å÷ûjr³+Óªûʼn w³çKØ*C ñ–OÈÀnPúµB|Jˆðˆ ¡GŸ”!œVÇ2„<~9ç AHÖh–ÍW¨Qäõž÷Ëj}yùÙ9RÊ"©ß½ˆŒiC”¦êÄX;¡ º¦ì±ƒûðҠˆå‚ueÍ“zˆ±íë9ãzˆÒ­È1¥‡PçÄSü È ~Q÷²ú1R„P°é))"²:!E ŒHa‹‰¶©¦r‹6Ÿa‰¢HòÛ^µŽß²{·í 2“®ªæ‡wÿ2EÍ+êEoˆæ2*(…Æ·Œ²mR|À 3ß—á.:ÆÏê®~ ZþÓ­nà”¼¯;\ûÙõn4ŠÞâpªÞ½kƒ î£AÒôä—Ù æÖß)Òû4©Ú #1,©ª"»^pØÈ1É‚Z|Bäkߪl€Ï5ÊÛ,†wMÝ‚Û$÷k´¾Š~€«¤O4ÅLÇkšÔC€V˜‰?áofžÝ„xêUD–Ýðý ÃÚ·™K.|Rñ³Úí|£Ü&µBÍ$÷Ÿ½×oð–ÿÉ[õI'T÷}Aõü»›à¹>1EóúY·[À"K®7ÁO=‡( =Š1 Œ'„ê¾öd®õ9îjùŽÏfŸÙ¸ÄÔj>®;qX~NsžWE¸Â3nBu FOÔœ®ÿÿ’ÈgS`s!‰RJNN\X‚šú#ô¦àñ¬uuìóD]¢<ŸÞt¾±|Ý4sN8eSzç ö,û½)öx6õ£AQeK´òúµÂS5Hƒ®pºwnŽ…ŽJuygÿWŽ< e¾´So'qØé¥Oz;)v}6öÃ`î'ŸÎ7´/”Ê3§ âv‚Ê3cˆÀ?ñˆ©¼ü¤T^Qy-¨<Éväf€Êë–ÊS`óºaóÙ| ò:PyÏ¡†<ÀYq’ÀG xF5Ÿ’>Mà—bíûû%ðX¢I  >6;AáMàK±c¾Ë«ÿ˾ËßÅ—ÃßgÎ:|bð‡s:›ü¥æ±Éc€2"xüÇzš8ƒBåÍqT˜ÛoÓ<-`‡ qó÷ W Çç"ýMºò í? ha¾Åô%ã—*\Ýàl7ÓÙîHþÔ rÐ7»÷n‡N­ðwv û7£S—Uendstream endobj 1888 0 obj << /Type /Page /Contents 1889 0 R /Resources 1887 0 R /MediaBox [0 0 612 792] /Parent 1839 0 R /Annots [ 1891 0 R 1892 0 R 1893 0 R 1895 0 R 1897 0 R ] >> endobj 1891 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [267.0441 642.1271 289.5196 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1892 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [388.1351 642.1271 426.1022 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 1893 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [297.174 630.1719 319.6495 641.0759] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1895 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.7801 542.058 369.2556 554.3917] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 1897 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.3685 473.3698 279.4703 484.2737] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 1890 0 obj << /D [1888 0 R /XYZ 133.7684 692.1046 null] >> endobj 1894 0 obj << /D [1888 0 R /XYZ 133.7684 604.0256 null] >> endobj 1761 0 obj << /D [1888 0 R /XYZ 133.7684 532.6931 null] >> endobj 1896 0 obj << /D [1888 0 R /XYZ 133.7684 528.2099 null] >> endobj 1898 0 obj << /D [1888 0 R /XYZ 133.7684 458.2023 null] >> endobj 1762 0 obj << /D [1888 0 R /XYZ 133.7684 386.4714 null] >> endobj 1899 0 obj << /D [1888 0 R /XYZ 133.7684 381.9882 null] >> endobj 1900 0 obj << /D [1888 0 R /XYZ 133.7684 258.8643 null] >> endobj 1763 0 obj << /D [1888 0 R /XYZ 133.7684 199.487 null] >> endobj 1901 0 obj << /D [1888 0 R /XYZ 133.7684 195.0038 null] >> endobj 1887 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1904 0 obj << /Length 2058 /Filter /FlateDecode >> stream xÚíZKsÛ6¾ëWðÔ‘fbÏ%àvz¨ó˜öÔ&ž^’h Ž5#Q®HÅq}HI9 S»ÇCZ,À‡» ²„âK˜$-0œ0*!¹\Mhò|=aA褑:‰Å~9Ÿ<%UbˆÉùU¬M0Œ'çówS.‰˜0Jéôìì=¥¼,NOÏÖËí*Ÿp…­Ë¬(|ñ½²›ÓS›_ZìZó)°Ù‡óß&/Ï‹¢1’R`Ξ¿&ï>ÐdŽæÿ6¡D­’[¬PÂŒáÉj"$vbŒÕ-ËÉÛÉÊèתk×<È4%25ªc8.”¨æ!+ËÍâbÆét[âØÕÓEáŸÛÂÎ}©\ûçÜ–v³ZäAðz=ãjzë+«,Ÿ15½ó5»´+›—AS¶ =n7‹²´y[«Í.¯}iãþˆ5‘NWÁž|ž•9qóC>aŒ¥Xe~±øÛ¾§Šâ?ÃÅPYïžåzí Å*[.}1ËýÓ:K?_Ú›r±M·‹Z躧š–×Áœœ8;`úëUÐ|m}ᲆKôÚO®K¶YdË çv1/¯Ÿ¹²‰º:›Zãñ° f èÜTY_ õyþÆ º›oWs3[µV3ëJa(3PSr€[®IªS–(CI¬f‚8ü1M(ç¢ \9÷híJNÒ”c ¨&ÒÝ Q¥‰F4‚ðh r˜þï3.qö²•ÚŒ±iq`lʉbT$±úƒ=ÁPj4š|@ )î-û†Ib¤ìµ{)1‚ëÃaïË3ÜbÜQRÜãà½8r#ç¸o ˜û±`8s-–øw½j;"äõZàûÑdUëmU+ä>ŠD´[us¤`.j’€R~Õ=¾VÙ µ™$Vù•fÖ*ÍlS¥"¹‚¶™ç×a?VÖ¶6Ú…ÝmZä·ƒ-†üŒH>âXÜâr–"ÆwgÈ £9‰)胮£•(͉À ^­RâmÑ¢Hãh(Ú·²E±•e¢|»º@’«Êë«MïÑøíõ¢æñ¦iw:”1,7ÚøòÆ%0"€™ä) ­:þä%Z¯@gFRÊ»›£å½Î· 1°PÈùŸ;⵪>9Çl½˜{…ûÓéiÍGø£sQg•ìÞ+cD¢Ûf„© E=ÂK¥¢5ÆÝÂDîÁ³Ñq¥"MƒÜrìÐ…®€âA(<å.}uA˜Õ2ú+ÀP“Ö§‹*n; J¨1⨡‘¾À)ªâ”Js—^D×ÐtQýA©b¸†«#±t,6CJƒðÔóIt¿è,Ô6›ì®}Âùøh¹µEÛÔTºn²ü£:ëÖ¬Vˆsc/Ëu8JCPVÇV¸ø\úP÷…-³ÅÒ…¤* !©+T zz帆X¡«/ò›m‰!©Äpd/ï|ë£S4êÊn|R ’ ªªÙ5ä¶Š ±Tźø,¶77µŠ ¦« Ö7¹±Õ?uD‡g'~F£8‰qÅ8N‡ˆð#Q\#ö…Q\¬þ)Š{4NÃpG¢8)áTóûDq±Ê±œŸ3»Ÿ–™cDqãåûŽâ$S„ƒîA‘ÄIT¸»$no­$´Ïç~ 픎†£=;{`ÛÙÀÈ“w|0uo„xƲÿûŽÃ$åÄ0)Žd$¢ð”¸G Ö8rö­ìNlåCeÆÿ÷›ÂßV;2^”×ëm ím>·nås—lp 7›õ¥-Š"¦ª_Õïšû étn ¤¹áÅ„‡‘4á&-ÆK¿)ãAã r †vŒ ã!¡uÔ¤géƃÀx~±»xy…i1Ès‘AÝ<Ç(ðcC‚až£Dª4mç<ŸxîëyŽß‡çxê<8öS,6Às¸Ë !F­á ¢"|´Èë7UíËa=°Ü®cÍrM³\¤©çEžåÜW0m~ÂcëÈzFÆ=’D¯2Ÿ)9N’‘ðI2£‰’©j‘¤~ºzºúž¹¡kôî‹Å¸FkZê÷ ^Q>Ü”`ͶTœ…Ïûa=°Ÿö 5ûE}"ökZùûa}Ç~Bµ‰ìe?¶Ç~{>¢| úsMÔÀõš(”vÞÆÐäh¦ù¾ŸÇÆ¡ŒŒàNÝg…B´!Â9¬nâ^ÛÜnTÃ|Ô³v>3¸$aN_ØK_ÿà”1_bpÊø© µê*°žÀÆSôé“O¼X¾ûØ•> ïÖ¦Eö/£endstream endobj 1903 0 obj << /Type /Page /Contents 1904 0 R /Resources 1902 0 R /MediaBox [0 0 612 792] /Parent 1839 0 R >> endobj 1905 0 obj << /D [1903 0 R /XYZ 133.7684 692.1046 null] >> endobj 1906 0 obj << /D [1903 0 R /XYZ 133.7684 615.3781 null] >> endobj 1764 0 obj << /D [1903 0 R /XYZ 133.7684 556.0008 null] >> endobj 1907 0 obj << /D [1903 0 R /XYZ 133.7684 551.5176 null] >> endobj 1908 0 obj << /D [1903 0 R /XYZ 133.7684 451.9305 null] >> endobj 1765 0 obj << /D [1903 0 R /XYZ 133.7684 380.1995 null] >> endobj 1909 0 obj << /D [1903 0 R /XYZ 133.7684 375.7163 null] >> endobj 1766 0 obj << /D [1903 0 R /XYZ 346.1697 306.4049 null] >> endobj 1910 0 obj << /D [1903 0 R /XYZ 133.7684 299.7649 null] >> endobj 1767 0 obj << /D [1903 0 R /XYZ 346.1697 220.6551 null] >> endobj 1911 0 obj << /D [1903 0 R /XYZ 133.7684 214.0151 null] >> endobj 1768 0 obj << /D [1903 0 R /XYZ 346.1697 134.9053 null] >> endobj 1912 0 obj << /D [1903 0 R /XYZ 133.7684 128.2653 null] >> endobj 1902 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F11 844 0 R /F14 944 0 R /F73 1481 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1915 0 obj << /Length 2361 /Filter /FlateDecode >> stream xÚí]ã¶ñ}…Ÿ~S\´Ò»$hЇ&·@.÷ ³µ»*lÙ•äl6¿¾3ü([Ön{·½øAÔp8œçKf ?¶`B£s¹Ð–F¥^¬wWtq“ß]±€´ê±V)Ú_o®¾úVª…%Vs½¸¹M©)¢-ã‹›ÍÛŒK"–+F)Í^½ú‰RÞµ×ׯöÛã®^®¸è¶h[?ü±¼-›%˳²^—°Hç9Ï4_¾»ùþê››ž£d#F Õ ùù÷ÕÛwt±ö¿¿¢DØ\-à…f-_쮄„EŒ±Ù^½¹ú¡'™Ìº¥SzÆi¬šÐƒ2‹ô ÅXÊ.”èõ?nƒ2ºrwØ]‰Â}õ-ì<(R[’k)aW\ø'1ÚÂ#© Ý㡬‹(ŒKš½™ Â)‘ó€ÿ— ‚°£Õ* ü¼ä2ÛWOðôÔ®¯šªs»±ì'ªèr%s–­÷K–Õmçám·¹¾þyÉTVl‹¦)pô8ÁÓ†(MÕŒ¬#Ö¦¤3„jÊž+Ü<‚ ŠçŠä\ ±3b•bµª7EW|9A‘Ãä*Àzïåæy»\wûf‚Se‰–ÜÎ t£,Û}}7¥3T™T³'T¦6D(íÁ³û÷²¾ëîÛ)i•&Æ2yÆÕˆä˜+4™½í~Üãóa‚.ÜЙî—(vù¦ƒ ñ´ƒJÐÜÅ!§„¾Áš“YöíöÑOìoG3Dzõðªîö£¥ëàØôPu÷ÚÊu…*)7~ª>îÞƒ§s“ž¶Ÿ×5U$ŒLueí1¥3&vdžÍ¹yXj•‘~ÞÍÁuàük0^ ÀiV4¥ dá%2o3wQS+ mõk‰wۊû¬„È{áο­ßùå¶ÜPí°õj,†Žž› ¹sèårÀúΔœE¨ÎVŒ€×ª_o»ûýñîÞƒMµ+šjûèׂ€e½Aãä-\I~hŠÃ¡#vàu±Ý¶cvÇmW¶å”Ò½4Uñ~[®ªM¶´ÈÆ7„ªãVeU¶)ý Ø¶aç÷¥ÛÈuä)ú\D;œxH´*ƒUMèz8 ·Ž6nÔËç_Í~]¶­ ßÝMC:cÅ©pþnw§ÂÖ¿t÷U;u>·ÇzÝUû`…E½ñƒ*šp¿CoÔ›`Ô½^î‹%§á~ÆE8nÚžîÃ}µFdñ/G𨣺ܤÛ9ÿ©xA×°…Ä”k>©ÁÜ’å„r.á qð1 hœÃ1çÔŒHš_Ì4^†:û¦oEa‡Ù4$cgÌN£b‘’? «\Jmì$ ŸÅ^È„˜€œ˜Ib¥°ÅÆ]‰š x®œ°ï¡æûDé¨Åëø|™âŠËÄ Ö0Þ*§LˆÂm…JD J€ë3>I[a"mô8Ö„ìð²‘%›~  ƒ• rÁÌRAºhf}FcÌð9Åü*•E íqízÿ4œfàÓûÑ”ò²Ø—ðyªRÎÔ‹…"”J†êÓ¥9KËLêÊ̇Ëv™þhÞï”Ý v™²ÛÛe¨iÆV4çgÌë£Éö[2/Pšf6EŠv#¬"–[ñD3N˜œ*mÚŒôE›qúR3N#³íðÍf¢§ûfÜ’eý8ûq–õM)Î7¥䀖åb¶+•04Ý‚cTó§DÒó-8J¤2æÿÒ‚Ë?Ïœú”-8¡%Ô ’?Ñ‚KÑfZpBJÂ%çi Žsëš‚ŽÛ)vÁ[Œ 0÷=,œ)< oZÈ÷¨:jÀáTŸ$´ûûNÎ"êå–›oòÿmè81:N,Ú"-ü#T®=¼g 8––ä*,ô§`¶ïO9hìø7×Dœ~—DðîÕóådKð•)]c ê.„àÛQñ¥=€JЭë`ð¤ÌG•†™‰Öè©%Ë•B'Y–Û…GáNuz—ù¸;ÁöY1óÿ1%Wùyp‚—¿ÁdˆLfØW¦~ÂÂÚÁw‰IŸÉ¸Žj&4ä„ cžt–Z«è€ëoÂM›¢†!“Z-ï÷Ï>/s¸†D3Äù˜“¢ÍÄÈ…ˆFŒc÷¡ƒe¯Vዜà8àD8Ï dÙ¯@o=þ5%X]xÀ8š±!HÁ\ Rü$HZˆN¯¯eû•tN|3–½O}%úþ›yÿ/À;iKö£è}?²ÃšÎ ãNS}¤“¯æç'Ïs‹}3¾5#G·ðÏž.óÝaná¼½á~¦±dÒ4@'P¿N~Ä¢‹y>øÏf©‘Q.3ý?ÜH#ò‘‰E®PÅß•uÙ€[ $c„¸YZžƒ­¼.×~ ýƒSÆÂéékƯUx»EÍEÃì;K¾ýŒòõþ—Ç»©¯1á¯p ûݘ½Xendstream endobj 1914 0 obj << /Type /Page /Contents 1915 0 R /Resources 1913 0 R /MediaBox [0 0 612 792] /Parent 1921 0 R >> endobj 1916 0 obj << /D [1914 0 R /XYZ 133.7684 692.1046 null] >> endobj 1917 0 obj << /D [1914 0 R /XYZ 133.7684 468.2928 null] >> endobj 1796 0 obj << /D [1914 0 R /XYZ 133.7684 400.4125 null] >> endobj 1918 0 obj << /D [1914 0 R /XYZ 133.7684 395.9293 null] >> endobj 1797 0 obj << /D [1914 0 R /XYZ 338.6977 302.7075 null] >> endobj 1919 0 obj << /D [1914 0 R /XYZ 133.7684 296.0675 null] >> endobj 1798 0 obj << /D [1914 0 R /XYZ 338.6977 193.0474 null] >> endobj 1920 0 obj << /D [1914 0 R /XYZ 133.7684 186.4074 null] >> endobj 1913 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1925 0 obj << /Length 2108 /Filter /FlateDecode >> stream xÚÍYmÛ¸þ¾¿B@« Ä ß_½m.9ä€C¯£šæƒÖ¦½*diO’³»ýõŠ”,É’µèhᦩÑpføÌÚD>$"Œ!%5¤¡ˆ`.£íñGxøã BëNjÝûóææí."ƒŒ¤2ÚìûÚ’†Ðh³ûSŽøjM0Æñ»wÿĘÖÕíí»";óÛÛyuÚ»Émjóú}fðU­ÖT€t–Taxg÷¶\Û|kWkÅ™Ž%[}Ùütó~ÓÚ[Ÿ …%qfþzóù ŽvàÕO71£Eô?0"ÆÐèxÃ8¼Dig²›O7íTöž6¯N…‡+…¸2b"<”N†G(D™`MxꇜdTÇÇäÅ T|oýÄ©²;?ڥش~°¥ûº¢"NÊ4¹Ï ­” èóŠˆØîÖOé®~ðÓÛ&èZ­gñßlîçŸÊ´Nóƒ×Z—:\ Á×5!ÈA»ƒ^jhÐëÇeá¬zªÞ€Lãtï§Áj?ÈOÇ{ç€ÍCÛó¶ÃlÃðRá¿ÿõ˜”uº=eI9XÊëHʰÀÞ6³íõC’ͧ!ìÖCËÿû•q[imRû±qv²oüïîµÒ“4o¢æ~ÚrÓ|,Ý™ ?žÒ,ó£¼Ëܹc±K]àí]€›j¤´"‘0a£Ìr %aJY#€¨p2îkÑ)Ea$±F„bÚAV¨Hd%ó r˜‹Ý/+Ê!àÉÑÖ.+ nl¬¢HÌ¢¾ú‹Ä¡al4˜Ó3ø‚|$ ƒä"Îg½v‹"Ƚt{,O ©£³þë‚ç <§ÜFš×Q‰D’@äTòß½ÕÚуí¬þ=ÛaûÆPUdž€¤ÏDáë•dð”r€GTS¿ëi¾Kêäb§ò„!&ê«üf¶*/Íò©‘ˆSx:0sÓæ\c­OÃb˜eŽïj›] Iú ]q{K‰ˆŸÏÿ)ŠÈ7E‘Òˆq:"ÙÍ¡ôP-›Ýqä”㪾+žæÁtÖüͰ42vJ}c;ún¬®ê .ŸšÇÖ·òìÿ ZPáq¡¯ž7f€[¸Qjî¼ r‚ ¤cmÉ܇…2²¶ÇÇ,©­ òÛ¤:i–pJàæÅ?x‰Ápœpl‚@ýòhs8Ç`ó¸Š?M(„úOB¥æÅÿ8¡Dkõ}u'c‘î¼¾Ër×ÁÃþ©,WX½¸jK@—À«57j‘¼A¼[Õ»ÛÛ¯v[CMwiѨM¯ø¹¦JÂÉ)‡eWëVO Ž vL»­Ýp^¿jD 09 ǵÖ]äÖóɃ„Â4~ç%l´ðÇЛ EpRƒIíVdÔf—ºàȺܧ#ÑБû~ZqO)gP}.à­¿|ì¯:+f“ž`Ç2^&wq;,;|d¶ºÝB¦‚nR/la_lb ÀK}ÖÖ°)¥âb]áZ¦Öm¥×ÕH*1\Ö§z˜wYB;C [r¹'vÍåVlÙå«ëž]^X7¸Ü_6¸¼}~žwZD¥1KN÷Ä®9ÝŠ-;}uÝ³Ó ë§ûËz§7+Åãk› '¼ÄøuÝn)š`¤„2ƒôÆšªßpÿêØ;$: ïìhÝ–Íõë¬+D"­™Zڞض¥Æ]À0O·ïŸ·öñÌJõC( ZþܘæÜûW§ÇÇ,íH©¥³äÜ®…WŠGÇ^Ý-Û9U­ò–®w8° wt£#jÄ­¿KómvÚMµ*€-e4•Øz®PéÓÆ¸XWHS¬®”<°ýŠèæ®­gÝÇüÁB’æR½ñ,Merk6n. 3Ïä”SÄ”œü‹ADøí¡»ydãX qM\!2ѯîbž`Þ<ë ›føÜ¢6o?YôC½kÔë£ÝÝ‘Pnà¢5 ^ßâB“Â^•¥D(ÚñR‹ ÝTúøÅ×MéÖçÛÏ6Ü’ÃøÃ)ß:\V³‘uš8“zÆvJÁvÁÒ’P -á ÌÚ‰-2k_áµ=ô3å!<ºð¯çÕEã¼ØÀ¶yˆŽ-¦^ÓЖ]³xÝI-Õ¾ƒ9E ªÜ¶»‡ŒúT—] ôݱ:„î‹"ü3P¥˜ú}]žìÕ¦NZ3½ó‹W~¯ý¬L£ýÿÿ ïUL ÝZå<ÿqX¶üºYŸíü`·~ ýÅ„ø‘·„ÞŠð«ÙÏ1+…нUÅóËaên7üG7°ÿ;ð¥®endstream endobj 1924 0 obj << /Type /Page /Contents 1925 0 R /Resources 1923 0 R /MediaBox [0 0 612 792] /Parent 1921 0 R /Annots [ 1931 0 R ] >> endobj 1922 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1InsufficientElements.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1932 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 182.65000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1933 0 R >>/Font << /R8 1934 0 R >> >> /Length 1935 0 R /Filter /FlateDecode >> stream xœ•OMOÃ0 ½ûWøŒ“¦ù葪 Ž@ÿAÕNEMÇÖNãçãÐnZ%.(Šíø=¿<I!§³æ&Âã»ÃÝŒ/rwpõKÀ55Ÿj!y̱au˰B¥)d™EåI±µXG¸+Ë®Ÿ§¢(÷Ã)ŽEñ:N§®ë›¾çjh£¤é¾þ„ª†7Ð9yk=žE²‡$š3KPŽ’î±…:R†,çâLQîÌÆÑ³Äê»i¿æ~?^-$ÝL†Ü_/û±§ó,.Oç,1„¹i¬øE÷Š_ Ï<¹€AVМ(ÚX)7(„•îAìþ/c endstream endobj 1932 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161253) /ModDate (D:20111206161253) >> endobj 1933 0 obj << /Type /ExtGState /OPM 1 >> endobj 1934 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1935 0 obj 239 endobj 1931 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 117.7083 241.8818 128.6122] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InsufficientElements_adcff54790608d00d99a0875aca20d637) >> >> endobj 1926 0 obj << /D [1924 0 R /XYZ 133.7684 692.1046 null] >> endobj 1927 0 obj << /D [1924 0 R /XYZ 133.7684 615.0045 null] >> endobj 1799 0 obj << /D [1924 0 R /XYZ 133.7684 567.9809 null] >> endobj 1928 0 obj << /D [1924 0 R /XYZ 133.7684 563.4977 null] >> endobj 1800 0 obj << /D [1924 0 R /XYZ 346.1697 482.2311 null] >> endobj 1929 0 obj << /D [1924 0 R /XYZ 133.7684 475.5911 null] >> endobj 1280 0 obj << /D [1924 0 R /XYZ 133.7684 343.2002 null] >> endobj 258 0 obj << /D [1924 0 R /XYZ 133.7684 336.6001 null] >> endobj 1930 0 obj << /D [1924 0 R /XYZ 133.7684 136.712 null] >> endobj 1923 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R /F58 909 0 R >> /XObject << /Im3 1922 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1940 0 obj << /Length 2030 /Filter /FlateDecode >> stream xÚÝY[oÛF~ׯ º@!Ñdîa³Àn.P ›è­í-l©’Tcï¯ß3œ!5”HÉhó°X±‡ä™™sùÎÕ$Áð$„1¤¤æ‰4Ìe²ÙÏpò˜‘@´ì©–1Ù¿Ö³÷÷\$Ie²Þŧ $ ¡ÉzûËœr$K‚1žüø+Æ´©W«e~Ü«ÕC±àxþÇ‚àyšgÛ»´I× Å篻XR[ò´®ýò³ÝÙjAôÜøj°$sÉ¿­œ}Z÷ÜFL¤€Æñúûì—ßp²Ñ~œaÄŒÉWxÀˆC“ýŒqØDéÞä³/³÷GF_Û­c:bT"Á[q¤AOcTD"ä€õ¨š¥‚Ò€š…B” Þ«YDƒš%oÕ¬(Ò\Ó¤'sjþô²±‡&+ P—óMS‚®™¿óχjÁÔÜ:ý¿ØÚ¿kž­_ÔM•O~ýÝý‚‹yÖÔŸªÊ­ÊjµX2¬çEÙx [”ǧg·s›Û½-šp`}<òÌnýÓ8h_«¬±ÎN '¡MËsypóÔñí®|çýhÝvDzö¼Â¢>ØMæÄØøç½­ëÔáçÉý°î84 jVÔÃQáLà~ƒ="öVPÞ lvÂÖDw`爸ßÙ&ÍòVTÃS½©2o¢Iþø—áâ–Fd-g”޹!¨)FÕ>Z}V傊ù×ðœíÎô¼W ?Yž¼Ua¾zã¶KgÎôtEü6·7Ïiø¶µ›<­ìõ°PHR~n·b@qVmŽûºI[wožlá.± =~·v$„WMHÔEøQf[ÿêXxz€RcûGûì)³òX…»Æ†¥W >Ç2, ÚcyDøM¹?ä¶q’¶ð~hÂûN¶SgÄf§ìÇWÿ»²uö²âp ç¥U•âôp¨ÊC•–ò×…¼æ"£;D´W¼APåü›Ÿ¼vÁ¿, ÎÛÀÔ:Ä÷½_ ^ß•`rˆ)éUOq÷(CGXF"E¹z›\” ,•¹%fHbÃ"ÁzGËkõq×F© Dù¢äÔ{œáù¯XàÅ’K  Uù—_ºÐÌ( ´ñþ^±ˆ?†!ú(¬@*ÇØ¾~zç©R€ˆ>ˆË29jI!^h±yìBXÑxÛ|gë(Ü€!„Ö`J;Æ ÂôD )™´,wQKJ}#ÆdWb —ò²”1ÐpŸ#¡üxç‡éÓ£ m|ïj°èS¤a"}zô©Ñt©¾ô©vD©Ñí?Q óA^ß'#iñM)ñÉ^º=ÕHiE)‹IÎÆTÌ+qˆF˜R~Õ(RŠÂŠÃŠi©¦(ÐõdN¼Ÿ”CÌJ÷Ö…X(Sê f¡Ê³$>þPual4°1|„ Xpd83“b»[¡B£#㢔|Q‡ÃxÇÅÅÔå_âÐÏ4o«D%’T7¨DÿÜ®(vКäÀïÃɾ[v;†GÅè´))‰‹ÔȃNAÔ4øŸV]tº03t“ÄÇýE»#/YÆ#!¡ 9äñŸã>µÍÒ§¢¬›lècïüÓ±>¦yþzæ—›6øuP?—+`FKú ew@ DCœz•ÿ#Èa 9Xó ÈAÿ$¤½b Š8{M¢.:ñ›¡îœË ÔE\öÕ7dÏ)(àŠf€µPo?[Xu.s46ª?¶GîKõH>ÇíjG¾Œè/™½8Õ1{ÿ°þ²ZýѦÉ걬íOåöÛÌ@ÐÅZù9oš;¢ë\pܪž U ìÚ-u} $c4íißÌÞÿ+žvæs£$b  J( ½V×ï Êîa«×<÷íÌióµÚ„‡®-ëšÄªÜŸÃ]™ç¾ãìû^¡9\M–‚Ì 8ôø,%’;&‘[@ ÇP(ödm J©¸¸W@‰o˜ºqoGuó^¤Ãk}€ž§Eæ qk“]¹#»-òÕ{O"߸7ˆ_DÞ¼¼L Íâ„è7õk1qWnŒ”0g0ÇÕnHò–!$£ó6 †\‡!$´=Ý–Ÿín¡ îµ3ÈIy°A’uˈÙ¥òì-cœÞe³0X¥^¦ó™NÓXÛBF»~*ãoþ[Vlòã6tw$μe4 ÝÝßG΂8ϱ ±œÄÒ´ïfÿá)j#ÄD[óG3£‡’bÖ ŠBÁýÅ™Z¦'Ð46¾ÆÎøÓ‰2í'c†üÎ$4ÖKaÛÐA·qN eŸ&Üσ“ßèAzÖ~Œ×mj9•Ví‹÷{žÜ• ’8`èô])»l5¦&Æ#®{᜾ÉßZ§¦¾Y¼2!C‹oü`÷çã#xIÞËà4?Ùý£ ãûc±qø­'•Ûžä:¿qÞ)AR¨[#RB É ªoÈžìf€Œ5#ëÆú“EWo2çɼ]é9ËÐCÛ 7Ú9wT7¸¡Ð¼Â~¦*,p7¥Ñ” Öß×MõÁK•›õ„’¶;ù¢­­Ê?¸r÷ê,H7§0ãHð…Ù7øûN ç?4þó–DF1=€zÇ•SÄç‹Ëë…¡ócEw64Òÿ¢˜¿"rEèJ„§³îy¤‚ïÊ—W¨µ.ë[… Æc û/»çbîendstream endobj 1939 0 obj << /Type /Page /Contents 1940 0 R /Resources 1938 0 R /MediaBox [0 0 612 792] /Parent 1921 0 R /Annots [ 1944 0 R 1946 0 R ] >> endobj 1937 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1InvalidDataType.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1947 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 201.01000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1948 0 R >>/Font << /R8 1949 0 R >> >> /Length 1950 0 R /Filter /FlateDecode >> stream xœ•QÉRÃ0 ½ë+tBrlÇΑPŽ…ü@§t Ó¤í´l²uš¡—N&Ñâ'å½ç=2 róôq^ÁýkŠ«0>뻂=H À>Ì+|(0±”øà±XB7,(Ú2œ ab°¨à&Ï—åñeùvóYÕYöRÍ6åûãì8+~w‹Ûâ&LÁò–~ë²ö8¬ìY5¡ÇÜ$›.q©¡ÀQËqÞÖ`ƒóœraR.¼áôJ5:ÉÚ=ó2Ró¤ßÉÏ|±;–Ûú¤ákëÈ›ûPö $•@6iYòl IŒ‘$4,¼ÞR§£3Ú¨[ÿþiÜ™5}\$#¢ûZ.Ž ˜¾ì( #g-Ó"¬¡èÔ¡Dˆ½‚Œu©Þù¨£¼c<Ó²¼SþL©ƒ¨endstream endobj 1947 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161253) /ModDate (D:20111206161253) >> endobj 1948 0 obj << /Type /ExtGState /OPM 1 >> endobj 1949 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1950 0 obj 297 endobj 1944 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 401.6122 398.7049 415.5599] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 1946 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 116.0997 225.733 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidDataType_abbb81fc1f80e951dfd27126b066e9444) >> >> endobj 1941 0 obj << /D [1939 0 R /XYZ 133.7684 692.1046 null] >> endobj 262 0 obj << /D [1939 0 R /XYZ 133.7684 629.8725 null] >> endobj 266 0 obj << /D [1939 0 R /XYZ 133.7684 543.426 null] >> endobj 1936 0 obj << /D [1939 0 R /XYZ 133.7684 521.0679 null] >> endobj 1942 0 obj << /D [1939 0 R /XYZ 133.7684 521.0679 null] >> endobj 1943 0 obj << /D [1939 0 R /XYZ 133.7684 439.2709 null] >> endobj 1281 0 obj << /D [1939 0 R /XYZ 133.7684 340.8574 null] >> endobj 270 0 obj << /D [1939 0 R /XYZ 133.7684 331.4118 null] >> endobj 1945 0 obj << /D [1939 0 R /XYZ 133.7684 134.1856 null] >> endobj 1938 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im4 1937 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1956 0 obj << /Length 2033 /Filter /FlateDecode >> stream xÚÝYëÛÆÿ~áXë}?„¦@kû‚ &±ï[:iuG@"e’êû×wöAj)‘Ò¡õ‡¢0`-—ÃÙ™ÙßÞ÷'‚¤°$NÞ/7¿ý³5¨÷ã FÌh‘=ÃFÄšín‡!ÝÎöæóͯ=Ëä­ÿtÌNŒJ$¸q+Ž4ØjŒŠHd˜°5µTð¥4`j¡e‚÷¦$Ó`jɽ©EškšõdÎÔ_VvßU ö6$_µØŠü-Ó|_Ϙʭ»ƒÛšöɆEÓÖEùÖong\äE;ƒíuíªzL4ÉïÊUUF«6¯—íÒ­pÞ~ÝÛH÷&ì<ØM¨OÏÛÛUáDY¹Ûí"Èm¼&;Û4K‡G÷Ÿ‘£é[¦iExΨîg q°« veCް&ºƒ°@$‚øƒm—ÅÖ®AMªá©YÕE0ú¤|¼Æpq͹2/¥cÎ&BŠQuzãÎ=Ú§ºšQ‘?Çgg{¿(¢ŸÁ;çga3Ü›ÿî­#ÜÚõw¢¤< ëþ©Ðpïãx²Ûê^¥øýM·oÃâЀûUm¿lÓÆ—ð3&/vûm±ìùÝ ¢gàEt«UÕ ‘ÛºéEh«È©ž DˆBŽÑQËöiÙF}c`)«¸Q•‘¦Út´q£9ì÷UÝÚõÑfñãß±ÀµÝƒ qE…žNî`íÓ1™Æ²€8Ã_ å„ö’UίøÉ´ ÇU ^ðaƒù»ÓƒíÕê°³%ðÊÝ9ÊÐÑ—!‘¢\½N/J–Ê\S 3$±a‰b½“ŽfFhœ|<ÜϸÎ]ĺôL¯Ü º¤pèkÚ°ù9†L·þÎÙåÝ­b‰¤Tĉõœ„`Ó@ú} :õnûB‹#)0vg:°Œpæ@N±Œäo#ÃÔJs† ‚Ó¡ˆÞ3ô“¥üþK;–ç2}ÞHH€BeükL×G é·X>–UÓñ9:Ù©:\-é7TÇ].{fócóð#L! k>#éR‹»b Eš`&”püf@:•rH‰”EWB‚{–{H í>þáùÉBh?s æÊglTÏÖÇ÷¦~Œ$ŸÒþ±#Ÿ'ôçžquÂÞÞÝ^,bMüP5ö§j}†mf b-‡òœv±Ñe) Òv¦gC“Å‚¸±]5]÷å5šö´ovßÿ+žvâs¥ja` J(VÄÕzPyÛ‰ö©³öê8yö“”øðhK[/û†eSW»“–fSm·¡]‹¥Nh_¶¶YLVkÌMôøp#Ñ;%Ñ[@ZÆPËõd¾J¤ô|–# Ê7L]9·£ºz.d5%†Ç†úµI•9ôB\›Ž¥d—TîÈ®«|ñÜ£ÊWÎ*§ÇF•W//ÓJ3×½ýª–-%îJH‚‘ææà¸ÚÍ8^3L[²t2HÂdº“n2ËOv3Sûü`pR'8^Bà¸v‘ ÙŸ¥rì¬Ó`d8‰gŸLà7Œ?Ü ÜÚÖMX/ÃOY•ó}Õmá> Á<ôŒ¥W?P…Àâ,Í—¼­âAñøx€›¸ßçºhC_qÒÓõ³ž ÍŸŠrµ=¬ccGÒŒ°SFÓØØýy„äŽM$Hë„Sèb»>ò/b`j‡ALøþ ™DÝ•l‹végÀ]m½ÈI„œ7Ó3Py[M=Ê ´'œŒGC/eN6 t'§´PRjÂÃð7ûâ†É Sæ_¦kŸ¶Že›ßxw·Ù‡ ²L–$è‰)°ÌæÞhjbøâšÎé«\ÙÇ zË ÓÂ14ø&Œk9<€óm}i ¾ø“x„õí¡\9·h&më9¹Fq\v ¾(Ô5—% !¨¾{{²«±7e8z‹¬áOÖs]ä½*\ Èv©§bSq: ‹bÏ{ª+QæâD$?å,þeÿk»uºq Ã¥Pÿùÿ{W9_œüz¡Å4ã7j¼oð·›&˜ FÓ?_IdÓhwR9¥ÖP]v?34?ÄèóÁÆ–R†Š +"„.D|Ú¸»; NÑt_#«êå+”m祲BP.‹1ƒýÎMpendstream endobj 1955 0 obj << /Type /Page /Contents 1956 0 R /Resources 1954 0 R /MediaBox [0 0 612 792] /Parent 1921 0 R /Annots [ 1960 0 R 1962 0 R ] >> endobj 1953 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1InvalidNumberOfRows.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1963 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 171.67000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1964 0 R >>/Font << /R8 1965 0 R >> >> /Length 1966 0 R /Filter /FlateDecode >> stream xœ•PËRÃ0 ¼ë+tÂïGŽd æ%?¥iÃÔ-%-åó±S’¡ÆcKò¬¤ÝÝ!#Ž,ç®g—-0¼‹w ;às˜¼©"È¡ðÄ„•XÕpjæÈ1¯-rC^ …U€‹²¬›}[åv}›¢¸ß|>¯›×‡CxY|<Ö³í±½¬Þ`RÁ„"î¼ÂcœØÀû¹™Z 4c)YŸå$Y§c9Î`ÊYO<3ž¡O8ý¯&I2å\’ñ#I·ñ|Íïûf»ùq†¶7–´U=ù¾Ì¸Òœ¤éhó_Ø ¤5†¸O,¢·YGg·²Ñ®?;…x“K+4›fw&œmé0®ï81È ƒÕ"áÐYFNDŒP&®ãƒ=ÒZ_Es¾è«…endstream endobj 1963 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161253) /ModDate (D:20111206161253) >> endobj 1964 0 obj << /Type /ExtGState /OPM 1 >> endobj 1965 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1966 0 obj 299 endobj 1960 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 401.6122 398.7049 415.5599] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 1962 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 116.4733 252.8511 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidNumberOfRows_a7cc6e2ce77b7c09c38fbb1d05a87f333) >> >> endobj 1957 0 obj << /D [1955 0 R /XYZ 133.7684 692.1046 null] >> endobj 274 0 obj << /D [1955 0 R /XYZ 133.7684 629.8725 null] >> endobj 278 0 obj << /D [1955 0 R /XYZ 133.7684 543.426 null] >> endobj 1952 0 obj << /D [1955 0 R /XYZ 133.7684 521.0679 null] >> endobj 1958 0 obj << /D [1955 0 R /XYZ 133.7684 521.0679 null] >> endobj 1959 0 obj << /D [1955 0 R /XYZ 133.7684 439.2709 null] >> endobj 1282 0 obj << /D [1955 0 R /XYZ 133.7684 340.8574 null] >> endobj 282 0 obj << /D [1955 0 R /XYZ 133.7684 331.4118 null] >> endobj 1961 0 obj << /D [1955 0 R /XYZ 133.7684 134.1856 null] >> endobj 1954 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im5 1953 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1971 0 obj << /Length 2067 /Filter /FlateDecode >> stream xÚÍYYoãF~ׯ f€F=}B’‡ÌŒƒ c=~Kò K”M@"‘{ö×oõAª)’¢°1°³›ªî®®ã«ƒ$ÁðGÂRRóDŠæ2Yïg8y€œ‘@´h©1Ùw³w7\$Ier·wHB“»Íï)åHÍcœ¾ÿÆ´®–Ë÷åî¸/–ËOÅœãôËœàtµË7·¥=ÿrÜßg‡ù‚ X³[U•Þf[xKtšël¾PŠâTÊùŸw?Í>ÞµìF\¤°$–Ù¿f¿ÿ‰“ Üí§FÌh‘<Ã#b Mö3Æa!¤y³›}žý»Ý2úÕ-µBBTX9ÙG$*F%ÜØGÄ5$P"‘aRÀxPÚRÁJi@ÚB!Êo¥-H¢AÚ’;i+Š4×4iɬ´?¾¬³§:/ +2“®ë$FHúæ’¦O‡9SifÕð’Už¦~Ìü ªyñàÇonæ\¤yh>v^–s¸£I‹VC&-·þé)ž›]Kÿ|>äµÝ_ât¬æ$­ýä>úTVùÂênV‚ŒÐÆÝ¤Î¿d^ïoüã>Û–ž}?|ã´zÊÖ¹½ÒÚÏ÷YU­¬!=ØÙœˆ[ 5H+*/(5²ÿˆØkDy°®ýް&º±‰Hð€Y½ÊwÙ¥fÕú{uòGÀå Sž‘9Î(òL.RŒªž­0PÌ㡜S‘>‡y¾õÏcå4 £¬¨³CåÇ+ÿ(ÊbaUXçvé+k«FO&TVqáŒ,¬‹~-ÃAáøp€3 x:ןP a,ÄUú‹‰/èO€G ©6Và$GçUNƒß´Šì¼þP®{Öê¢jí1LÑAŒgHQ®¯»—ÀHrŧù‹µ–9ˆÍ F§R‹Í”ÝZŒ­T“V}2ý <_oi•ÿg¾ð>—Ó5Äݲw`S$µ1Ãp½hw\Ä[öà Ä)ÅTW0µeðÝb1%Òç +Þ~ÈÞzòÎÆ Ø“$ß—ån`ËÕ Ã(’ì .+€‡¢öfô]ØZG®LÁ4µ–ao°ºlà| 2Fë@* ãFH b\ò |‰É.à 74=|!ÜÇ"Ž](¢B‘C2¬±àhÛP/ßÜø0¯! ¹DM„/@â~fAà×&Á+Aµ¹ø?öÀ« E‘NâtUðy,ª‘Ò Ì’ к8ü†N4”²‹žO¤?ÖÔ%±Z§cžèZ2{ßæ”§«ÃjŸÕ6Ÿ"iÕcr A0Kâí{ֹƼ,f¸gB R'&`ÀáÚ|ôÖöPH‹èàõò'06j2^Ñ;—Ú@G¬+p#ÍuI D’€ä:¨ò¿­Šp¼±¤Qü:œì›a³â ÖNÞÈ9'2Î #o`jVé\ƒ3j¯ôà.犆„^b’xÇ¿Ée³eŸË.f‰8²Ëæ]ãWETø Çî 3—d›ž§q‡h°Ù×»“Õ1% LýTü_­‰¼ª5J@ô1&(G„Ô V&K ö‹¢Ô¨5v|5c:crÄ–b&ó`66H¾õÃ'+u¨ýäù1D﹄‘بӾjìO‡‡@s— ý"^Ðç·¿¯å÷æÓÝçåÒ‡¡Ã}Ye?—›^¶Ä *ÖòŒ¥3ôk©&áØÉŸ .xX•Y•Á‹²¾àn¯¥ôŠ·u\„@ô6SåÇ‘8KÊ6jÀ½Ú6­a¯OŽg× “‡¬È«ÚÕŒvå¡ÜŸ¥ Ûr·óÈÊwœÚ„d—UËÑ´i¨™ê÷DT·†¢ƒb©Û½\®I©è*’Ò싇6DS‡jHÙEçL_° ÇñËÚ²O+5uÛˆìÒu²éû^<÷tá‰sÃãcÕ×//ã—襺ª€Œ‰›4’`¤„é8cÆVBìªÎ^\†¢°íìAuÓtö`x›mç @Ï5öF/g3…Ù”#² ®Ê ö£÷+çYQ'ÄÂ_x®ê:Û]ãe¾ÇyI¶ Þ¹ê$*ýLæÞu£¾–ÅæÌ‡³æM“ë„êÕýÎgu v鯤Ü÷ýþ•ëÝqŠAGp°3e4 Åà·{A¬à¸©nco:Û‰+¤)Vð{OÑ/XH_¸¢Àqç-åSÁ5¯W®oë 1_=@r†ãýaÚZ‘•«·¢qp£RB±j‹ C=Œ ßÐNvN ‹&Ì÷i“¿l÷ã~‹†.84÷âݧ½L>”K’(œ@’´Íe‚¼†Û>PÝL®ëg@AeèT߇HȰ¥ïgýv¼WÛåkïy?g'‡¼9këÕ¨`íFXi>Â:%H3:å Ä†wîûò`¶%›„ÙxÃK*¼¸5 ;Éœ'ëðvÉFÏy¦ ÊQ©ÍEž-Õ; ÎXˆîÊ ¼¶JïTŸÛ®>N¿±~Ra×–òižK濳iò`«4bæ®›€¹`ç›F¼Ç…o-Ù:C¢ßý¦U¥q¸JŒhIöeûM#þšA5k4hµç)oËg?hâ•/ü#@“_ùÆ¿‹>M }Éx•€Ur3ìz“Uᵟºb?Å1ê+Ûßö¹²÷ü±›©6Qónnhz "ø…»Kÿ ˜?"rIèR„ÙÖ:Ñy\†û5lU¾|…ä¸_€ó(HÕcu€ô¿î‡endstream endobj 1970 0 obj << /Type /Page /Contents 1971 0 R /Resources 1969 0 R /MediaBox [0 0 612 792] /Parent 1921 0 R /Annots [ 1975 0 R 1977 0 R ] >> endobj 1968 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1InvalidRowNumber.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1978 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 187.79000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1979 0 R >>/Font << /R8 1980 0 R >> >> /Length 1981 0 R /Filter /FlateDecode >> stream xœ•PËNÃ0¼ïWì8,^¿bçHU¤–ü”>‚ê–Ò–òù¬Ó¤4¢dÅ»kÍNffƒŠU>m$¸8ß‚Âùæ°nØ–I»J@ “Æ`5ƒã2#ÒJä@6°Ç*ÁÕ`0«wÛ²¬—û´*ËÇÕ×˲~¯Oûô:ý¼®ÞaXÁ´'«t¡«aƒi«+—N©Ü,Ó”s2öû X€ ^ž¬¨±”Õ$xÆÑ? 1S#²¶¤¢éº—{ø=™~ìêõêäâ‚nVÎs§¾[ìDž¨Ëº{ý ¶‚nœh«Hd4i³•ÀþüT»³tÚ±ˆÂ´61\\é0íø«!¯ôž2ÂDò¢œº¶^‘‰gsŒ”£;qÌn$ŸÄ>ƒîendstream endobj 1978 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161254) /ModDate (D:20111206161254) >> endobj 1979 0 obj << /Type /ExtGState /OPM 1 >> endobj 1980 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1981 0 obj 298 endobj 1975 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 431.1917 398.7049 445.1394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 1977 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 143.093 238.4652 153.997] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidRowNumber_a3d6db55872b6cdcdb5d18bd7014f1c91) >> >> endobj 1972 0 obj << /D [1970 0 R /XYZ 133.7684 692.1046 null] >> endobj 286 0 obj << /D [1970 0 R /XYZ 133.7684 629.8725 null] >> endobj 290 0 obj << /D [1970 0 R /XYZ 133.7684 573.0055 null] >> endobj 1967 0 obj << /D [1970 0 R /XYZ 133.7684 550.6474 null] >> endobj 1973 0 obj << /D [1970 0 R /XYZ 133.7684 550.6474 null] >> endobj 1974 0 obj << /D [1970 0 R /XYZ 133.7684 468.8505 null] >> endobj 1283 0 obj << /D [1970 0 R /XYZ 133.7684 367.9905 null] >> endobj 294 0 obj << /D [1970 0 R /XYZ 133.7684 359.0867 null] >> endobj 1976 0 obj << /D [1970 0 R /XYZ 133.7684 161.3537 null] >> endobj 1969 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im6 1968 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1986 0 obj << /Length 1911 /Filter /FlateDecode >> stream xÚÝÛnÛFö]_Ad‚¢ÉÜ/B[`7Ž‹è"ëø­íƒ,l’èTåüýž¹J¤èÝæ¡(D3Ã3gÎýf’aøG2ÂRRóLŠæ2[î&8{„?MHšµP³ì_÷“w·\dIev¿N± $ ¡Ùýêלr¤§3‚1Îß¿ÿ cZWóùûb{Øíçóû)ÇùS‚óÅv³º+ÜêøÉïËÅÎÖ¶œÎ¨€«ÛEU…å]Ã)ѹÝ/ít&£¹TÓßïž|¸o©Nˆ!HaIÍ_&¿þ޳°øó#f´ÈްÁˆC³Ý„q¸DiN¶“Ï“ÿ´(“¯þjŸ¬Z˜ðm° ET8@÷Ó/W©àAÝŠU¨LƒX%ëŠU(D™`XáNì­›­]€¨†]µ,7Ïõ¦ØKEĸÓ÷ ÊÓEi¯ºEZË î/KžöʪŸÊbJE~Œûæ|Q×vpûÇW„ßÒ.V"„ëa³?ì‹x°S"ò¯Å~Õ¼dÃÂ6'źƒ©^Y°±òœ%IBp?áõ‘É}*#Ì]Z»7ð³ôÂ%½—x½·ï?Ï美±åCQÙ_Š•½ É@ÆZž‘tÞD4P#„pìÀÎû¤ÊFY±bÞõûfjÿ«x\ÇM|º©†8Wˆ‰P¬ß71kÕ)ÀýѺhýÔÈzyjO¾y›G»·å¢¶±#Y—Åî,&®‹í6ÔBm/ä¢ìÖVóÁ"CŪ$#E` Öö€|Ž¥>aóÅ'¥ââ]Á 35òn5ú®FR‰î³¡ÜCOÃ,c¨¾ &c,'`×XnÀÆY¾úî‰å‘w#Ë鳑ååËË ÓÌpD8f¯êÜRà¦ö$)aºVÎÀ$¥æUٞά[¯úƧÎÀòή§  ŸÍ ò$pÊÆš˜ìŠÛ2§UÅôÿ2~Øì—EYÚeÝ3d8–›Ó\¢´_Ð’£žÖûŠZÌÐÿpn«Øß‘4ƒ™(£iìï¾ïÁñžcRg8ÃJSÜ´“?ˆŽX@™¢˜oâ`¤ÇDŽDËl4Z¦¯éðJÖÄÊQâX‡¶WØê9é” P¦WIŸµP#TQðO!À‘»"Ã7“+ð±vrëïœÆêÖžBåæ+ô\åÛ; ņ9Ô÷ qÑoDŒ¼Ïm:-¡Ÿ¥8šÂ.½+EšCèjÁ΃¬âaRD 78F´+Ó§ r€ùQÀ„zG‰Ó¨ßÜN¹ÈøȭÂÈHè<쎪X»aÿ:”³n_L £Çú)œ¹x¾{†íakÃÉqS?µ£"—Ð!ã¥=èÊBÝVzó8¥Œ7ÍxÙEÇÇYÁÖ;b ­<üç‡ÒÃCf ±YrÓïµÍ\ñOÿ¡"uq8Œ¦¯»ðÉr}I•“ÏOÝŠµ‘ÊýÔÐüEpc#ï2ü@T#aEäœÐ¹ˆ»µó¿óÔÅg7ÅËW(’/Û… 5}û/=ÙÈendstream endobj 1985 0 obj << /Type /Page /Contents 1986 0 R /Resources 1984 0 R /MediaBox [0 0 612 792] /Parent 1921 0 R /Annots [ 1990 0 R 1992 0 R ] >> endobj 1983 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1InvalidRowParameter.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 1993 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 176.21000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 1994 0 R >>/Font << /R8 1995 0 R >> >> /Length 1996 0 R /Filter /FlateDecode >> stream xœ•PËRÃ0 ¼ë+t²ãGr¤Sn´ä:%mÃÄ-}@ù|”Ô)éÐ ã‰%yv•ÝÝ¢"FÕžTçî§—{Pø$ß¶ÀS™G|(Ð)˜€åNdFÖd½ ÈžœòXF¸õa_£Mó×Eñ¼þš5õÛts|™íf±:T»ÛòÆ%L@[bk4ea [ì×&em‰`•j›æÔXeH9#ãeßVŸ‘nõ8=^qòOGȘ¼«Z_8z”{ü=¯>õf}öpE5+åˆM¯½“¶*'Î;Õý¶Ø‘8štòх휤õçŸÚ¢I£·Ù<“}]W)=&¿ZÊàIwãÉÌ•%ËN@:s¢Î_†”wÐq’„šendstream endobj 1993 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161254) /ModDate (D:20111206161254) >> endobj 1994 0 obj << /Type /ExtGState /OPM 1 >> endobj 1995 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 1996 0 obj 297 endobj 1990 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 474.3453 398.7049 488.293] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 1992 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 175.2485 246.0565 186.1525] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1InvalidRowParameter_aaf877174a872100ca6d426d554fd73dd) >> >> endobj 1987 0 obj << /D [1985 0 R /XYZ 133.7684 692.1046 null] >> endobj 298 0 obj << /D [1985 0 R /XYZ 133.7684 667.198 null] >> endobj 302 0 obj << /D [1985 0 R /XYZ 133.7684 616.1591 null] >> endobj 1982 0 obj << /D [1985 0 R /XYZ 133.7684 593.801 null] >> endobj 1988 0 obj << /D [1985 0 R /XYZ 133.7684 593.801 null] >> endobj 1989 0 obj << /D [1985 0 R /XYZ 133.7684 512.004 null] >> endobj 1284 0 obj << /D [1985 0 R /XYZ 133.7684 400.7405 null] >> endobj 306 0 obj << /D [1985 0 R /XYZ 133.7684 394.1403 null] >> endobj 1991 0 obj << /D [1985 0 R /XYZ 133.7684 194.2523 null] >> endobj 1984 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F51 914 0 R /F11 844 0 R >> /XObject << /Im7 1983 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2001 0 obj << /Length 1977 /Filter /FlateDecode >> stream xÚÝ]ã¶ñÝ¿BHƒ œyüþ0šéímp¤w‹¾¤yÐÊô®PÙÚ“äì&¿¾C‘´)[¶·í=…Äáp¾93&†ÉcHIÍ3i("˜Ë¬ÜÌpö›ßÏHZì¡)Ø_ïfïn¹È 2’ÊìnbHB³»Õ/9åÈÌcœ¿ÿŒiß-—ï›z·Ù.—?5?íêúïsCó¢ÞÙù‚ «‹®óÃOvmÛ9ѹݖÖaQ‚æRϽûaöánObr3A Kâü2ûåWœ­€Ÿf1£Eö Œˆ14Û̇C„¸RÏ>Ïþ¶G™ìG§³‡Y8&±ôâCT8@÷™¢Tp¡ÞËP¨Lƒ %ËP(D™`Q†‘ ÅÛUmW !ªaÖ•mõÔWÍö¼T„@ŒëkÊ=@ tQ:©[F‘ÖÒëöÃKiýÕƒ¶úǶ™S‘?‡y\¯¶eÓ¶¶ìý4ùÉs[õÕö!ìØ/;ÛõÈqä-ˆB’r>Üu÷X9£&·s"òäf©ó¸5¢À­¯ãºõƒ]ö4l…»ÂÁ°µiÚ¾*ú"b(ΰàLùÅQ2h¡¨VýcÀ8Œld„ ¥G#ò¢,›Í¦,š/@Óùwaç„?øãGü‰¼-€³Ö#…ÜS ín[ ÏïmYÿc?Æ\WÿœœÛú÷1Õ^Ñ€»:^$éTXÕµm›Õ8²ž«ÎF½uõ‡"® ]ÕMôø*|‹§'»• ³f-÷æñ¯K/¸!ÍÁíh ^Ͷ‰–}ÓzÏ{³wÀÑòMSî6vÛ]R¸Ü)—ÑK¤(W¯ãKPDWøbÀ V*ákPNÃòÇíœÑü7g‡ ¸Õ§fNHþüóœ‚mµÅÆö¶}H„sðç np^:ºE‘î[ïo0~ãÄôîV±„r† ÂÆ»ŽâUU8ë|xë!G<.¨bHEÆŽvß4õ^)B³åñvH·½WÜ··NÂh­U€=Û È­pKΫb8Nu9§`b±À)àå(3"óÁ9Îß´ôÔÚC¼ê<ÈàÉnÐU¸ñ7·Uß}hÛ¦]‚Ê8=k·Û¬ÝdÝÙÞÍEîlÞ­ƒ\ìscì7O`ý÷uÀÿ\ÁÞDP)k ¡À–5XÍá-ùÆîíÚã4ôtO¶¬?¥Ÿol×ö4RP”Ãà\€Ö©š;Cîy'aJ/‡Š”¢0âìM rÎåÜÌñ:v p”î„XE‘ ˜e)ú¡a ÉÃ"%øÄ¤%LÀÒÎÌY¶Ý­È0ªOù>†'`sÔÙfzâäb`ëàÜHóº,L"I@t£,ì?;•DÐhgg)ðçp¶‰ÃxbŒ*qJw‰ÅAí$uJEà Î 8¥"£¸u¢lH¤…!&K‘þ—„F”§„Ž£‡‘ˆS!Ç„~7íY@ÿöéújìioc °+jHÆÞ™ºõ þ˜w®€—A~=Þ9P¢À-Ùúÿ‘áÁHc©Ïžt/š¹2—0ž>lgÍ.AùÕÌî˜Ì3f—’9äçÎxàe FõQ?²¶e>Ú!×=b‰¹uÀ;&·Õ>˜OiÍáéSzOñ:zo?Þ}^.‡œÇ¶÷MglV'Î Ä_¬åIÇÅc„ºBǃØ‘àBš<<ÅCÆÝîSptÞ㾚ÚÿW<îÈM8ÖìJÒı@šŠÊ`]«QÖ>,­£HûÇ(íòЙxvq½“»µ¼ • ;Ù6›£ ¸nêÚgRûb×…ÙÚv˳É"ÓðSy­nOÁ&ø°ëT¾’TJÅɽ‚!i˜ºro„ºz¯FR‰ñµ¾¾@çY†`F•à×XNÀ.±Á®³|ñÞËWî ,§×–Ë——óLC ÏàëºG)pL> ”Œ͜Ákýoôฎ=8(†b†Ÿìz® Ü -¸³< m!s­°IÁ.ø(ø3CN*%G-7wOˆûþ³Ý¹f„ýæ ãGD. ]Š0šQÇ1(ˆ.¥7ÍËïœ&Äàʈ)ý ïp0¶endstream endobj 2000 0 obj << /Type /Page /Contents 2001 0 R /Resources 1999 0 R /MediaBox [0 0 612 792] /Parent 2008 0 R /Annots [ 2005 0 R 2007 0 R ] >> endobj 1998 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1NoNullValue.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2009 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 223.46000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2010 0 R >>/Font << /R8 2011 0 R >> >> /Length 2012 0 R /Filter /FlateDecode >> stream xœ•O;OÃ0ÞïWÜ ‡ÏÏ8#Qa«Xì(Jª ¸¡´ü|.mZ5 ²ì“¿—?ïP£šÖ<ë ÷/7{Pø${;à£çQg|H"*ЊAL-œÌŒì¨ÐQkb5¦ 7UÕv‡}YVC?æmY®‡õØ÷oïýØÜ¦X%xÃä­ø¾%©ƒ)Ë)¥ÐM…ñøÕÀëÿŠ–LðÙØ/Š<ʹú©›ÏC7l/Ä¥½#þxúø-5ÕÓîŠË§k´‘´³Ø‹rÌü9÷Ÿ‰·¬Ôd‰Y$Ú:Mâ½B–í”ýÕÔ_endstream endobj 2009 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161254) /ModDate (D:20111206161254) >> endobj 2010 0 obj << /Type /ExtGState /OPM 1 >> endobj 2011 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2012 0 obj 234 endobj 2005 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 432.8106 398.7049 446.7583] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2007 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 121.7586 212.2436 132.6626] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1NoNullValue_afadcc0dd8cfeee82c4286469fc006e67) >> >> endobj 2002 0 obj << /D [2000 0 R /XYZ 133.7684 692.1046 null] >> endobj 310 0 obj << /D [2000 0 R /XYZ 133.7684 667.198 null] >> endobj 314 0 obj << /D [2000 0 R /XYZ 133.7684 574.6244 null] >> endobj 1997 0 obj << /D [2000 0 R /XYZ 133.7684 552.2663 null] >> endobj 2003 0 obj << /D [2000 0 R /XYZ 133.7684 552.2663 null] >> endobj 2004 0 obj << /D [2000 0 R /XYZ 133.7684 470.4693 null] >> endobj 1285 0 obj << /D [2000 0 R /XYZ 133.7684 359.2058 null] >> endobj 318 0 obj << /D [2000 0 R /XYZ 133.7684 352.6056 null] >> endobj 2006 0 obj << /D [2000 0 R /XYZ 133.7684 140.7624 null] >> endobj 1999 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F51 914 0 R /F11 844 0 R >> /XObject << /Im8 1998 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2017 0 obj << /Length 2025 /Filter /FlateDecode >> stream xÚÝÙŽÛÈñ]_A8@BV»ïCH$¶gáÅÆHl%/»û@K-‰œ%©õL¾>Õ¥¦Dމ‚`€a±Y]]÷Ñ"†?’Æ’šgÒPD0—Ùê0ÃÙ>~7#i~š§h^ÎÞÜq‘d$•Ùr“RHB³åúÇœrØRÌ Æ8ûö'Œi×.oëýñP-ŸÊjkß7MAt^7Åœ ÀÚ—mÀOvcý7[­¬#"Ë¥)~^~?{¿<±˜œLÂ’8™ýø3ÎÖ Ï÷3Œ˜Ñ"û /chv˜1›!ýÊ~öyö·Éä«ß:¦F%Ü8ˆ# ÊÃ"&À£º• vJº Q&øI·‚dt+¹×­¢HsM³šÓíûÇ•}èvuÚÒ$_u Bà9íÞMþÐLåÖéüÑ:jšw÷6 ·]³«¶~uWp‘ﺈãìïu³(æLÑücÖ«ã~6üZî6,¶ÉìjçN±ë°¶ñ¦t3;2,åÌbƒ‘Úx¾X‡ìØ üÐöDWáý`Û¶,ηîŸ-ˆÈÑ´Pƒ´¢ÁŸNíî1îÕ rм šgC¯&aMtïÕ‘èÖïlWîö^xªá­]5»`–Iþ’áâV¼%hž3JÇâ t‰£êÒ'˜’ Ï¦.¨È¿Æ÷Ý&<Ëð&uЯ+˜ÕãµáÙ¦¶e íºûúØÅ¯Ç‡‡º‰/›¦>È[çq×vÞÃÜJp„“pòý-×ã"šÓVHR\|y¿ó^Mž:<öLReò²*÷õ¶>FÌ®ŽÏàë8ß8—)W]¿\vaß*¤£]ÄolwlªH¤ ª®æÿ²MÄh»²ëOYÕkÈ8º•å|( ñ|üû?8~Ê×µm«ß¹|Ö……“¢ÂkñÊðˆñPbjtþxJà¾Ûôú »êá×Öeé9Ó(hfút1G¬¶ŒR1Áòžòé«ëf ’ðÑû<?B8¶É?8·ü„QWû§5vo7¥ª «>©x’UçOÛÚ¸Ð==ØYäTÔÚ¸|¶óˆ(‡²:–ûd6} ZûnÓYF`¹“e™ù™,áÄbÃÎI†öµ³® e}Ž÷yæ·§t3X~W¯Ž[£>—€ j!CÕhÅýH¤(×/’‹k(¦ü–\PègIö¤§üyÝ|¬?‚cþ£àÚ»äÕBÕÙ¸˜sáÒKåc?÷uÍ«äs§XÂå*.æ ‡ce½ Eåu@0O "˜ˆù¥®÷#ô Y ÉEDj¡T‘“?D’:ÉÙ°µV gÇÎO1ZG$K“v”)£éB’¢=SH8èF2É® d,ïap ·`L@oú Ÿ~ڀⳊúÞÂÁ¯î|_á@è+|OÁ¹ô=#}r_Óäh ,„øwœôM…£ój,¤}Sñ¢†bk¯Ã›j¤´‚Ð`ÄCCv©Z†\OH4”²gÄ"¥(@kÄ•dSañNhNŒ¿”çeSlçº`èÙ®x…¶P̲”ü•@›Š±ÑÀNÂð•³@|&€àäÓR»C!‘Ñ‘ìpÕú‚[Qç~鎫s©ë]ˆszn ~Qç.‘$ ì sÿÏv%I¯÷ IÂ>œz°ß1$•ă4 á«Ò¦>‰;E`~½0Ã!î4d¤+[Ce†˜,Õ߀ўä<¥9’ ŒDœ 9dôOãqüo«z¿aœ]ŠÃÐ×’~Cqœ…)Qàèç¡íÿÈ—”†©Z“ _’®ÁW¦)‚ Si9šô¤„ä7ó¤K6'<)eÓ7Ð.WC=|À¨ ÝÐüË×{ ½¹‰¹™u¦ësûÔl#Χttïñçé†k~¯é:~ï>,?/±õþR·ö/n¸dÉ@FÅZ^°ty‡ÐcÝ`„cov¡¸xOÒÚ¨«¾­êMGÜ73ûÿJÄ]„ 5FÞhu˜ÀPïÜ¢2£w­Íóp$èî{m¯ÎT~à)ãËÖV¶);àvúyxЃlêý>Œã¡G…%—9÷¶]L¶xŒ DH°Ö3-^Š6"7ˆK±Ôgj¾µ¤T\+8S7Îí±nž ®¦ÄðØÐå£ûi‘ݽ‡”ê–È Ús"÷h·E~öܳÈ7Î"§ÇF‘W“Bôí: —M])rßNðha†nN´^ʈ^Ås‡ëX‘÷e à'»)¤<;)‡‚!‚ó[ÆKÑž‰Sê´Îp¸ º¼ñ®ž_Níþù¾k¾þF¤í‘ʘ/Wå±;w@ë•¶ß1à V@µeŒñúÁEsendstream endobj 2016 0 obj << /Type /Page /Contents 2017 0 R /Resources 2015 0 R /MediaBox [0 0 612 792] /Parent 2008 0 R /Annots [ 2021 0 R ] >> endobj 2014 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1RangeError.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2022 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 229.89000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2023 0 R >>/Font << /R8 2024 0 R >> >> /Length 2025 0 R /Filter /FlateDecode >> stream xœ•PËNÃ0¼ïWì‘r0ëgì‰gŠEI”*NhÚ >Ÿ5)(•¸ Ë^ygfgì#’Hy]k“àa_`ÂgÞ=A~ðZš„‘I ò6`ì`K”N¤4*-´× c‚»ªê†ó©,«y¼¤©,÷oSßÖË2/»x€: h- ™€ëϦ}?óôUZ;¡þp^e9²,­WI¤Ø GfÞ4~ð> endobj 2023 0 obj << /Type /ExtGState /OPM 1 >> endobj 2024 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2025 0 obj 234 endobj 2021 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 377.7018 398.7049 391.6495] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2018 0 obj << /D [2016 0 R /XYZ 133.7684 692.1046 null] >> endobj 322 0 obj << /D [2016 0 R /XYZ 133.7684 629.8725 null] >> endobj 326 0 obj << /D [2016 0 R /XYZ 133.7684 507.9341 null] >> endobj 2013 0 obj << /D [2016 0 R /XYZ 133.7684 485.2024 null] >> endobj 2019 0 obj << /D [2016 0 R /XYZ 133.7684 485.2024 null] >> endobj 2020 0 obj << /D [2016 0 R /XYZ 133.7684 415.3606 null] >> endobj 1286 0 obj << /D [2016 0 R /XYZ 133.7684 304.097 null] >> endobj 330 0 obj << /D [2016 0 R /XYZ 133.7684 297.4968 null] >> endobj 2015 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im9 2014 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2029 0 obj << /Length 1954 /Filter /FlateDecode >> stream xÚÝYKÛF¾ëWY  €U»ß! °ëñ ±ì!É£é™ ‰c’ŠÇÿ~«_TS¤¤Á®Aàƒ[Íêêªê¯žC ÿHACJj^HCÁ\ëÝ ðñljD‹žj‘“ý{5{sËEa‘T«‡œ›@ÒZ¬î+)G„Ìc\¾}û;Æ´k—Ë·õö°Û/—ÿiæD—õþ1l¬æŠ—_ží|Ao«¶ ËöÁzR»_ÃWEŒ,žÿ±úiönÕ‹šI@Â’8A?Í~û÷ ×O3Œ˜Ñ¢ø ?0"ÆÐb7cBÒÎvöqökÏ2ûêN¨§Y€²Ë`FD…#tÿMS*¸P÷¶ªÐ`KɆ¶ Q&˜·å/‡»¹*·›5…êòg»»«øõía¿î6õ¾=oàD¸ÐS*`"¡¿†Æ ó^jJsPK]ôdNêß)#©ˆ0Uä OïcjÂ`鿹æ1~úK'4’J\. dûPíí»¦©›S )ôá%\ôTW.§X!Éɉa°Àkx².`üc×löaýí®}ügXÞÕõ6¬ÚÍÖî»ï»æ`á(Û#ÜÄÄ ¸wRb"FŠdÔÓ‡Lj) ¨“ñð$žÜÛRQ¤¹¦Ç«œ>ï^ÖöÙÄ5ª\w`Up‹aX—ÏÍœ©Òºðb_ƒwO6·IyØüævÎE¹éZx·ª›å|Á1ó¯5'¸Œglú~nöáxýìB…(«£(ß„/wö¡B„mw;ÑÁŸ€í„6^öÙ®7NÌu°ûζmåî—otÖÍÄH*Ùëb@N|!%WT÷BU ©7¶«÷! ÜØvÝlœPµW<='›p¦ž›€”@Á‘hÞ4Àv]Qcz÷ÔÔs*ÊÏñûƒ=Xlöχ®MDUô‰uuhãÉÆ¹jXZç°m:)}‰¤¶º+‡ƒõ/ žHyæþcžO¶±éé«ÈÓ9+ä£Î±ys Á>3°Ä;€»cú] Ú 0Àˆˆ[MÛy'(Q%ù?l É‚G¥ª‘AꇸlÛ^€'ȪÈö*xfÄ—à‰)‚¸£2xÒ”ñ]xk>x„~Ûu°}S¯;nÕeèÂE„—N§0‰åúUšq(Q8áäŠf\) Bæš¡óÕŒO (R\à">pMìž ª Y¦›} ð–ò0R, p kN#Ž|’ðTñ)A”‰|þ³‚§’'D†Ô.þ>²Ôyþj­U¤vhê^0–ѺùDŠ:V"Œ¹„r² Aˆ áÒÑibB‡$ıÏAZB ùǽ„ËAŽÄç ·H9ˆ 9(äŸ{•)T¸o>T„#›xMgâé°ëó=Þ’"q ¢çsÍ£;0ÕHiEÆHB-7e9†\‰J4”ò‹~@_ʱÔú¬DºžÌW¡sÊ˪©v¶s‰–”ãšÊA0+röãÚÉ¿­q2GX€DwÏ™9«¶»JªÆzj € uðÊOŒ.Õ¨ _2¯ë$$’L7è$þ·SYXKp9+A8‡‹]Z¦CV¹_aâê‘Ww™_)‘NÔ8Ò“kFÏ Õ‹0Ä9»ÿSÄÄr,âÐõ TDó@ÆÅ:ùħî7Õã¾n»ÍÐÇNÕá økI¿¢:îm)Q€ñcûø÷AÓ*pÞÂP$]†ßgð¦àB¹?`®¨ÿ˜¯}ú9–a~ãÍûÁÅM é¢È2†û«‰‚d¸ˆ–šr?@fç}h8EÚp>Íáj!øÚ?d^C bf“üCÅôÀk4<»äaÈúã05%'YÍ -76Vì2ü7Ä‘KB—i|öàÜíqîø%²ª_¾@6W ÐÞ)#zÑ2“ý Ìendstream endobj 2028 0 obj << /Type /Page /Contents 2029 0 R /Resources 2027 0 R /MediaBox [0 0 612 792] /Parent 2008 0 R /Annots [ 2032 0 R 2036 0 R ] >> endobj 2026 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Column_1_1WrongColumnType.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2037 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 186.05000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2038 0 R >>/Font << /R8 2039 0 R >> >> /Length 2040 0 R /Filter /FlateDecode >> stream xœ•QËNÃ@ ¼û+|fßëäHT8"ñU›5mC‹€¿Ç›nJ#zAQb{5ž™ô¨H£JO®‹îŸ#6Pø$o=耹,:|¨Äh5yo-Ö+8-kÔ–´cÔLNùënªjÕeYí6ݶ,_ßwÛæ4Ôßûåmý³æ`™Â9ü²z)³ªT:ðJ¥fsj¼ñÄeœö °ÇÉGã(‰éàçÿ´£ Ù Æ’g;ñó(ßÙ×b¹?¶»íÙÅÝZyM1ŽêÇ1{Ð>F aÐ=éϰ5XŽ,'bÒf'CÖÑH`.5þ"> endobj 2038 0 obj << /Type /ExtGState /OPM 1 >> endobj 2039 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2040 0 obj 291 endobj 2032 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 631.4173 206.1466 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1RangeError_acc6fd24ee9941747185427552ff802b0) >> >> endobj 2036 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 387.9136 398.7049 401.8613] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2030 0 obj << /D [2028 0 R /XYZ 133.7684 692.1046 null] >> endobj 2031 0 obj << /D [2028 0 R /XYZ 133.7684 650.421 null] >> endobj 334 0 obj << /D [2028 0 R /XYZ 133.7684 592.2636 null] >> endobj 338 0 obj << /D [2028 0 R /XYZ 133.7684 517.7722 null] >> endobj 2033 0 obj << /D [2028 0 R /XYZ 133.7684 495.4141 null] >> endobj 2034 0 obj << /D [2028 0 R /XYZ 133.7684 495.4141 null] >> endobj 2035 0 obj << /D [2028 0 R /XYZ 133.7684 425.5723 null] >> endobj 1287 0 obj << /D [2028 0 R /XYZ 133.7684 314.3088 null] >> endobj 342 0 obj << /D [2028 0 R /XYZ 133.7684 307.7086 null] >> endobj 2027 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R /F73 1481 0 R /F58 909 0 R >> /XObject << /Im10 2026 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2044 0 obj << /Length 2314 /Filter /FlateDecode >> stream xÚÝYëoä¶ÿî¿b‘-åñMÊh ¤g;¹Ú;ùäƒ,s×v¥¤=Ûýë;|i)íËhîCQðRÔp83œÇo(2ÃðGf„1¤¤æ3™SD0—³rs…g+xùà D‹j‘’ýýþêý³å’ÊÙý2å&Ì Ý?þšQŽ/Æ8ûðá7Œiß]_ß¾ô?Þük¾ f×E×ùá'³4íœèÌÔ¥E’`‘)2ÿýþ§«ÛûA¤d'‚–Ä ôÇÕ¯¿ãÙ#ÈÿÓF,×bö ‘<§³Íã°ˆgÖWŸ¯þ9°LÞº¥Ç Á•B\åâˆ!„ši0„dcC…(Ì⻇¹ÊÖU ªRýl6 «ßí겯šº;­(p"\ècrá0AB ~éø2Ì©)MO`D±Ô³ÌJý¥â@*Áà|™š¥ §ûr”kÂ`èÞÙ™v^}J¥I%. çÉF²ýÒ6õêC³Þmêû¹ÆÙëÖLE¥LƒûIyVÔÅ@uA Ê1’D±‰‰°À%^ï}øsßVõÊß=VÅê[?~hšµuÕÚÔýw}»3°öлá rÌ%Éì|Tf"FŠhßé™K…´”9(”ððžJ¼§rgVE‘æšî·² ݾ”fkýq¾€XÈʾ˜$$E8“Ù¶3•Ê/fN²Î’åYÿd<} `ÇßÜ͹Ȫ¾»m[;jÚëùBb•}ß÷f³í=Ußø_ϸߵaç®,ÖEëÙ?}ág—žÓÆÚÍ:?s ;Ñ¿'­3sé<#X?N~©lbq#›ià0 ÿ¸ÉÈ-!¼û&œœY6^4ÿì4u¹5eeíPúçé€,\Ù`‘¡“!- ‡PÉ|ÎETØ3´?GC7%>“p„’¡¨2/A$äÞÓàw>ãܘ®l+È'TàäZˆ Y%%;¸7)“BÒ˜x˜7hÛ̩ȞÃsœ/¼“ ádýÄÍ—¥‰%#_t•ýÁ‡×ì‹=ŒÄ9¬;¡Áƒ8?÷ÎÿT¹%ÒŸ_*¨Êž«õÚ¿|0þw,ºÊªeœ»Îeyxaak¯ˆÌ@èµYø‰ÖïŸÛª«›­i‹tÿîi´¤«V‹A¡n© $ËF’¬ØnÛfÛVE&–Îöý™˜¦¸©R²·ô@fCL²,® !fGŽkÛ¥ŒÓìÎ>G2oÞb³]›±ø7T6Ò Ê¢ £f郠ÀîíÔ0L©ý²T³ýsÛ¹rëÖ¶æ]ÕšÉvûØöOw¶)¿p¹Û=Ǩw±Àûuö7øŠõʼÐAGh¥ "Î9¶)׆«ÝïÁïg© ÿ3:´d¨.«þéô&qÊåÓH.¿"²suí`Ón÷Йþ˜ÃM,fϼôÞ‚‰ßÈÉ!Ø™¦^¿zºá8ìtáç[ZÊ¥ÿMl U˜íãvU½ÝõIÛ¯~Xò£'¶]UH~ÆœÛ窛ր¶¨Wfœž³5yoǪ›êßaä4J_EÙÇyKœ«&bž¬p©š¤Ägª ç+©N«É€ä-ÞiwÑ÷tön¨+£é›¦Ümìg+݈ÁæÇÁ­DŠrõ6ÅtL³KŠÀ{*W©bC¡Ü7) \ÿÒº¼µÇš\[¬yò¨Î„ LÊfIar‡€£ÞY{¼¿8¹‘æ9ŠY\geøèàÄ·žt¤ %ˆQ)º<ä· #¥°{ºG þˆ¾ ¼u t”t-o T `¼G|ºOã˜#ƽ%R²3P‚i{d‡H‚QUCÞtPÕÃTD6 QƒJép  ª‡©¢2LöÕ­jüm€§ŽAÌh0ïá©]¶MÝ\»G²Í%xkçÛàé› éÊ&ª‘Ò `ä,ÄÙ䈲-1 ¦ô|†¡àlFŒC"9ˆn s òœrÈÕÅÆôšÛÆb*,´+‚`6KÙvsaœk'øÀé´û̆4ªœå'Õ¶»‚aè‘tГRëÇ銃AuªCôð\æo»¹Ðv‚éF7ÿݪ$¯Fg<)_‡g›8Œ+Ƭ’f4G‚Q‘v›I+‚‡î„ÁBr2Êq‡ -ÈI>K™þIA#ËCAÇ™&‡6 °õXÐïG–mñë¦ë«q¤…ÀÞu;Àø¯“èL;”þ ,¹i´¤_Qyë”(ˆ‹ý×ÿ‘çAÌrú„çI(hRÛ,åP žVÁ“~—°üj~7ó„ߥbVB^­\ÝÜ- Î'caêT%»«Ä€w¾ç/åúEºàPÞC¾VÞ»÷Ÿ¯¯Cýzh:ósóxp1ÇrHÀXˉH“d9P]„cwlb¸¹m¿2ª²uÓŸ‰¸¯vìÿ+7 @Ó³ ‹ê1nD‚w=ŽÀ¼›ZF“öOÑÚåþ:ÿÙ&öx³2µíÑÝ ”]éaRš—Íz훺áÆÇæÙµé®O"K*„–ÖeJvæê{ »xõ}~ßHuq_«=ÚÖC<ôtZeVrué¶?%;§r$»¬òÙ}÷*_Ø7¨œnT._^N+ ]®ÔÛnKSâˆ> $‘OÜ¢Kü¦UÐ)ÅU0üd–séÍ}§:)3°§’\êzR²31i‹±_¨\»WÄ‹ˆ$܆`´·ŠÓ!ZlÉžÍù0Ð/ÒG>‰ð%à@J‘–l*Á¼GªKûR˜íëï{SwC†‚ÓëBÕ¬A¾sú¸Jæm$÷ÉuHPî“RñÙé9±·Þl|yü—ª.×»ÇÐ-“‚@|¨\ÓÐ-ÿõK(uçÀûÏN\!M± „ó#ã€ç`×%Ò}¬T}QÇÓBWè·&Þ3uþÓɪ“> endobj 2047 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 631.4173 239.1229 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column_1_1WrongColumnType_a4f6c37a9e65c940421b9909bc0f773ef) >> >> endobj 2051 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 316.1826 398.7049 330.1303] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2052 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.3838 188.958 223.8593 199.8619] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2045 0 obj << /D [2043 0 R /XYZ 133.7684 692.1046 null] >> endobj 2046 0 obj << /D [2043 0 R /XYZ 133.7684 650.421 null] >> endobj 346 0 obj << /D [2043 0 R /XYZ 133.7684 592.2636 null] >> endobj 350 0 obj << /D [2043 0 R /XYZ 133.7684 457.9964 null] >> endobj 2048 0 obj << /D [2043 0 R /XYZ 133.7684 435.6383 null] >> endobj 2049 0 obj << /D [2043 0 R /XYZ 133.7684 435.6383 null] >> endobj 2050 0 obj << /D [2043 0 R /XYZ 133.7684 353.8413 null] >> endobj 1288 0 obj << /D [2043 0 R /XYZ 133.7684 242.5777 null] >> endobj 354 0 obj << /D [2043 0 R /XYZ 133.7684 235.9776 null] >> endobj 2042 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2055 0 obj << /Length 2492 /Filter /FlateDecode >> stream xÚµZÛŽã6}ï¯0ò0°˜áýÒØÞ‡Ì%;²Øél’`á¶5Ý|éXrzf¿~‹)“¢EzÖXH{¬ã:UŪâ$2Áð™Æ’šO¤¡ˆ`.'Ëí ž<ÂÅnˆÍ{Ô<„}óÝ;.&IåäþShM iܯ~RŽÍ ÆxúúõoÓ¦¾½}û¹ùÛ›Ÿgs*àÛÍ¢®»ªOÕaFô´Ú-+ø‘$XLý~ÿãÍÛûÞ¥€‰ …%±ýqóëïx²ÿ¼Áˆ-&/ðŒˆ1t²½a~Dñßln>Þü³7\mz.=fA,Ϧ‹HdŒ°i# 1-t‚ÁŒ&>fòp ø-m/†ŸÛèüoÜ߽߂'oöÃäÆœd”“y».꜇|ãˆSÕ¹†¨°ûçì¢ jLT¿èBM4—,ZtA`)Œbí¢·KZÕ£ëfÁ’1⥈q¬ ÕȵAÔà“c”†Õ( $,õ¤‡YÇ~£T$^ åÊÔ$4˜òzT‘W#©DL»lK|È«aü*æµ—ó!ôÀãK$v­ ¿ö»Gh»jW¯÷»û™ÆÓ/ÏÕÐ'*RÊ7Ÿ (re¸j Ii1Ú *Ÿ7DZJÁ(ŽäT_¤«/Þ£(Ò\ÓI³Á¼ý¼¬žˆ£“fßý}¨Ü¿Ÿ3.¦ûwÝ㎻í¢YΈ˜>U«î«jFñÔgÅýòR£ÑÚå°À”3yQó„àLópN‡FkƒûÇña¦¦›õÜ¡zúSµ}Ql?¿;î–6ìñβ–˜dl¼³8Q¤ÔYª‰KZê,+wV`ð¬2_&ãÕïúªèœk¿Ð7·Û ½3aØrÎÍ=¨Dk$Úö\”,ðV«IÚŒ²NScîÑà{|ÁÔîxø2¥™Î/μG•˜%AŒ3¿:¬ŸHIKƒ<`(X,‘ø: lä$ÄÃZIÞ?éú½]¡ÃqÙì£mÅŒm+% Â2ÓÊ“çí·¤o×íŸëCs\lÒMI!¢Ô9³)9|ê 6á¦4´Û5Ãփðql€ S½ 5&D>C=ª!Ê D(íÀ;³µË”‚®'úšÚ mdj·‡YÇVU¹`¥Ý™µ*lˬ‡• 6Ë{*د+ØÖ,H2žþi·íýz•”´¸Ñ°ÁÅ~Œ «Ç=ªàÃÄn-*öÂŽkß‚’cÚ)yW ›Ãz÷Ø}~µléï‹­nöþÚ¡z®ÍÜ:n§Y†¨²Û,œOŒpÃæ/3ާëUóTfùy·nîº/íò|ó•„sU-×ÛŦ¾›ûkõú?Õ¿MçìÑN}wý¡Ò'×éO`#§?æê¾Û:ÝŸ]egê¿¶ æ‹]8m¯ë¦ÍZ‹XìwéIŸC}ÛÙÙÐ=ªD ÇNPäaµ¾{ÿñûE]uc^”/.š¹9Ïçi`¹?ZÌs+‡§©½ûx‡G|GH¯ÈÀDF=*šT:?¿æœAµ@ŠÂì›oý–iýVlý±ÛrÏ.%B’BàUbVö^µ¤ütïŽç²Ÿ”à ÞNJnãœOöûMZ‚N|´·âšõŒ òaª¨î g*?ÙÉ F3J„ŸÑ¨‹óÌ]–“ @aÉU2ØÈ逇Y¯3¦¦Us<ì¢q©ûÚ>é°Û'Ѱ”NõÆRAqd¦z‡/8ÚµNßÏ ž›Ê¨².òéœ÷¨9h ŒÚw8;ÖÏ0&ÛçEþVíƒÓÑ”Ž­ŒñŠr‰Hñì rêPe Í‘ž4Oê4à,Ní“SÞ¡ÕŒxƒ¨Î‡í1yRJ N‘žÑM ³»!Üà ÜC«9Ñ$ö¡ŸÎGìAZ8À2£x\] ˜ë]ÓŸ¢ÞïVm=£2ÇâøÊi'°‘“9û¿È\Ç%2—u:µ{¡ÌeÒÊ\žÜË\È}‘Ì… µ-{tÎhŒþkV½–S=+Ë^–÷¤{^'|!í`ŒîÇýºYÝÞnÏîDA;Z"ƹ¿sü—3Ç ÚÏ¢n§’o“€A†eÁW¢ÇÂLíŽë+# jÇÉ\‚{Tʵ ±8a>¹¢,*Äuúk1‡‰R3®,ôâìõøBöR»ãbmo—kE!{UbÖêŠÐaöÜãK¤3¤)½ê)Wh#'Íö¿Ksóä¾XvZœN°Íb½;ݼó¸n2Ía‹E˜šÒó³–Q§VT§Y…Ü÷î7/‡u¯%M¤)@R÷p¢ ¥9¡râPåÉ‘žú#OêÚ#àloé 9•†ë†Äœãw,<¼À>´jé×õëýöùPÕu•nÉŒ#¥t>ô”'§L!PKçûkÂþ©åU'öÐF®<ìl#Ž®b×®à¡fOíÿü¥ÚŸ¿öÝï]Ýë~Ÿ_Ú´·×j»MŒoÚ &¹9ÿ–¢ø~õKÝaß`û~Zøâ:¤W1½†é½²)ú¡ÚU‡Eãƒô{^»ûd½©–ÝÙý¡˜¸e'ò–Ð[_Ÿ¬2{yð/ÁÇ{è›ýç/U2¶qec0`IØ )Pcendstream endobj 2054 0 obj << /Type /Page /Contents 2055 0 R /Resources 2053 0 R /MediaBox [0 0 612 792] /Parent 2008 0 R /Annots [ 2058 0 R 2061 0 R 2062 0 R 2064 0 R 2065 0 R 2066 0 R 2067 0 R 2069 0 R 2070 0 R 2071 0 R 2072 0 R 2073 0 R 2074 0 R 2075 0 R 2076 0 R 2077 0 R 2078 0 R 2079 0 R 2080 0 R 2081 0 R 2082 0 R ] >> endobj 2041 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1ExtHDU.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2083 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 189.13000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2084 0 R >>/Font << /R8 2085 0 R >> >> /Length 2086 0 R /Filter /FlateDecode >> stream xœ¥UÛŽÓ0}÷WøxfÆ÷Bb—ðX°TÛnQƒTu%ø|Æi8MC¡¨ªâœÎ™9Çžqw4æÏñ¹lÕëÏA¯÷ õù®ÕNQ e«o ŠšxtQ7+u “&b ò4@–uÓªww«Íóþææþ×óÇ÷__6ßÕ}£J"mÒ?…¼Q;]RUDçäw)‚Á$Ý*¶ÆB =²ƒ6 Ò³¦HÏzRL>B0Y%¨lÕ½øG£Ì¼Óä§‘ÑÚå¼/ç$gåëˆT¾"#ø‘‹)Ò³ÄÊÚt¢DÔ¾<84ÄÚ“œ#›‘¯OíÃúQNñnôÛy‡¨ˆ¤”ë“ Iö©G¶="G'ŽÖCä“Ēͱž²˜+ü0,gý4ß¶ó>(råÆpí±ÒXÁAaM‘Ú'¶Ãÿ8#tà,é$'6vön¿Ül.Ø+ „U bÕ|,½„ÉV­6Eð`†…á’N]ï\sL‘ „tÖÌíæÇ+ìd e‡³KVä§NZYÂKä9X111°=±’‡B¶E®ªi“øC‰ráTˆ52˜FÒv»1K<†UH?Ñ™xŠæ8oÁf#¸;̳ËÅk$³êÛaõj^C’5Æ×ºÛr¢¡¿‹‹†#˜@•†9jèoÞsB7@Ti`‡Ø¿Îì^a¦,+:Í3Cì’¬¿©ÕŘ$Ãk]¡ ³œ)#(GP§­üÉPðÝHIAÙ­ 'ùÓá •q®½ÐV¥ÁOóÐ1'¤ŠX1q¡~›Š©endstream endobj 2083 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161255) /ModDate (D:20111206161255) >> endobj 2084 0 obj << /Type /ExtGState /OPM 1 >> endobj 2085 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2086 0 obj 595 endobj 2058 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 486.1376 268.7214 497.0415] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2061 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 416.7931 195.0882 427.6971] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a58be2cbfe5c11246e8c2269e3ffe69ee) >> >> endobj 2062 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.4254 416.7931 259.8349 427.6971] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2064 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 389.588 231.3318 400.1183] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a99d509bf1374ace30a48508dffad25d5) >> >> endobj 2065 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 361.6356 253.4787 372.5396] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) >> >> endobj 2066 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.6966 361.6356 301.05 372.5396] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 2067 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.0138 323.2629 331.4274 333.1681] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2069 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 310.1466 209.7529 321.0505] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2070 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.7231 310.1466 241.2944 321.0505] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ada85c7b4b9b38f6e410db8794779ed60) >> >> endobj 2071 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.7312 282.5678 221.833 293.4718] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 2072 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.6722 282.5678 267.5523 293.4718] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) >> >> endobj 2073 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [254.2788 256.1502 275.8717 266.0555] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2074 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 243.4075 220.2833 253.9378] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 2075 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [231.0229 243.4075 262.903 253.9378] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a06d5f1ebd32e0228790c8b4e4b57e2e4) >> >> endobj 2076 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [254.2788 228.5715 275.8717 238.4767] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2077 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.4217 215.4552 318.5235 226.3591] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 2078 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.9666 215.4552 378.8468 226.3591] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ab121d5ab64abcc0a5df4ca7955bec2e9) >> >> endobj 2079 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 187.8764 264.0786 198.7804] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_aaee3fda1eb075ef4ee7a9178114bd00d) >> >> endobj 2080 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.8102 173.414 268.4031 183.3193] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2081 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.3856 160.2977 254.6141 171.2016] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a5a480387701525f75ea450dac7510f23) >> >> endobj 2082 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 132.7189 235.775 143.6229] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a9942fedcef3502a764ee25b143acdfb1) >> >> endobj 2056 0 obj << /D [2054 0 R /XYZ 133.7684 692.1046 null] >> endobj 2057 0 obj << /D [2054 0 R /XYZ 133.7684 504.9068 null] >> endobj 2059 0 obj << /D [2054 0 R /XYZ 133.7684 435.6385 null] >> endobj 2060 0 obj << /D [2054 0 R /XYZ 133.7684 435.6385 null] >> endobj 2063 0 obj << /D [2054 0 R /XYZ 133.7684 406.3158 null] >> endobj 2068 0 obj << /D [2054 0 R /XYZ 133.7684 327.2479 null] >> endobj 2053 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R /F11 844 0 R >> /XObject << /Im11 2041 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2095 0 obj << /Length 2727 /Filter /FlateDecode >> stream xÚí[K“·¾ï¯àIEV‰0Þ­(‡èáÄ•K¤M.¶£ÝÙ5+|lÈ¡¤ý÷iÌÌ ˜ •*ÉårI¦Èý5€î¯ †,0üG„1¤¤æ i("˜ËÅíî /àjÃþrsõÃ;.Iåâæ>¶&4„.nî~^RŽ]­ Æxùúõ/Óêt}ýöKõ×7ÿ\­©€w·ÅéÔ¼|_Þ—ÇÑËr[—$Áb©Øê×›Ÿ®ÞÞ—"&‚–Ä:ôŸ«ŸÅ‹;ðÿ§+Œ˜Ñbñþ1†.vWŒÃ—!þíÕ‡«“ѧõWÇ&"`àÒ0¹é Q&x˜.JãéQ,õ"ÀìtýB© W0˜O¦±Á!¯Gey5’Jti?mŽÕ¹Ø6«ðiEñò°¹ëûA±BDƒ•®ö£ãƒÃ¼< øŒGC»Ö¥]ñïÁËòæ·Íéõùx,÷ÕÀ!%‘&831•sCÄ0á½ÁÃÒLÍíaª†ëƒ‘a¾È)¢†ŒºA$`¤€×£‹'D”4àcd£öQ…%¯OQ¤¹¦-U=U;SŸÊÆÇê7÷¢I6û÷Ö½óxØì+ȰwðøK¿[˜æSË‘©f„ É…éqrí>3 ¡]; « }AXªä¯=(GÚ·e9Ñ´ÊP žKöJ¥zÊ'z‚±Mó$£Kò–° Ýz?TÇÍþ¡yýbTÄ ª»>L§¸'éY´Îì‹]9 ærÀ†Âôè&MBÍ„ì ÿYyL8TyQ·&RYìPÖÁ&óªóqßKãz®êW‡ûÞG¥Uê/U¹?mûDc‚8Ï—÷– bˇq’· ä ¯ 嘶S¯6#•C•׺ïB¢T9|Æ™¡Ý:šÏ»×‡íià“ˆ(ÆÒóP9jó yoúŸÕBK$0¾(¬c‰¸°t`Ÿw}1ò¡ óxÞíO~aÛoô˵ÐvG5]<>3„¡];„›•¡ËâãvèˆI®““»¨9UHbÉ»ävÜݼûÛÛ¿¿ùÐü£iV /Ÿ>êi¾³Á0-B1$x¶qa !°¬¤yƒŒñ*d&±th«r÷¸-ªza~x½y‹‡Éä\K ±À?5ˆŽEHu¹öëêü8üÉ:È ÕI*HF,cXB,,+–iÞ –c¼C±ìÐ~ÛbIæmà©â0²Ùû÷žØ¾;Pv÷sOnÞ“Œ~ï1þ±uÿ&¶îЦÍÙºK¤¸à©a$x¨CSähj\3[wNÚҥɜeùÔXɬÿtŽÿ*ë?ínÝËcÒõ5dhHwq¾òÉ4e°Q"ã­ÎìjÙHU;û_Žz>Õªà¨G¾ =ãÌzºâQð]òÜ‘u KU<ËW¼$o[ñ2¼®âÅ´á$1©{û "¯ëGâ2¤Ãg<Úõ潬2¸Þ aωIÏF@å¸9Cšñþ*@©ùx8¸ù°ž¼Û¯îmÛS­ô˜zI±˜’[\.0KHŠA²=ît—«G4E"hTXBSj;^4_¸Û}àÚÓéøé/ h …X›n[‘ƒ˜Õrölj š§Ê•‚òÛŸÝšÛ©öÏ+<)ZötÇÈñ†p®hÅ6¢`CÑj/XÝ7³D0ÕˆÚwx:<>ãÝÐîÄ3”+Ø`0‘œ±u@åh¹½7#H—ö®„Î÷.h«ßmø¹‚|jtÙ ýÝà&jâ'C¢¡#&Leô7†%ô7À²ú›æ ú›ãmô·CÛ¹‡î{‰þ3SкèžÉg¦j|Æ›¡Ý:¢¶Åþ<¼‰nÏ, ô™É™¨7Ä«1XöVàWщÔKsQ›ÛHe¼‡=û*z£ŸGî¢?çÙ ""0Q¹˜`©˜÷°|Ì'yÛ˜Ïðº˜iG· Š õ¥KšØ½6ð{ßj³¶eîh'}졈 –{@eØ)¶©Þ”?'È9†-âeób© ÷°dw"Ö5Ìöî0tAá —éûÄ„Â>“foÛŰTL{X>¦“¼mLgx]LÇ´ÙȺÔ3~ Ë81°›mÐ…&ç  2ôÚ=&pÞ·Mnÿ°˜Þoú5ÖÆ>Ø2ê ^øþô⇳ã˜ÂEG¸X@&)hšãнWvP?–ûòXTþÔÇyýDÏÙ%Æ›ò¶y!›ÿQL\†yMèµÏ÷{;'W&üÃìÝÃ×7‡/Oå`ù¸RˆÛ_F&쿇 ! endstream endobj 2094 0 obj << /Type /Page /Contents 2095 0 R /Resources 2093 0 R /MediaBox [0 0 612 792] /Parent 2008 0 R /Annots [ 2097 0 R 2098 0 R 2100 0 R 2101 0 R 2102 0 R 2103 0 R 2104 0 R 2105 0 R 2107 0 R 2109 0 R 2111 0 R 2112 0 R 2113 0 R 2114 0 R 2115 0 R 2117 0 R 2119 0 R ] >> endobj 2097 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 654.4559 277.807 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a16730a075858cd50bfa3daad60c0a1c0) >> >> endobj 2098 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.6497 639.4615 332.0633 649.3668] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2100 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 626.1869 241.8621 637.0908] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_af1128c49f0381473feff2cd9e5650dce) >> >> endobj 2101 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [199.1924 598.6651 237.1696 609.1954] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_af63318f88dad6665781c9d699324a3a3) >> >> endobj 2102 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.7682 583.6707 326.3611 593.576] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2103 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 558.4409 196.8217 569.3448] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a1ea37193efa315fd47f0f104f08aae88) >> >> endobj 2104 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.4673 518.5904 198.6054 529.4943] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a26d0af71eaf7ad073ba160143c2a8f56) >> >> endobj 2105 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.4377 466.7846 197.5758 477.6886] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a7a72093d5babb15f212ab3018536e98e) >> >> endobj 2107 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.9785 414.9789 197.1166 425.8828] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a37d651c1eb3f2ac633fd03a01c33573e) >> >> endobj 2109 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 363.1732 196.8217 374.0771] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a8062cc5b2902b4c55991e126f52fb37b) >> >> endobj 2111 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.4377 323.3226 197.5758 334.2265] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a768bf03f9c90df0c6b8c4fc6ae227fe5) >> >> endobj 2112 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.9785 271.5169 197.1166 282.4208] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a8d4afc93c3eb152b88e985cadee31f42) >> >> endobj 2113 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 219.7111 242.9382 230.6151] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) >> >> endobj 2114 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.1561 193.1352 248.5697 203.0405] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2115 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.3856 179.8606 227.4962 190.7645] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ab94cb470d13b5a574728c49589963a36) >> >> endobj 2117 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6897 152.3388 201.8626 162.8691] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a5e2785377c404f05dc948db844c6eec7) >> >> endobj 2119 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 124.4434 208.8565 134.9737] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_aa01c75db71c10def95aac15f1ab31c56) >> >> endobj 2096 0 obj << /D [2094 0 R /XYZ 133.7684 692.1046 null] >> endobj 2099 0 obj << /D [2094 0 R /XYZ 133.7684 643.4466 null] >> endobj 2106 0 obj << /D [2094 0 R /XYZ 133.7684 444.1938 null] >> endobj 2108 0 obj << /D [2094 0 R /XYZ 133.7684 392.388 null] >> endobj 2110 0 obj << /D [2094 0 R /XYZ 133.7684 352.5375 null] >> endobj 1576 0 obj << /D [2094 0 R /XYZ 133.7684 236.9709 null] >> endobj 2116 0 obj << /D [2094 0 R /XYZ 133.7684 169.2249 null] >> endobj 2118 0 obj << /D [2094 0 R /XYZ 133.7684 143.0556 null] >> endobj 2093 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2129 0 obj << /Length 2558 /Filter /FlateDecode >> stream xÚí[[oë¸~ϯðÓ sy¿Eö\ö‚¶ØnÒöaÏ>(¶’uä¬-Ÿ8ýõŠ¢LÝHgsŠâE€D¢>Í ‡3‡¤Bf~ÈŒ0†”Ô|& Es9[>\àÙ<üî‚4 E‹Z„°o¯/¾ùÈÅÌ #©œ]߆Ò’†ÐÙõê—ŒrDè|A0ÆÙ»wŸ0¦Õþòòñúþýßæ * u“ï÷îòçâ¶ØÍ‰ÎŠrYÀK’`‘)>ÿõúNj׭I&‚–ÄôÛÅ/¿âÙ ìÿñ#f´˜=Á FÄ:{¸`^"„ø–ÍÅÕÅ_[‘ÁÓúÕ1G0*‘àÆ^q¤Ác("‘aRÀõ¨/¥‚7¥_ …(¼õ¥ 3 ¾”¼ö¥¢HsMg-Ìúr_TÎOÕ}á.Š9ÅÙ±*Êýz[º¦ÏÖƒ8;5”‡‡h›ô!çˆjfRcÀj{) Ç^`D±Ô'iÖÞO”Š^Á 8˜Jèõ¨Q½ …‰Ó«‘T¢«¶*7yUXÕß|„1=á©Bœk J,ðÑ‘(!:¨jÕócQ泯F2ƒ8½ÿÇVàÉ5 Åæ‚B§2B¸´øln»^ Ü£4ÂHF£Z9÷ØG»»ósè(_„/Œ Ð@®µâi·vnê˜`4±kB„<*¡˜bl]ÞÕû ¼Ü–{gb V«Õååç9Y±¬¶»ÖÍ')R# 1· ɘn›my7"…C‚MVGÊËV»}õ†S'´¶·ü°)вÚ7O†]¡"Ë7ùn—?™!e4c½Y0" ¡8÷QCjèÕˆ4Wjt¤ORÄùN­ò*Û h ™BL°‘M¼ËÃfó÷9p'tùPÀÐ’aÎc E \ƒâÔÈWg #FœfMüGçÐgåöòTª³í­kx\‹ÍÞµU[×–—î~ý[J½³¿ ÷h@¼:{ZW÷Íû÷ ª šmµ–Æ‚Çb¹¶€båžÝÓ/Z>G¹–+xcþ² eDض……t ™Ò­À!§ÂÝ­£µ‡æY· Åݪ³n±$¼=T‘Ó]õêÑ)Âä0|†ëÔ~C‹f Kf\oK˜cz‡„ÙQûµ¦b™q•‡äMf_„/ŒfWn´æ$‚êž #5gJ(¶5§äÀuÅAÍ Ž ˆ îNíb‚{_sŠ3‰IsĨñš3 “I>2_’8†x0úU|Ȉñ‘‡}A>jWÌíF¦­xÿCÔéŠíº&AM,FM–¦¦¨Þ5衦Pí×MM°hdÜ“9áŒ&©©Á/Âƨ©/w’šlõË4Ù3¡7B-*¡˜b†‡Ôé(Š9ÆÄ9Åœ-ÃhŒdˆ­Uy¼˜£ÖßÃøT nR» ç0~º•g3>ÓQ>¾ws.ã‡2"ŒßÂúŒßøðpÓžYÙ8w+ý²pÓÁfý¯¾ß¬—n£¾u{²!»Ùàà«»u0EèL°»´ETØþÚ?£´‚]—•ë2ëœn2!í$çøõªÊ«õL¢:ûép3WÙÆßþ¹¨g«úúã¡\Vkˆ­iK…@Z³Ñq C!ÎÆÃÀÓ<51µ°äÄ ŒLL)½nbê¨Ý7ŽcXLN–/)ø¿gÆäÐâ åZ‹vE¾ú~uø‹ãú†H8ÍâþhQ)õ’#N¥êC0 `·-ZííïM1²•ÑÂ8¡/ØJ¼}¬ ªuŒ˜l]6ŠîW‡ pjÉœhê]]ÙÇoîKÜ Ä®½±â½¼f³Ò¢=±Úƒ‘8MaXÇÛÍ×ÐT #FSVôœ© {ò½.sÀÓç&ÔU`%Îâ•áª8D%vV?Õ ¹­` ­«ÙóI- “i:J¤ê\*`)eÏ âtÒÂ’t ìëmƒ5Qä5d’4ÎÁ:¶5 –Ÿêe5náA)µF"¡áºëHí?\_}›ïÇr™ $…f/ÈåǦZººžkœAiî޶J–2>¡}Šº„vó¨O]W±¥³–2‰¤&ê5Yʈdm ³}^·ùaS}Ûêú2XºÌþí°vM†ç{ï…¼\åõ£æÉŸÖ7®Ù5+ÓwÛ²Ê×efN Cá  §ÎOCX,‘<,H½/N¤„qM"…¶%)ê”6‘âj!‘¤-î»>I'’&äʼnÄú‰DƒDb§D¢A"±n"QŸH,»YWëcó®m­'N¨“…¡¦;o–ùq=½×YAÁŒÂ¹0g/;¦P6ð89é‘k«ö¿—<ì°jX”½†ßeßa\)Ä•cû7ǘ{‡endstream endobj 2128 0 obj << /Type /Page /Contents 2129 0 R /Resources 2127 0 R /MediaBox [0 0 612 792] /Parent 2150 0 R /Annots [ 2131 0 R 2132 0 R 2134 0 R 2136 0 R 2137 0 R 2139 0 R 2142 0 R 2143 0 R 2144 0 R 2145 0 R 2147 0 R 2149 0 R ] >> endobj 2131 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.0859 629.1757 199.5513 640.0796] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) >> >> endobj 2132 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8293 566.411 200.2947 577.315] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_aa404733a67606f27fc75c26ca65c283d) >> >> endobj 2134 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.0859 503.6464 199.5513 514.5503] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a7d507e3cc7d2bf23bc68091ea72467d9) >> >> endobj 2136 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 451.8407 200.1491 462.7446] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a51de27149b24a20f35c6449615380799) >> >> endobj 2137 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.5345 411.9901 200.9999 422.894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a1f3af0a3897c9ad9d6653ca510e69852) >> >> endobj 2139 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [202.3003 330.2313 262.3846 341.1353] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a921ed3185671c8647e844d4a60e9296f) >> >> endobj 2142 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 248.4726 195.0882 259.3765] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_abed636de0e6946e23bc08a6e5b315e00) >> >> endobj 2143 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 220.5772 195.0882 231.4811] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a389580abe139d17f485ba9fd31e17f3f) >> >> endobj 2144 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 180.7266 195.0882 191.6305] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ae7f51b15ead23e1daccd9db009e7162a) >> >> endobj 2145 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 166.1059 205.2176 176.0111] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2147 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 152.8312 206.9935 163.7351] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a010ebcefb99b5855c5347cfa0ce30dec) >> >> endobj 2149 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 124.9358 206.7943 135.8398] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a7c62fe03c55892e7bb4a126b775c72e6) >> >> endobj 2130 0 obj << /D [2128 0 R /XYZ 133.7684 692.1046 null] >> endobj 2133 0 obj << /D [2128 0 R /XYZ 133.7684 532.8613 null] >> endobj 2135 0 obj << /D [2128 0 R /XYZ 133.7684 481.0555 null] >> endobj 2138 0 obj << /D [2128 0 R /XYZ 133.7684 349.1588 null] >> endobj 2140 0 obj << /D [2128 0 R /XYZ 133.7684 267.4763 null] >> endobj 2141 0 obj << /D [2128 0 R /XYZ 133.7684 267.4763 null] >> endobj 2146 0 obj << /D [2128 0 R /XYZ 133.7684 170.0909 null] >> endobj 2148 0 obj << /D [2128 0 R /XYZ 133.7684 142.1955 null] >> endobj 2127 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F14 944 0 R /F57 903 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2159 0 obj << /Length 2793 /Filter /FlateDecode >> stream xÚ­ZëoÛ8ÿž¿ÂŸ ¨¹|Šdp8àÚ¤Û.°ÅÝ6ÐíEVÝ9¶W–óøïwø’©‡E÷ºÓÒpf8óãË4EólV<^àÙ=¼üù‚x¢eKµŒÉÞÝ\üô‹™F:£Ùìæ.æ&P¦ ݬ¾Î)G„.–c<ÿþwŒi³¿¼¼~i>^ý{±¤ž®óýÞ +ïÊzAÔ¼Ü%LÊs)ßn~¹¸¾iUŠ$$qFŒB\|ý†g+Ðÿ— Œ˜Vbö _0"ZÓÙãã0‰ž¬/¾\ü«e½µSÇ Áh†×fÄ‘cŒQ‘ i– Ú2“03Ó`K!e‚·¶d¦À–·¶”)®è¬%3¶Ü—³S½`r^þq¨Ü`åžÞÛÃÆSüoAð¼\0<}ÞZ*Oô”¯åiƒrލb:„ˆÌ*Oi Å™:r3ÊÿNéБ‚R˜LÈ TI¹ eRtÅ®·›ûX©’àÈ®Xóª¾÷4¿Å ú”¾FƒsKOŠÒZ²é¥·T É+ÄAtÏäX`ø'ÎóÅv³o†À€W ž§1þCˆn9LáÙív›C½™õî/5¬€©›:uD6ê@–õ¤Ü#¨r=¨c±O ŠçÛj5ìLjÝ= lKŸRbÀwØR+2½ü–*!Ù›*%{f`Ûí¼¿ bn`±~à˜ ÎÇsÜÙxL<´ÿ| ›_3’ÀwL6ï–,‰ïi¹-¾Sr¾;b?®7 fØ W­¥‰ˆ¢'ý4Ä}J_£ÈKSnöÕv39ƒÂ#ÃbÚ-UB6…z‚ (˜º¶ÿŽè-$3¥ÉU$1 p·dc1¼y(Ý 4ªµž{7æÍÃFBK™ÂpD6…á@–Æð¤Ü#†r=†c±ÉÝ}FŒN(1à; `B!DQ=m€–*!›cYÏðàx'G°ZÁÔá9â1…ç@Ö Öÿ?¡À¡\»rvµÑÏ|ŒÃ9"v*J§"ë4T‚0Ä…&dž ßR]•M^­m2¡ ¾í‹ºÚ5#˜$$Q©‘€-Ðq¥qŠÝæ{o³âØÑÝA³ƒ|½V R:&Éô>h©—Gò±z¡ËÓ(öáÓÍ—l îÏXWvýfZ"ˆ ‘ÄrAD4Ðîîߺa…J´X2ÈõŸó{o³ë@î —o|î·Û'¿]—{tÒ§\BÁ¡D– %­wã SÞ dfQ¾gïëÁª•`=»ÒS¥$îÄB¨®äMY®ŒY”š7[÷ù›}ùdì\ú7vÇ* ™òñ¶ÚØ-w‡ÛuU¸qµiÊúÎYyágmïú bCŒé³ÚÒ'–6äk–Özw †ˆRI¦íÚR¥„Ca5ô‡áÛÛÿ–Eã-ëg¬d@ `[rˆÔŸlÍ{ApĨ†Râ‚Â¥ÿ¼x¨JÐ# 'JÀ•áùí«{²«·†à©ZU¶h·D¥ìóÇÒQ»à À)ö³.ó•9倿¹®?q»+ë¼ñ;ÆÐìû6ä7±I<‘`8ÕµôËxÂКC¾ÆÿÙœcDt] z^l©Rr܌ܷÁ`½_€uœß6mSF»~ëûƒ1ïxÀ¨c`øîb9 |x«ó¢ñó9ìºõá±¥¬·=¶ýrO½Ú–C× …¨Ê%ä!ˆ ×úeÐi8¬•tFtKƒ(6,)R C~"æ¬X«TŽ ôËxÂXÍßç; $×÷´ègIO”­²¥K,ÙÅrg„æ¡Þî#õ‹¨Ò%Ëȹ6iéŠ ùž®¨Î –12m‘–*!™aŒ0á²+y°[Ôü¹‚:ÔÚe[{cÕ¯ŒÌWæ³ö-­ÝWØŸÄô\ëµô‰5 ùš5¼w»ÿd\š²^—¦âÓIá®êÒFŽÂ¨>¦ÛÒÔ}FÕëHÁë,mF·Ûæ!tUx $=wuÈ©"—)ȺTг:«˜x¢³bÐ- ¡uÔYµ—UæÀÅ„›õ ¹zÓöXÇWÛâð6ŸVAñ7Úh@(ˤ\ž·2ØdÐßòÔÊ8C”`¯¬íûqÑ…\¦mß¾XBKc;§w¦­ƒeýôðN¥N`AŒz®×ÇÌQI©cMÍî­£è* m&'“Øã®ÂÁ_¬3èÔ±?Ú°‡ °»ÇøR¨{ {ZwzfW÷¥©]òñ›!K°ìÑ+™V‡Ï¶2:!Ï”f„Ý*w.Þc üˆ©ÅÍmÕ쪗º–ñïàµÉ_ªý(+áÊö®xétuyùTZ;ï’È»P_*ŒÃjþ6Âh9#ž \²õ¸Hg”†uü=ÅåÍ(€Á ±äã ¥HjJ¿ÃfOæªYÌCÙÓãÇ”“Þî° ˆT´@S¢ ˆ2¤[Œ|…úºÓ–«o§‚1Žqòô1LL6¸©–ˆhêâ˜é‘ªp9RDaLˆ9j‹' (÷å¯-5%;Îd’wfÚ·Pÿ¦ö3/›0å°·µ«y´uOö‡ÝnýêÆ¹{µ±;Çó82è'5Ìa­LΨ„ö&S©Î»¥_ÆF뀯 5#Ýš „öègÕ@•;àfÄ"gorGSîPˆ†à•NèÙÜûöJbߨs·é»e2‡¬mn˜ÜékKtß’«žW-»ºìÍœD˜+e ƒ–‘pI|ú@$Ð/ã cg}¾§ë¬%îkÐ÷K JÈ….Z@&ºrýÝØùõÙ ·õÊÛÖµ½` (WÌkï*É¢ÇO¨&Žé€a)Ϋ`bâ‰< 4T0XvògYHfãÝÃãmYE}(“¥LF}væJu}NÔ§úFø‰2Þ žÜ`GŒ¨×ÓÉ!Pqˆ1œ8à €ÉdÖ‘Ú :ñµÀ}Ùs•S΀ÛПç«6wAÔDƒŸÂÜöý\šãƒ¼†IDCuS¹i9¿þÏÍçüzíž›(hæîk]Börg—+sŒ†Õ|³mÂ;ís9 ”SÍæï~Fîxï_7ÜsèlžÚÜ7rbQùuÚtY…Ÿ„UïM?Q oíT†Ô9Lãäï;Zúe(&þ7$»$ô2übÂ~†82a3WÛ—×ûòôéJP-2ØŸ_Óiendstream endobj 2158 0 obj << /Type /Page /Contents 2159 0 R /Resources 2157 0 R /MediaBox [0 0 612 792] /Parent 2150 0 R /Annots [ 2162 0 R 2164 0 R 2165 0 R 2167 0 R 2168 0 R 2169 0 R 2170 0 R 2171 0 R 2172 0 R 2173 0 R 2174 0 R 2175 0 R 2177 0 R 2178 0 R 2180 0 R 2181 0 R ] >> endobj 2162 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 641.1308 206.9935 652.0348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a088cce4e4843ea71af6047355be29c9d) >> >> endobj 2164 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 613.2354 206.7943 624.1394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a306b179a8566fdb70d54747f9857f089) >> >> endobj 2165 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.0012 585.34 232.7568 596.244] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ad3a43454577309abb2ec1ebe97d3375b) >> >> endobj 2167 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 557.4446 213.4392 568.3486] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_aa3b17f06451c8d1bf07e1e1829749c04) >> >> endobj 2168 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.3838 485.9569 223.8593 496.8608] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2169 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 468.3325 170.1816 479.2365] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2170 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [362.3431 468.3325 386.2234 479.2365] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2171 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [412.0402 456.3774 441.1509 467.2813] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 2172 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [454.5955 444.4222 478.4757 455.3261] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2173 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [154.884 408.5567 178.7643 419.4606] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2174 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.7398 408.5567 297.1493 419.4606] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2175 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [444.3739 408.5567 478.4757 419.4606] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 2177 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.7375 276.4155 427.309 287.3194] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2178 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [383.2911 264.4603 405.7667 275.3642] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2180 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 196.3349 170.1816 207.2388] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2181 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [214.1358 166.7554 315.1761 177.6593] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a921ed3185671c8647e844d4a60e9296f) >> >> endobj 2160 0 obj << /D [2158 0 R /XYZ 133.7684 692.1046 null] >> endobj 2161 0 obj << /D [2158 0 R /XYZ 133.7684 658.3905 null] >> endobj 2163 0 obj << /D [2158 0 R /XYZ 133.7684 630.4951 null] >> endobj 2166 0 obj << /D [2158 0 R /XYZ 133.7684 574.7044 null] >> endobj 358 0 obj << /D [2158 0 R /XYZ 133.7684 529.2499 null] >> endobj 362 0 obj << /D [2158 0 R /XYZ 133.7684 383.0275 null] >> endobj 2155 0 obj << /D [2158 0 R /XYZ 133.7684 360.6694 null] >> endobj 2176 0 obj << /D [2158 0 R /XYZ 133.7684 360.6694 null] >> endobj 2156 0 obj << /D [2158 0 R /XYZ 164.8018 255.6582 null] >> endobj 2179 0 obj << /D [2158 0 R /XYZ 133.7684 251.0755 null] >> endobj 366 0 obj << /D [2158 0 R /XYZ 133.7684 153.1813 null] >> endobj 1575 0 obj << /D [2158 0 R /XYZ 133.7684 130.8232 null] >> endobj 2182 0 obj << /D [2158 0 R /XYZ 133.7684 130.8232 null] >> endobj 2157 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F57 903 0 R /F14 944 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2186 0 obj << /Length 3016 /Filter /FlateDecode >> stream xÚåËrä¶ñ®¯˜òÁæTí xØTñúµ>¸¯6>Ø>P3”ÄÊhF!©]o¾>ÝxàkF±äx“ÔVí€D£ÑÝènôƒb+ ÿØŠ ArmäJ[N•zµ½» «˜üú‚ MµIÁ>¿¼øÃWR­,±šëÕåuŠMm_]î~̸$Œ¯7ŒRš½zõ¥¼m^¾üò—ö›/Þ®7\ÁÛ}Ñ4~ø}y]Ökf²ò°-a‘fTe¹^ÿ|ùíÅ——IÉNŒäT3$è?þLW; ÿÛ J„5jõ(aÖòÕÝ…°ˆ1ßì/Þ\üµC™Ìº¥s‚yNdnÕŒ T¾2 -†‚P9áB‰^D„ñnÍev¬vÀ¹È'¢yù²Ø­ól÷길;x˜Ÿ¨¢(бܵ$Z+ ·ùÛÚò¬Ø?”—ë\fîK¿" RÃІ-ÂIÙ 9`…3¢€íº=šÖÓò¦­«Ã ŽMöéÌŠÃBªº…ÈÅwÅÝòNTQËrP8F¬RÌ­Üa—)z–[Ð×å}Y´?T»övµ„!å#$ëy€ñZ(ÝóðöP…¥ Û˜äàÔ•èöñÈñÈ>ùþgsø-És@áÌQ®‰äT€“¢ˆ’Þ•Ûê®Ø7ËdJJ¨‘‘«Íaþø Â6ÜP:nãiycoª®7`½ƒ59^i‘àê1æ ²7ÖÎë&âÛ$gìÐR¢¬²Ý¶NÝçìHˇªúpwžhù™¢K¦*Ú‘1ë(å^XÆ*àÇwUÝ>ûŸ—Ý`D 0Ç3n:sRá|ÖMÃÉq–{±»wÁ…ÿ9”k®²÷þaŒÛc€ Ï嚩엪i½)!DqµŸh7ôEè~WÇNÕ7æû„›~“.˜r3Å‹ÜàÝ2"@PC¸äcFBì Îl;ņےÉÉqCr“³•Ò °LyfSAPù™!”sáè*ÀàÏà€9ø #LSÆó¥ë'Àu`HÛ_ðº)jpÁ-^±,k&Äæà³«ýDBæ¨5hƒ=Á]Ìá2pQ2I¬\æ7%Vp3e{ Ï@k9jwºb²/p.€s5Þp @Hnài~ݪHí½â"~]ÝÅa\1vuY+mˆ2†õ§ÎR³ÆÓSN,—y¹Ï‚´«á‰Œ(§D}Å ®Ô‘—·¥÷»¢ îÇ%8:^‡7hÎ]…9ðbånÌ/„l kš?#¿xü`õ`}¸ø;)CB£}ì¬×‘ø`­T†yÀ²²%øŸHs¯lcš”-¥ùúˆá¥Ö.àÒyÖÄd^½ÃØ s¸Ý x‘3пªñSþ7 /Þ;nÝÐi+ÌþÑc$k8%›}…ašß²8<Ü•uµõï‚f£ÓaP9*kîï÷k–Ueã_8pð‘—Ûñ !³}y¸A¢p‰Âwp}t‘e„)-²×{Õx¸êæp¬ÁŽÜË눱h¶UváeO§·ßžp•ec|6%øˆŒñ79$Vr`Ó¥›À®!äÒðAž¼d€)ÎçŠ:&tÎà€Î˜ÀïÛêx(öþ «0å>äBÍ=dÓ×úÌ&^À`³pEôA &ÿ—o¿{}yˆù߬2>Ÿ@þ·Ã™3"”üç”à„ý‚ìÅX©†åEmL>Wì1!tASB-ÌEvß%jð(‡zÓ^×`âËðÒ)"¼K*@ðÖ_3ðÚ©;¼žÔ¯ÞÌùûÄ‹ö—¼æ>›ð>"ÍU¹ÇóW,k.ˆ˜Sgj©AƒŒÊ'5%Jšá!…Õ¢Z';>‘‹^­Ç\,¨uÊE¯ÖÂä©ZãcªÖøƒkGÍÆ1Úø‹¶ƒ«!Ò+w@äœg¯¯ÃŠc;§ÍnçÕ]LÁc Âûí„Ñ1¼‡;àEVpK¥´ßÞ4 õè_`¤%ñÏD,Õ¡)ë¶t-°Ìƒ„P ßx [ìíÝ?ƒÃðº.ã«ê°óÕ8Ž!±‚*Hk\Ì(†^#­fN^÷ŸÁòw•׈6I ª°€¾–4Ä|‡ÊwjpÞåCÚljǺõ£ò €m»ÒÏÕpZûq{ëÌ×åöx·à˜€ÁÝrT÷|Jÿ±¸£¡@ªµgŠºÂ@Ä­Ø÷euw¿/An^ÉÀ£WoΩ¬_z¦2á7é‚™Êì/’Ô÷¹þŒÑåÚ@â<[/Dq©GT‹‘ê-l¾±*Ù»i±Xa¸~¬L:ø3tLñeòyuX”ˆÈ96zøi‰tPç(™`›/`wz•Ã%¥Â¦Kõ騫)ð‰ö¨ÐŒP£ä =Êg:œÂ-ºfâ«.(!pA À>E/Çg«] \¢k©n¤wk¾·É“Þ&Ÿí b¨)Ó®èþdgS`·Õˆ}u<îºxTÆVß¶hÊ7å¡©Úê]é ™ëBm¸”x骡Ÿlë‡r®—‹-cÒ–”ëoyÎgú™ !ÐÏ7§„̱%bÏ4§R°S~ ¨¥<ô.ê²}¨ƒþT_ „»'íJMüœ$Û#<ãÝ"ü&]0ãQ&x] qÑI…1‘1vgêÜæÒ*à(›§µÉAÔ㊔úÚ¦³rT¬HRßRÑ J‹‹m˜Ïg½N°ÁÎxÕæ³jê tB`Ë©‰MÐ4úƒ \È¿MÙ†þ÷z ÿASb@Åc™ÉAõöÖßWû½]…Y$fƒ•£kL>D0HZꪻŽmA‚Ubh2>æqðu]Aˆr”:»¤~´ _©H•u—jÁí\§“ »â6/!Ø#¾Iáçûœ¬HõÈ£/ ¿1 CJÆF„:C€€PIf†´·±œç¥T¹ù°o[ºðÿ…÷þ¶ÂÓÃa=ÁÚ@áµÃ°¸½}hFE•bëD=[wo‹¿£Æ”aº ™¦Ü‡QÕ [Öß”i÷ºE™žd×½åB7ÉO4o±‹@Ù£š·\C¨§9;Ó¼íÀüAQÎ4mAp¦X§~E‰dnR:Ð œáeµÜו ™$ðì"·gƒ] Ç —ÙÂ'X~–-ì=šþo»1DèðeX²yÚ ¼W?½Œôئ:'…û:æ̱½~r“.§+Hâskúëru=Æ·¼!Ëwß)veL€‹Üú¸Dq- \ICÿ¡^ƒo=n¾Œö˜~Á6¾ÓAûì*Ýæ”þû΋ƒY‹òWDŒÜÌÅðZ‰pƒ£hÊèv¯’‹q’w[CŒÃSø}%Xkø¾äÿÀC¹®†e Ï+…Lœ‰­9¸o«¤ø5‚nécké‚5‚I}ʶOkWÆC‚&ß*¨sdL°N†9ÕD0)• §À'’aüXÑH’añ¤dô†'É0¤z'’a˜ ɰ‚øìÐÎ~Êð«KÙ罯»Šã À˜‘â·J7™­”•gÒÍì„I0m°{ÄŸ-Ýì>6ÝLœH7„žO7‡d,¦›g6éæ`óG¥›)PWž>™†r51k|àÏy'F%j»\0Ø®är–MjÔÄ2 @~¶vÇN^8’aÌ?›¥@ xvw¬šòÓd} Û´sUþ«r[<4ƒˆbBR‡·Më¿yÞw­@ÚyÜVEšÒÆÕuÄÜëv1ÓŸ5Ùœ–³ÅºŠÔ?ù¯*RC¤Eòô/G4±¹03ŒT¡Ø¾.e]tlÅìïÿ¾á!ˆà‹24*µÿ܆ùÓ/©Â“;$§#ªÿ+”¡¸¾8þòᦜéu†¿ù˜Ø¿ÜXrÎendstream endobj 2185 0 obj << /Type /Page /Contents 2186 0 R /Resources 2184 0 R /MediaBox [0 0 612 792] /Parent 2150 0 R /Annots [ 2188 0 R 2190 0 R 2191 0 R 2193 0 R 2194 0 R 2196 0 R 2197 0 R 2199 0 R ] >> endobj 2188 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.6674 608.0644 309.2389 618.9683] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2190 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 380.0398 284.5208 390.9438] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable_a245630609bfb16d581263b7ee868ce10) >> >> endobj 2191 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.3863 380.0398 373.6754 390.9438] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable_a60e89ab762910b76155da983554d433d) >> >> endobj 2193 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.6641 323.8696 246.5444 334.7735] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2194 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.0428 294.29 357.8789 305.194] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) >> >> endobj 2196 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.9416 239.9435 224.5261 253.8912] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2197 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 209.8012 263.4901 220.7051] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_ae578460dd522485e48ccd8f4536e5531) >> >> endobj 2199 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.6641 165.5861 246.5444 176.49] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2187 0 obj << /D [2185 0 R /XYZ 133.7684 692.1046 null] >> endobj 2189 0 obj << /D [2185 0 R /XYZ 133.7684 592.897 null] >> endobj 2087 0 obj << /D [2185 0 R /XYZ 133.7684 381.0361 null] >> endobj 2192 0 obj << /D [2185 0 R /XYZ 133.7684 376.5529 null] >> endobj 2195 0 obj << /D [2185 0 R /XYZ 133.7684 265.2486 null] >> endobj 2088 0 obj << /D [2185 0 R /XYZ 133.7684 210.7975 null] >> endobj 2198 0 obj << /D [2185 0 R /XYZ 133.7684 206.3143 null] >> endobj 2184 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2203 0 obj << /Length 2230 /Filter /FlateDecode >> stream xÚíZÝo7×_±O…T ¿?Œâ€;'é¹í]¢Ã=¤A Ë+W€¤õ­VqÜ¿¾C‘K‘Ú/Ù×KÒžáq—CÎpføã³&†?’Æ’šgÒPD0—Ùb3ÂÙ-t~?"^h¤¦±Øßf£¯¹È 2’Êl¶ŒgHB³ÙÍ»1åˆÐÉ”`ŒÇ——?cL«ÝÅÅ«OÕß_þk2¥Þ®ç»k¾É—y9!zœo9 ’‹±R“÷³F¯fÁ¤HA Kb úÏèÝ{œÝ€ý?Œ0bF‹ì0"ÆÐl3bBê7ëÑÛÑ?ÔQïah›#×°. ŽQ©ZÝÅN Òìˆ +c¯R¤…–”I¡HðªP™¯Jæ¼ê傘õê«O‹ü®ZÛ]Ã7Š cLÏÚX ˆ[3§±^èT˜Ã‚ƒfkn(ðã¡HjÜzÝríjc"”ÑŽ˜¸^Ò¡û¤û³«jĤ–§ÊkA ¢Hh)º“ÓiÇÙ¦nˆøñÄ ?à0[GÎq&¨³—@IìuÓx8Î`'+£Ë<[žÎ×­ Æ„®dß”·¾ëM’ãÇLÈq.¦„sœ$ÈqÓY³9þïrŸØÞXäÛ$ûl¢øøá.?ÍyJÁTj“>RÓ社xɯ2^¶5,‘?1`Sʰ ¸¡`!”F¡rĂ¢ú¥,&TŒï·§WK‚¯ÁÓÇ¡Ì Ì™E ;ž9¡dþ€&nÚ•þúw^+ØÌos×Ì'DŒë @§¡CÚ°,^ÕŽn„‡Ã€ü? "7QC„Í/‚0“ùu<º $-7.¿Þä«ÍÝ:ßäÛ*¿ñ°mìrl0`AÚ>A~êÐŽ”?™×ñ–#W™M4$æõº ;’Â1ÊLÏßÜyµÔÙ¬¨›û`‰4öJ»8F`n‘pÇðrøãD™[<{[Û¨ 8ŠŽ7ó;1Œ+ ÐA•ßÜß9‰T¤/±«ÊÕöö['—PIà'ÜË]ëýfÛ†8 P¨&â¤V!Xô24ê·ÂSªzq±pV@/U[¯he›Ä qþqóëÈ€)¡x£e[P¬žwWeµŸ¯ßwX( [ ‘òX¬g¿ ¡…£Øê.ój_z¤»ŸÒ2oǺícUøß_ü‹yYÎ\ÖYÍW[݉ŒóЮ™²T#¥Š È'0è÷¡Í‚Yo²!ÚÄΣÍñ¬Ï´ùG›Å“†}fÚ,ˆDŒ¨!ÚÄžH›c5Ï´¹67BÑN›“P|ý´9‰ü3mþ‚´ÙžŒÑ!ÚÌ5GŠ‹§Ðæ0ô\Úè¡Í‰I¡Í©A´yÀŒÆlý´™]"Ø+¢Í±pmæ`ƒ´@ÓfáióÇ åãbeãCu ¯¼É×y•_Öìd»äBÊ /ßȲkã˜ïÑ zµ$Æc„ãb?Î7y ãvÅ‚ÈÛ¤­@‹ Ú ÓUn ކÒº‹õå9‡ÝǰãÊÎE _ lÜå¼ï:Í4@7n€Ú‡ÙR¿–ŸÆZr®1¯µ²;ááœf©“Æ ©†^­„LU'`ïœqíÙúR ›‘3£Ãít×Sr0¥ì,JΉ@Œ >@Ƀ˜5ýv{ÌK°²²¥2n¡æÀ’ fY<} ^À•ÑÀAÜλ-‡•óÎU[¥@­¨n.»Áé a©MìxDC/¬œÁÊ)\F|<ßçp$àÅŽOuoÇW‹¤û³«.“CX…-:œO1€¸›­#𮇥´§ &ˆëNj-$R;‚êÔ&(ÈrÌU}§w×Ën“ì…+ƒ0€Ë±Â¯À`–1˜·8"dPG-ÞÄŽ˜ÕW~‹.®U,[«i9áÚ÷9@¿iÒRšµ¤_™³Ž¹ R†{ÿ³o`W'£$PSê˜ÀïR¶  gD;¯lÏú\¶y.Û|Ù² ³…iP8P¶ bO,ÛÄjžË6íe›F(ÚË6I(VË–JOÁ¥³º’蹺ò«+Ìž+†«['ÃQ¬Ôª+aè¹Õ•x@Ou%1é1Õ•Ô ÎêÊ€Ùú«+2_H¯t¨º ÷TW¨fˆ`L“êŠôÕ•uQEš•èÐã¼zSØkåýnõëá9®±Bëxð®ëP°Ó³K!TD¥X¬')©ÄÀqìË“Owj@Ž6óµ§äûÍ5ܤRîËл”—ùÜçuáåïËU¨³TI½RíÀ¼’”»›À_í·Oçww­ð°ÜæÕ‡ÚÊÕ¯ù·Ð©ùx¿Ë—ûµ›ÌϪÆÅõñó#> endobj 2206 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.9416 640.4385 224.5261 654.3862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2207 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 610.2962 263.4901 621.2001] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a67eb478179846fc940e202476b4c08a3) >> >> endobj 2210 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.9416 511.7346 224.5261 525.6823] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2211 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 481.5922 263.4901 492.4962] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a573b295bfdd242a99d97d0d3a1dd4982) >> >> endobj 2213 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.501 437.3771 239.3813 448.2811] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2216 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.9416 332.197 224.5261 346.1447] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2217 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 302.0546 263.4901 312.9586] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a19bde9d4a37a2ee07016ef627e5fecde) >> >> endobj 2219 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [344.3064 228.26 368.1867 239.1639] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2220 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 210.6356 263.4901 221.5396] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a54e2948a7603a058c6a3cd99f0806ac9) >> >> endobj 2204 0 obj << /D [2202 0 R /XYZ 133.7684 692.1046 null] >> endobj 2205 0 obj << /D [2202 0 R /XYZ 133.7684 665.7436 null] >> endobj 2089 0 obj << /D [2202 0 R /XYZ 133.7684 611.2924 null] >> endobj 2208 0 obj << /D [2202 0 R /XYZ 133.7684 606.8092 null] >> endobj 2209 0 obj << /D [2202 0 R /XYZ 133.7684 537.0397 null] >> endobj 2090 0 obj << /D [2202 0 R /XYZ 133.7684 482.5885 null] >> endobj 2212 0 obj << /D [2202 0 R /XYZ 133.7684 478.1053 null] >> endobj 2214 0 obj << /D [2202 0 R /XYZ 133.7684 422.2097 null] >> endobj 2215 0 obj << /D [2202 0 R /XYZ 133.7684 357.5021 null] >> endobj 2091 0 obj << /D [2202 0 R /XYZ 133.7684 303.0509 null] >> endobj 2218 0 obj << /D [2202 0 R /XYZ 133.7684 298.5677 null] >> endobj 2092 0 obj << /D [2202 0 R /XYZ 133.7684 211.6319 null] >> endobj 2221 0 obj << /D [2202 0 R /XYZ 133.7684 207.1487 null] >> endobj 2120 0 obj << /D [2202 0 R /XYZ 309.9656 139.9941 null] >> endobj 2222 0 obj << /D [2202 0 R /XYZ 133.7684 133.3541 null] >> endobj 2201 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F14 944 0 R /F11 844 0 R /F58 909 0 R /F73 1481 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2229 0 obj << /Length 2805 /Filter /FlateDecode >> stream xÚí[K“ÛÆ¾ï¯À)EV…“y?¶R©R$Ù±+‡Db’ƒ¬–WˆI` –öß§3^eÙÒV¬Úª%ôôt÷ôã›$þHBCJjžHCÁ\&›Ã Nîáá·7Ä­ZªULö×õÍŸ¾á"1ÈH*“õ.æ&4„&ëí›åˆÐåŠ`ŒÏŸÿ€1=Ö··/?ÿöâ_ËpwŸÖµ»|•í²jIô"+6 ’‹…ÒË·ëïo^®[‘¢™RX+ÐO7oÞâd òƒ3Z$ïá FÄšn‡A„pgóúæŸ-Ëèi3tÌ\)Ä•#†*Ñ`ɺ† Q&ØÙˆ!íñó’òE™oAsª¦¹½=¤?fëwyýüTUYqtd?`—+°­½"îÞ¦,ê£5ˆ¡£õ ” B4áíüo~Ϋã)Ý¿¶¦ˆq=çgªFuJG}€ PWéfêC¹$†™[èã;á´¶ÿ÷þÎC™GðGWúÜ»ÈÆ›£§ÕÖOÈóÄöQuïi^Eú´ô«xÀP¡!_«õÝžŒ`D ï Ð3cK53í›ÙIa-”D‚Jj¯¤œ7׉ç‹Ý©Øó²°ßØ¢~Wžö[÷¤È–4,Dneþ¡µµp—¹ï›t¿Ïî=Í»ÌêÀ Î›Xµ—ùÑÖŽ(æÐ,j7%0O‚4¿—õd³k]e?ò*Û¢vH¤ï«,?<ì³8ƒÃÒïªò0p ˆŠ O„VÈPfæ#Яâ#Ž1àk…:‡ñˆ‹Pщè‰Òs‘–jN€·ÖEF£[hXûIv^û1ä1ñ…'¤@šHÞIpÆ'¸<$­an+–jq: SQ©õùhšKFº´^òI®…¨ù/\°eØ.¸n—‚Ndí@×’Ù¥8¾«J ”Þû2’ï\$<ιaÎò‡êËQ‡›MÛ°Ãg&8¤÷>O7Y9xÀ !Û<¬ Kb­¾ðêF¢©ä÷¹1°w°Ò®ˆ’”Ì€M”Gâ#°K?ʱA€íРèWñ€—ðí‚êIÈ»!(£€W»õ#/P͉1àvZsÉ‘`‚\­câ Кsˆa©dZì±õ1ƒEJ™ý8ƒÃ¶ÀˆÖö:žpÇ:Ä=äð"=ds¿á¨!<ý_FÀa‚x‚¹¶F•¥Ûôs!õq{{ÛìüÒ}ZUiþFD!M“êü´rYÆÔ‘Èp­¯ÕæŽÊXl?HðÔ@v´ õÞ®Ë"aøŽ1MÛT Û›I7â –™ÎlT"ªK1MAQé#:ÝRù6=¦!ºC“v\Ç4/`÷"Ä¢·çf¾Ç`‡c‘ÂWÕ2>?©Ý7ñÒ ìäÝ͈ڮö££Hw®ës¥›‚K#|{£SlýÅ~ô%\UÝþ ^ ÎUåiq´\µ{³Z‡l éª',±ÆbRúU<`dM|Ýæ1µû<æ[ /uO’~6 T3óS,•¢7‹#œ9Ò 1à¸+Èçdésu貋,!Ç K‘eM^6JK5#£º+„Ã6~'çl’ïÜghcÙë]i}T‘¡ÁlÄar¥ÅZúI‡|/nÞmz0Œ^¶R š›Z`$9æÝ©Ë»ÿf›ãt5Bȱ>ÍUØøB5dÒV!ßm«!ù «!SÕsÌ.ÖÍ•VC`8Y ᙯ† T54R³‹Õdª¡B˜:§¸X 9ár¼Úÿa @Ì@%º›¤÷Ff€$$çÍ ­¬IêãkÛEÑÒxâ«8/Ü­Çø9ôÃ{&äS€â¼Õê ÓBÖD§ýþßK !¼?¡&„]ƒENÔ jˆ¨. FaëzòU‹ÒêØíhŽl])—VÜ ªÊMV×9¬€oŒ6åZ`_ŒAñz´±ÿs¾±g ÔÐT ³ÈbÉq8!¨]šŠÀg}zx(+·k1M'ç(øÀ™òç–ͶÌü€¢ôs¸3û°BpçÇ¢-ŽðÍá ûØÖ¥æVcÿhä<ã ¯êcÙœ`Ø£ŸÅ³Á*ØiH¥ ›6©„œÃ~YÑßë -U0DbÚ“ipLá©f$¡š‚+C†íHÒé$tûW58ì©–â“nùûÎ<Ýg¦BBî‡(™î3¸¡”_Õg¦Š#Èöz¦ÑÜ’Yþa«IZA²P™ÅHÇ0!ú³Ù#ŒÍ¾‘ÀãýdÛ˜;r6Ý^·³Z4¡‡zš•g¨MGñˆÁÄ :kT‡M¸üøF6—H0ãÄ9x:»?û´W6²?GëŒ0€Yìî0ЯÖHÇX ð&Å“–¬ƒ¶¸Ÿõ„!&‰9q}A(cìõí¥VH ºú®ÃYV•m²¼9Én+ßy³Ìq¨Žmuh° Xï10ÙeUóLÝCÖ5ö’OÉrgïý…MÖ¯ûkG,× 4™ˆXØ)Á²X[ŸœŽ×ˆïŠ×¾¶ñk»Ž_@ªjò ºÜGï“t÷£ m³3N~㣺Ùvt¡îÛéH~B6ýÉO.’™@ÆîÇ#™Ã¾I@hÉ:Úé8ޏ>¡8îë:DZ®ëKïÝœ7š#;OÈ6_ãñb<„oj\¹ìh·G£ ±»‘ö E¦Ð° °Ó4iÉšˆlÚ=vl¡ß3–ë‹*ë_We=˜}•'3VùÙrÅ(=¿ÍË( @¸Æö¡{›´êîÛWäìmÿ›N·»Wº[wY˳η€–·î~Z»û§b›­ÆŽ‚lÁ/ÚŽÌëÌçkÍæ>E¸>¿=(Ë@ä}=.žÔšƒ¨ŒmTÿ®2áˆs¡¯:y †!¢…š9y Ì-I÷×ö _Oþ/NÜ»ÆÍ[ ÎÙæXV#R ƒ$§æÚÎç]ûuÎ>ý%„§y&¢®8‘¿Í™‘Ä6§ç~Ï“]8!œØwtå:q¯^< ¯åÝ ~Ls>º>×®)ËhpÉG›¹8 'ŸükªØÆ˜ Fã_Œs(¦;RYE¿ÍЬJÛ—ÏÂñÀzièâä5~‘mÜ…tÛ³`{Eä-¡·ÂÛY›†Jr ûvçwñ/Ê÷Y1¬ïþ·^#û3Hendstream endobj 2228 0 obj << /Type /Page /Contents 2229 0 R /Resources 2227 0 R /MediaBox [0 0 612 792] /Parent 2150 0 R /Annots [ 2231 0 R 2232 0 R 2234 0 R 2236 0 R 2237 0 R 2239 0 R 2240 0 R 2241 0 R 2243 0 R ] >> endobj 2231 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [287.7193 631.9747 311.2909 642.8786] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2232 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 584.7708 274.7977 595.6747] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_af0bbec3fe5f6b41ff4a95feff6600d57) >> >> endobj 2234 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [280.8156 540.5557 304.6959 551.4597] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2236 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.9416 498.1644 224.5261 512.1121] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2237 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 468.022 263.4901 478.926] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) >> >> endobj 2239 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.78 394.2274 203.5531 405.1314] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a1ea37193efa315fd47f0f104f08aae88) >> >> endobj 2240 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [237.1028 394.2274 326.2878 405.1314] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2241 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.048 394.2274 448.9283 405.1314] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2243 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.4714 296.5225 280.6564 307.4264] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2230 0 obj << /D [2228 0 R /XYZ 133.7684 692.1046 null] >> endobj 2121 0 obj << /D [2228 0 R /XYZ 133.7684 585.7671 null] >> endobj 2233 0 obj << /D [2228 0 R /XYZ 133.7684 581.2839 null] >> endobj 2235 0 obj << /D [2228 0 R /XYZ 133.7684 523.4695 null] >> endobj 2122 0 obj << /D [2228 0 R /XYZ 133.7684 469.0183 null] >> endobj 2238 0 obj << /D [2228 0 R /XYZ 133.7684 464.5351 null] >> endobj 2123 0 obj << /D [2228 0 R /XYZ 133.7684 385.4254 null] >> endobj 2242 0 obj << /D [2228 0 R /XYZ 133.7684 380.9422 null] >> endobj 2244 0 obj << /D [2228 0 R /XYZ 133.7684 281.355 null] >> endobj 2124 0 obj << /D [2228 0 R /XYZ 133.7684 197.6689 null] >> endobj 2245 0 obj << /D [2228 0 R /XYZ 133.7684 193.1857 null] >> endobj 2227 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R /F11 844 0 R /F73 1481 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2250 0 obj << /Length 3023 /Filter /FlateDecode >> stream xÚí[Ýsã¶÷_¡§Fš±|ð´Is—¯‡N›8ÉÃåh‰²9•)…¤ÎçþõÝ@ ¤@é®iSw’¹“‹Åb?~XàØŒÂ?6cBL9Ó–F¥ž­¯èì>~yÅѲ§ZÆd¹½úô ©f–XÍõìvsSD[Æg·ë7s. ã‹%£”Î?ÿü'JyÛÜܼ~ß~õêûÅ’+hÝæMã_¿-6E½`f^T«:iFÕ<³‹··ß\½¾íEŠFb$£š¡@?_½yKgkÿ›+J„5jö?(aÖòÙã•Љ1Öµl¯¾»ú{Ï2ú꺦!¤yqP„´~˜• ØB9Ž€p…4øh•“,ãð¦5…7Ãz­ªlf@«Zx­ºž µú·—ó¼Î‹ÆæÍ‰Ž2N£b³?™ׄRk@œHàÈ@5BÁ‹$VÊÉYã Ä nN§=¦g mŽ&÷8f.`æ<#Òjë¹z¦Èóò‚k¢hqbÁ»¯k=øü«»4Dh£Çƒw„´£ˆ’,›6}?<=v¯V -b(Qè±KDpb +°Ô Ÿ•4²UG€ –UÉlÖ“¡­¢ÏƒÒyÓž)e™Å|_À|A,k©LÌ—óx¾VÉ•Î7_,5ów ¦æÅªÝÕ8ëO¿`±¦À©¹Da±Ã=Á€5¸œ¤6lwÕ}‚Iç—žèÏ .ŒÃxGQûºhŠª-“1¯ðiçÕ²=ì·…o¼/\ÍßõDíCá©V»]½.l^åmÑø¶²:Áø 1C5`*Œ«”WIù˜ß>Äï6þé¸â‹30 ÷c_¾wjÛ’±©È ¦e4a¦rtX ±øo+JAFR™³y®GLŠœÊsNYhä6;¢"B´Åã~ æ—p>V‰¡O †p>eAû¼/*ÈŸ`wBÍ¿KðD %C÷0´ÄÈL‚w˜’wåÚ3C››ºÈ÷Ÿ¨¢‹¥Ì0"®on\ È·y]çøöœòtÅjsnrN–ÎÓSÓÉeŒ_šMÇáž ýI&»é‚KcL¿Çu™îïu‚) ÀJŠ™. xT¸ÚUÎå… :˜ ”Ê¢‰ìüľ(µVòüܲçç® !£)ý‡D-€`K޶‰mïSjïY?ÿïÙ\ÿÐiCLgD6JÝü¹¹<-¹=;ÿ ç%(-ÕYD\Ò ŠwÎÓ´u¹ž6yÀÔü¸h+ÊH L`ÆI$G¤\u2Wèj‡íö‡…¦*EbX¡ SLô\›Ü6)•4æÂv/&K€Ÿž›´ÄÀÃ=ÆpQ¬±>£Üßîš"dú²jwþí ÿž£.×Ô»UÑ4àï Ô0èw(ÜÞÇå}°tP½äÖá cúñMv›ß¶.Л«bí›ïž}sû„*ßùFåê¶\¡W^úõb^{Õ<=`NÿxÔ0EI± %å×ø¯—€N')ö’"ùxDø¾=×þk¯èá~ ¶ìUŠo½¬dÒˤ•Ä+>ÅÄgÀ‘Ì 1؃À‘ à¨iÁìV˜XØŽ° 8òÕúð×h‡J4?¦'6÷½ðï¶H2.%Ñ¿ÉëÂáfßÖÄRk4ë¢=ˆ3Xªd—ÌÖ‡¯«õtþògØ¿ò S¦`óć¦z1ò?t ›ý Àéh.É¥ø2ØàªŽŒ»”а]5"à2;Šð@d†[>‹p˽ñ&ñvÚH5 \ùB*ˆÉΤ "r\ìa*ð Ôv1È…qP#ÆmoÔß7>C\«!t×åÖùªž»t¡w»Ý¡¯>ùæï;Ò»ÂÓ4ûbU¢w¬ïžÇ ˆJ…¤ ûy& •0üTßšoã-PG¿Œ;œªæ”/NkŸc2N´ÉÆŒw^Õ¥a3ܳ >¶:<Þ¹xwÌ`,ªð]ˆ®._•uðÉH–I3Œ†~Û$„œoµÁ‹ ù Zò¦Ù­J°¹c° |z÷Äyë!Ò´yéò ü&²ó϶mQW6`Z×êõ¼Üô]ê0@ÙxîÕÎÿvR&ò‘Ï•n§ås|½îɨ210­GvUøX†’uó\A‡¦ügØlêÝãˆQÙŨéd!¬¬•}P®ˆhϤ ‘x¦V S… ©ÂAeœ©eÝaUù©ñ4>7XÆ}Ôqm>K$½Îq;ñæ]Y·‡|;‚D†q)ÅdgBP€ö)D*‚ÚC=^ÖÞ ¢jTíCJó!–pºˆÒŒÉÀ‡±’œ9€­ïjWÎÀˆ ‡?Îz2œðë÷«bߺHxr>©)æzz ˆD1—±œhL,aBlªBäK“TCÀï>¾t¯!|q_éê”ÿʦªSÃÏ¿ú°—K÷‚(£ÕG”'»ø•,O:n:msÀ‹——Á76×\ÆÝéÌ‚UYs±.f›1¿él:M&O¸ÌB|‚Á)›é‰óOgf=ÚøõBB|ªî_wy»Èäüy_Œmžs•£ÑGÜSÒ¹õÒ/r½8¸5LQþ› †ÈÜ$–b_{ºÁR´!pv{ýMb“ ˜J!N6 þ}4ñl»ìÚ=Å„ó1Â1°¬üÿvu£ŽKQQZK¸e í öŠxu>õ•/4„o‹òq¿-`«ÝG”6örja‰A‚¾ëùèÓÓ/ã “?á‹"áÒí€aÞmOÃŽæF© :9zT—Ä8á†bL#In`Mô”Œ‰Ï`I®Á?C…¯‡’ú¿y$#¦Žd„µç+¹BbâHF$€îS]¶n4ÞW?ô±úÁ/§™†t'©>_?Js¦äÂ@”ùÐbÊ>…õ_^è_çmž¬ð3Â¥Õ/¸Âç.”eüž*&;“!ùC~y§É¸+~ÃÃ×ÔáÅí¦2q,ù6¾ÝÕc¾òÏ.‹Ãë¸4MOeûú=ªã˜{}PÜWÂF —®“ÅéÑ顊ϰΠ&¬S}†Ç‚‡M"¾ø2Н/owùÚÕã9íšB}ÊQnNR†µÃÖ’ØV¦²K9¬£_ÆÉㄯß%Æño\ˆëèóCQÆp¢£º €€tÊ6CöE½ÙÕAð+o#íT ‡²p85 "‘¡+á³ ÏОW¡Êe †B¾³Bm¨•ÁKwCû)1xöŽ†Ð¡H _ÆRPdÌ×{âpp$µ ² wz$ÓtT—$±˜–CI¼‡Òƒ× *ŸÕ®%ðfõüG_«sŠÛƒãíëPÖÕVu}Á/Ü"bB]:’ÛDµà)ï ¥œpØxW Žpª˜ã.½ #þ3—<™â€˜"­¦‹9=ÙG^òŒÙÿ~Éó÷Kž¿è’'–]çúÂ%ÏžìC/yÆ|_Ò%Ï“ù¦/yæënN2Ýœdî,ß5ŽÎÛ‹ŸùÖiÃÙ}8ßïo'$z9\³yíÇ–4òO®ONÔ±ë¼êÊ'〈X2ÉäµË—µx/äÚå2àçdØ¥}èÿ焱3€Q‚Çÿ¶xG'Æë˜šµôÛõ/‹ áU—»ó×Û…åóCXûWÅÊ¿hÿ¬ÆüÓ7Œß¨ðkƒ¹vŽNºít0£puçÕîýó}ÊŒ ¼g°sïD‹ö/´6e:endstream endobj 2249 0 obj << /Type /Page /Contents 2250 0 R /Resources 2248 0 R /MediaBox [0 0 612 792] /Parent 2150 0 R /Annots [ 2255 0 R 2258 0 R 2259 0 R 2261 0 R 2262 0 R ] >> endobj 2255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [350.1126 422.4743 373.6841 433.3782] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.9416 314.0148 224.5261 327.9625] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2259 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 283.8724 263.4901 294.7764] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a63b3ceb651637d7e73fd4a787b136450) >> >> endobj 2261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.9394 198.1227 322.3608 209.0266] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) >> >> endobj 2262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [207.2468 186.1675 296.4319 197.0714] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType) >> >> endobj 2251 0 obj << /D [2249 0 R /XYZ 133.7684 692.1046 null] >> endobj 2252 0 obj << /D [2249 0 R /XYZ 133.7684 667.6624 null] >> endobj 2125 0 obj << /D [2249 0 R /XYZ 133.7684 621.0373 null] >> endobj 2253 0 obj << /D [2249 0 R /XYZ 133.7684 616.5541 null] >> endobj 2154 0 obj << /D [2249 0 R /XYZ 211.8448 499.422 null] >> endobj 2254 0 obj << /D [2249 0 R /XYZ 133.7684 494.8393 null] >> endobj 2126 0 obj << /D [2249 0 R /XYZ 377.7714 401.717 null] >> endobj 2256 0 obj << /D [2249 0 R /XYZ 133.7684 395.077 null] >> endobj 2257 0 obj << /D [2249 0 R /XYZ 133.7684 339.3199 null] >> endobj 2151 0 obj << /D [2249 0 R /XYZ 133.7684 284.8687 null] >> endobj 2260 0 obj << /D [2249 0 R /XYZ 133.7684 280.3855 null] >> endobj 2263 0 obj << /D [2249 0 R /XYZ 133.7684 159.0449 null] >> endobj 2248 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2267 0 obj << /Length 2495 /Filter /FlateDecode >> stream xÚíZëÛ6ÿ¾…?d fø¹÷Ò&MÛ;~IóAksw…“e×’»»÷×ßð%S¶$o[²@‚MŽæAÎÌo8Z2ÃðÌc(—ŠÏ¤¦ˆ`.g«ÍžÝÁâû+ˆÕ"%ûjyõú.fiIåly›rHjBgËõ‡ŒrDè|A0ÆÙ×_ÿ„1m›ëëwí·oÿ=_P³UÑ4~ø/skös¢2S¯ ¼$ ™ÂóËï¯Þ-;•IåX«ÐÏW>âÙôÿþ #¦•˜=ÀŒˆÖt¶¹b^"„Ä™êꇫv,“U÷êÐFt40B 6ÃQ!aéàÿ÷ÏPA"I$S!®ŽHË …˜TòTx$Ä@Š„’r|S¼t<ÛÄ!!H qªPxáÈmÀ5àt¥Ôà\Á–HÕ¹† ©kðIAÕ¬#³®Q¿«ÌÆÔmsv¾àgB=K¹~r[A)­1°•ÒÔV-§BžØzØÜ€k;/ßÞúç®|œ‘™*x»õÏãŸû²mM}º;<aJÒµ;Gïd œ Ÿ&4ð—ˆFPiŽéç•bÔ¡â¢^<÷%¡a”³$ðó™‚(>émIä®—%ÄÉé5›]U´.¼þ†¤™#‡#Vcû⟖ò’MP±  H0°ëùm‚¿?ÎÁ}œ×ÛãrÞ>']©Õ ÷““ !Ì$c“û q‡0û øtá’pÆLžwêWÅóí&Pªåù˜ÝϪ$“ôÒȉŠ@Xþ.ãÁ 0ì ”_=/ˆ½ ÓØÖˆbÁŸáœcÿ`ÂS² çP÷ñœô)tmšÃMcB>µ!ygj³/ªò¿¬©Ê•qÚ^hûtIÛ×=”õ7Õ76÷“ì(Á¦ J½ˆ×"@âa‡8-A²ä€g€Ú•0gõ7èÎÂ&Ê:LC®ŒCÿ6õŒI´F«ÃMà4v ν¦ƒ*’z^oç]Šžõgë×4¨ ƒu x@š…Òu«ˆ¿×‚yö]ë§ÝŽÀ³_:ÁÄÍS`ÐÕ–ë;\#h¬ ZØå&°]Fqçµ;¹E°¡_Øûl^Z!$ÏV…ë1•­·¦ñsõ¶õƒæ*ì[¿Þ/Ú`5ì;,…²Ì—Aö½ÀöÕ/@Rv¼ý³_èË’Ô‹ƒ­ˆà°¡7"p¯Õ1ÐÀLöúý)\}D£f‚…ªk%Έ‚bŸ²Éê€Â}—ºû2‘dcÕA ëȬUÿ˜»ZÏׯsŽ{¦kNáz…Ù,e–W¨Dkê$ Ÿ%ð „»Ïk>nµŠ4£þSzûGm:Kß8“ –3°œàhÈÚ_Ú³Ÿ¼=˨=/ÅÆ>\j„ |G–HØH¶K YÉØVßãh«6ó’Zµgæ·j{æ»$/•€‚g»_—5”ðŸHoƒöwHc¶÷b;YÕω^V÷3Kì³S/úi0|«ŠTT ĶQ_Ö|æmÔ—ø½”a5žcßi0ÔÙ 9’¯ ÏÌ ÿOl5UÂß5*¿|´ü g¡@5A4êŸtdÿt eørþtàÌÌaì뙹Œ×Ãßþ/i3>ïØû5_ó(Ü>”ýì4Ýñ¤B J±èw,ç\e¾_KÕ@kñ±íîհšÐ,ô.`η™|gF%KÁ °æ±kø¡¬«²6¯ †ÉpAmͪ5ë£í*bŒ]jפdí B|Á¸7ía_ŸôW|Wíh­]³û2ÐqéîÃf}rã ínÿßÙ. ìch£¿iVe¹¼©ÂOÿAÆ~ć¢uÿ C_QŽ!¾]l×¼h; ý'gF×j?þùªë]á‡ïµQåÛývs²·Ûþw!׺´2Íõè!ÙK0•Z]8¤”là ˜¡Xª#7w«¡TœÉ…ÖšåäFª‹r’¹è‹õŽîÇM1¢ø%“²)“#Ùe“'åM¾ 7˜œŠ &¯dž$Åd~Éæ#Õ”Éê²ÅSBO ö&2½¹Ëyγ©cfäd<CœrH§l¸©ƒ;üÝ žî0&(Éu\Øã9S½\§àl%÷îü¾ö1q,çšf±C÷Ö¬ü@úÅ$ô¥‰¼&ô:v©omrˆ'BE(6§½·Ûǧ»¡bÃ~Ò€ËFT-Ù°ÿ?¢rendstream endobj 2266 0 obj << /Type /Page /Contents 2267 0 R /Resources 2265 0 R /MediaBox [0 0 612 792] /Parent 2273 0 R >> endobj 2268 0 obj << /D [2266 0 R /XYZ 133.7684 692.1046 null] >> endobj 2152 0 obj << /D [2266 0 R /XYZ 133.7684 598.2565 null] >> endobj 2269 0 obj << /D [2266 0 R /XYZ 133.7684 593.7734 null] >> endobj 2153 0 obj << /D [2266 0 R /XYZ 470.1736 488.5964 null] >> endobj 2270 0 obj << /D [2266 0 R /XYZ 133.7684 481.9564 null] >> endobj 2271 0 obj << /D [2266 0 R /XYZ 133.7684 348.6606 null] >> endobj 2183 0 obj << /D [2266 0 R /XYZ 133.7684 277.3281 null] >> endobj 2272 0 obj << /D [2266 0 R /XYZ 133.7684 272.8449 null] >> endobj 1289 0 obj << /D [2266 0 R /XYZ 133.7684 138.2973 null] >> endobj 370 0 obj << /D [2266 0 R /XYZ 133.7684 131.6971 null] >> endobj 2265 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2277 0 obj << /Length 1928 /Filter /FlateDecode >> stream xÚíYÛŽÛD¾ÏSXEª‰ÎùQ$`»¥HH@ƒ¸ ½È:³ÙHI¼µvûöüs°3Nì¤ *ª­ÇžofþóaB2 ÿHFCJjžICÁ\fÅv‚³L¾žºêPW)ìÛùäÅ ™AFR™ÍïÒÝ’†Ðl¾ü=§6½"ãü»ïÞaL›z6{õÔ|ýëlö[5%:/w+ø`wõºÜͧŠçìôŠ X±YÔuþbï¬GÛ]³’p’k2}?ÿaòjÞQ›AÂ’8Z?L~³%°öÃ#f´Èá#b ͶÆa!¤ý²™¼üÜm™Ìú¥C2âJ!®Œ‘PÁH s$$¡e‚}¢Ä‘¸ŽB¢º AHS•ÛÊËhT4‚#ƒñEm'0Ï ¥ƒÚfi-ƒ¶_=ö¡ ƒÎš2Ö®‰^¼ÙB¸.Á“²ƒ3][b©Ý k€@§RŽ„ÂÌÏ"*À=íT`‚f<õ8 ›KÖ³S®’Êx=ü´¿7Ù¬‹à5?Úí­­Âøf¿+œ×£²u møé$¯¿à\\‚ñ-Ü‚”²åh~G©8¡ lZ¦²d»s* _ªUœú%%Mh¸HY@¥„ Ûæ1©” ¤Ó¥Còé@ç© \ƒs+÷äƒ.@oMð¡·MµÞ­Âøù¶^}#QYn¨^oì®yÙT{ KO èÀ0 êæà/ “!‚‰Œ­pµ-!NHi€›d`¢$˜(÷BUA¹c§…‡REò¢èY(wŒ(•?TS‘ÞЧ)É­KŠB„µ_·üÃøÙÍ”‹|ÝÔáõUU¹÷²šM¯˜ ùcxmÑvJq}á“‹¾Ï·օ)wtœê|°WNˆÞ}Avà"žbíh,‚з¶®S‚ó•ûÏÇy4îhDC WŸRð¹(€)2TÖ¥]Dbâ½¶ÍlbâÀµ­‹j0J D<eSÒØ™DÊ”FB*þO%ÒãÔ9¿_;1,.;ŸÚ)O<=!î=%ÄáîÚï°¯}d…Qe?ìmÝxÚ ÍáëâjÖÅ~³¨Ò³$çÅn7oÂsYں ©‰à2»2:QV•­Êݲ/¾@U'˜[4­¨œ\ÆM‘A‘C%¤üO1Å|ÆDeXR&#ÚÖ€.ŽU{ïóÞŸwFÙû|]û-D±ÅY3uIªÆPõÓ8ƒªÆ`*/pêEœs’rÖ¹Ù_©o/Ô¾Ìø¨?…ò[çmìçIìÀóPA`8Ê ¼Ð®& œÏ¡LÙ¨& `º5² )ŸAN÷O’‹¸eH.AI/*M h­Û Òå dŒÖ4˜¤:‰Cì˜\*éSØ™HD!Ë3MN"11Œ]ÂÒP›‚„ÏAâ½Ì ÚDÀÝŸÝøüã>Cþñ¹‡j¹§ rìùnQÌ;nÖç?w€ÇôÒ AS>Ù¬¼šBªÐ jÌ\Ã7˜Úr½$Léù D‘RÔ/” ø­C#®ƒùBtJy¾€À6®¹ŽNˆ…â@(…ÓíO '(°ï6‚Oìú„¯® ç£\»C¡®¡1ᤋ¡Î²Ò'ççÌq=²‘¡ß@aS·çåîÂ)ŽtçíìàÙGÓÿø±WàIRËãÓðëš )ǯ)Âé8Û¶ÃÖÄûŇÝÂDb_ŽBï þvLiwKxd¯cä‰eB”†˜,Ýî_gˆ2ó&û±ÎHÄ©}.¿‰­Á!¬t]ú®¬›uZÅ®NZ®`wò9 ä`‰Ñ·ÿ÷¾Ùûˆ®P#Þ']!¡{EXROŒy`ºåçã'Œ{`Qß?¸rJ¢Ø²?@ÑôÏ¿<Þ[(ªc¡0×Ó`Ø®'”ñ‹ÞÓ}½7oæog³?|ùSÝ–µý±\žf ób-H:¶Úu޽†Ø‘àâ5ym£¬ÚËDhŠÐh¤úœ ç¿©¸†-5÷ÆGæ\](Ía+Ä…R±co¯‘{}`ÿ2¹¹oM£8ü˜òè®_ñeew¶Ztð]UnÚå»r³ m~w§æÒãÆÖãWЄ¹Û/vér$…¹ í`¯BÏŸÛ¢.žî9{Ǧ¿ ³ ½®!D_b9c¹…]fùì¹–/œYN,OO£Lk9–›áË…6üíáRñ¹û~š\¦B×-‘QШ§žÒÒåØxÝ·ðÖGæSh&÷ÑÆ¯m¬îdxÀ $Œˆœ:ñíÎùÁñ/5ñvîcܪ|úNuuã„"ûæq”ñendstream endobj 2276 0 obj << /Type /Page /Contents 2277 0 R /Resources 2275 0 R /MediaBox [0 0 612 792] /Parent 2273 0 R /Annots [ 2280 0 R 2284 0 R ] >> endobj 2274 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1ExtHDU_1_1WrongExtensionType.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2285 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 175.44000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2286 0 R >>/Font << /R8 2287 0 R >> >> /Length 2288 0 R /Filter /FlateDecode >> stream xœ•ËNÃ@ E÷þ /…ÏÄñL–”ÛBPõ…H´åïq^4Ý hb{tí¹Ç;tÄèê¯‹Ó nŸ{pøhg;àF€]˜VxWš(¢O$.*–sh›Ù“O¢ÈJžCÀ²‚«Ñh¾:ì‹b|<<Ý¿ÅÛçf½°b¶Þ¯6ëò{;».ßa\Â|F’\Ž_6p;ìÇvÎêP8W'm’%¦è’•çy-XBUŒÕSm§‚œü—ˆÉGAf!Q9#z°ÿø8mò qÁvŠrϽù¾ì8S¡,4¶‡ùI¶„ Ñ@RmCÈl´$íºƒíëÏ£^ËéJ JÊõÀf [Zô-Ö®åtÕÀx 9ň1 ùÜ›Ègy {ax“¥4€™ßØ’~Òð…üendstream endobj 2285 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161255) /ModDate (D:20111206161255) >> endobj 2286 0 obj << /Type /ExtGState /OPM 1 >> endobj 2287 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2288 0 obj 301 endobj 2280 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 457.8609 246.8638 468.7649] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_1_1WrongExtensionType_a1c51f9e5196cb93fc2afee6ad95665cd) >> >> endobj 2284 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 190.4469 398.7049 204.3946] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2278 0 obj << /D [2276 0 R /XYZ 133.7684 692.1046 null] >> endobj 2279 0 obj << /D [2276 0 R /XYZ 133.7684 476.8647 null] >> endobj 374 0 obj << /D [2276 0 R /XYZ 133.7684 418.7073 null] >> endobj 378 0 obj << /D [2276 0 R /XYZ 133.7684 332.2607 null] >> endobj 2281 0 obj << /D [2276 0 R /XYZ 133.7684 309.9026 null] >> endobj 2282 0 obj << /D [2276 0 R /XYZ 133.7684 309.9026 null] >> endobj 2283 0 obj << /D [2276 0 R /XYZ 133.7684 228.1057 null] >> endobj 1125 0 obj << /D [2276 0 R /XYZ 133.7684 116.8421 null] >> endobj 2275 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F58 909 0 R /F11 844 0 R /F51 914 0 R /F73 1481 0 R >> /XObject << /Im12 2274 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2291 0 obj << /Length 2812 /Filter /FlateDecode >> stream xÚí[K“·¾ï¯`*U2Y"x?¶¢"GŽŠ’H›äàøÀ%gµL¸ä†3´´ÿ>Áƒ˜À•ä”)—ÌáðºÑh|Ý `É ÃdFCJj>“†"‚¹œ­®ðì=üøÍñ eD-SØïn®~ýš‹™AFR9»¹K{HBg7›ïç”#ÂK‚1ž¿zõOŒiS__¿þöæÝbI¼Û­êÚ=¾­îªã‚èyµ_WÐDIÌçš.~¸ùîê÷7Q¡DA KbÕùÏÕ÷?àÙ´ÿî #f´˜}€/cèìáŠqhD ovWï®þ»L~m›Ž™!b–0$ƒ¥3¢ÂíǸɤ:ZL¨ÁH Ó3™Pˆ2ÁÊ&£:š Ád 5¯Ž­Å&íc&yivX«+¥£³Ë(ÒZºÙýSõp8>¹é;Üþ«Z7îùX=«ºÚ7«f{ØûßïÜçÊ}l¶õ¿û*SÃaæ,£ÕØþr|ï!oÝ|™â‡ªzµš·æì‰g„! M»âû~àA¡ŒHDU]©v2w²‚Át‚_MãœÁ“œ· ~¹Ý¯w§MåZ€÷[˜£)he¿éS!űñ;`t?ÒHK!<ì·Ón„au`F.óû_ƒHÉ:Î$4CX*gœÖ¯«zR2˜Œú1o ˆÛ¥÷r!1â˜NÌ0$,õ,ÂÚY£T ´óKÃÔ,íp(7 Šr5’JtÅ®ÛuÞ—«1 ZuåN®‘ˆ/i0è·’Õ¾yu¬VÍ€]À$Ëäǯ8âÀk p&9X'†Ië~£þÔRÂ\ .pö(â<Š·ê+Xe~0«~s\p1?|ä?ïVÛÝé¸`@îEspŸk÷ÒŽ·ý¾¯DÌ?¸/nñN»',ta}§à€ ,ç€VvÀ¬Ü³äzLŰ#÷Ìk0è78àŸ«ýÐý0¸ ÖùÑ+Œ ˆò/â~ÀÊBR]r¿û$÷;Ø‘¶OÕ‚âùÇmÝl÷ï/ó>Ì‘$¤äSXÎû¬ì}Y¹gï+ÈõÞ—Š-x_Gî%Þ—×`ЯUáÍáÝi}ÿ‡¯ÿ6p?ƵÉ`vøܨÆêK¸×A.É îaV{çCëêñœƒõ=òöi02™(er–JÌå`_PqدUqÌ´R"ɹê)гLD•ÄJm³/ÖëÖ^sܶôþãjç¬ñP5÷‡M&Wj€R™” 2K, Š+,+4.°‚P·¾R™ùåÕzÁêÊ‹ï÷jå«ÛêàÍ¡ywz|<›j3ph@Õy#ØT„Ó/Bó\BM©JIF@õIža:¿;홟öuVû °ûÑú[;êúWð’ðy}ZÛw÷²ª]ÛUÓT±¥ö³®vm‰e!^jí¥º¯¾¹×eû°Z<oÿ׆›'Cýi„6 E4Õ¾•2~Ï ˜±åé%© Τþœ€O(¶­9ÝB»Û®]Y eå-ت}~}Ú¯[ƒMk= #𬠄¥ÀÈŒ³0QXµV\¶i‡}¹à¦š°àŒÓËË/Û¢rÖÑm¬¾%Ê gU[PI(7N8íY ¼†¹åTÍßÅÚü…Ã<¾Ø¯*pz®Èüí?PÓ¶ïíÓË·ÕjÓþFç·‡Ãε†ºcóõªY½Þ­Þ¿¼³>¼ÚÕÐ…õc» £T{KB@¼ð“m¹¼n6××?Ú¥+–ä°î•P(0˜¨NýÜ#L:Ôñá3ìˆJ`“ÖÏ£ý„ ûÅãÖåñé ÊY Ÿê—eu 1F™¢¾â³õíìØ)…Äþ:{›…ó“añyÔ›ö‘áÞ³ÊÝ®ê–3léfçþx Öe &€š0+QÁ•c*Á´Ðgó@^3O‰bYÈ#’@V¢&Pì0ҵř('‘(§‘(g‘,Æ>ù×±%»Ø’Ì_ÜoNoÎGX別g»Ï¦I—ÆøcI!4zAÄ ¨‚0;éqe­=È.9¦,=*”ʬ½N?vØÏ¤ c÷Ý`EþôšŽ²„gg†AŠÒz”ž‰¹ˆž9ÒLæÇÁ˜¾híËXüÜÏ9_ÄÍ aà€/¤-}¾Õ[ŸÞî½u²G›Ô½,7ˆšñTàbâNúÈw€ùìŽú9?&ö,Dõt›®@¾ È°ß)†¤ØOj–µÎ2¢Jr)A0e¦+×oç8ì7þØÄí>n:%5¸J@ÖÕzk›K%Æ(,ìËÍñõ‡ýNîLP„¥Œ9«ETIì 7+vºD¡ÆŸPRˆí),Ü#¬ÝsrŸÞKÊ9XG·\€Ï›$Dø‚Pm+]í]‹$1^ÒsŒ—IŒ—òãá}ˆñRÌ“–ej¥Ö11"ŸöB¹É.àV£°ÊçéIG6ø†Ô¯ íå6!©=õºŒÄrïTÕÒÍ:.‰€ÄÀl~&10Ø‚s$©é…öÂPlþ¤åϪt‰Ä! ÔÅ¢ …åˆ#ÀÊÄ‘‘ûlâ((ç‰#Õ-KY“DâÈ â\«žEâ€p‰ž_¸ˆ²üPÑ ¢ Öö\Ýô”œs_ÐwØïä-ª‘0ÂäÍQ%¹Œ yTWî‹úp:®«lêF¹ÝU•ìsR·´LêamŸž‘—¦@ŽJuP#2BzêNgs_ÐmØïd6Ç âØ-g°eD•är›—ômリÍEÖ‡£3UýxØoœ£|ÎüòaÛÜ»·ëÃã“{×Þ“1ö¬Æƒ<»·÷^Ú­Q‡l)Yd/¤¤»mc»lÉ*±öß¿½sŸàÔ±QÛ}ïjí÷£ÝtØX&½ãÉs7µq›Cå;Øü¶uݬŽþÑ >(3²;ýÕ/¾²›ä`œv‹|åvÏ×M;~,”îýă®ÛÝî|ØÞµÆ«9“ciNØ•.%Ï¿LŒ%Ïý~Ï·*â*êë¢ÔzvG—>¿TI k%©êjÐ9Ì$Õ{K©ŠIuËÅÆ+ÇÆŒÜgÇÆ‚r>6¦ºeccÖ$16æ…Æ¤ºc‘ÿ'ÕIRÍ0Žc²{t `‰âÞ¸½f$?*Éâ>MÙP4#”^Ü㴢ܜ3×%ÕfÔ\Ö¨ûÞ.~ûÌŠ`R«ñTÄ»ó ¡&Ú–²K*ÛR:[‰˜ó%œ»MM¶Iúù¼£’ÿ…ºŸ¼ úÓœQÙÀ±íkXíäò*ðº¿/`Îýâe&ç6R—xŸ¨éó¦ˆàH %Ÿ&_hB’¼L%e’é› 5#¥±Îª¾Œ¨’\ÓîMó®ÜîNczv־؆›j§F¹;{ƒa·mžBdö㈥N,K×qSX&uˆ°bê“ûÜÔ¡¤œƒutË¥y“„Ô¡ 4”Õ]‹dÊêý¹ nÏÚk_Ûæqû±ÿv¿‚ŒÞ¿Ü"!òŽx¸Š+’~6²H£-zm‰£Î¯R›HÈñ[Ä—³i¹õ`m*Þ÷ü»ðËÜhÊ© fŽkNzc˜®p¾ ð°ßÉ ×(ÄÁY+.#ª$×@Øšuåº ·Ž|Ѭ¶ûh™Î=£Ìý9m“|â¢NHY>û¯yRzÁ1šþ½’ÍW¡ÊOo"­ì0¿±·j/^¥7vo†ÎO¾ÚüºòW¤û ²Ü‘ׄ^ ÿíÎf-ÁÂòÄ{—®«Ãǧ÷ÃÛÍŠ;® ?1اg gendstream endobj 2290 0 obj << /Type /Page /Contents 2291 0 R /Resources 2289 0 R /MediaBox [0 0 612 792] /Parent 2273 0 R /Annots [ 2293 0 R 2295 0 R 2296 0 R 2297 0 R 2298 0 R 2299 0 R 2301 0 R 2302 0 R 2303 0 R 2304 0 R 2305 0 R 2306 0 R 2307 0 R 2308 0 R 2309 0 R 2310 0 R 2311 0 R 2312 0 R 2313 0 R ] >> endobj 2293 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.1427 629.7331 314.6183 640.6371] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 559.3064 226.3501 568.1531] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate) >> >> endobj 2296 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 529.3537 221.927 540.2577] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1CantOpen) >> >> endobj 2297 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 503.5156 235.2073 512.3623] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU) >> >> endobj 2298 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.2274 486.8376 267.641 496.7429] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2299 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 473.5629 277.269 484.4669] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 2301 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 392.8004 180.1543 403.7044] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a913bc6d48a4ff69013e49e1ae4fbb696) >> >> endobj 2302 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 352.9499 180.1543 363.8538] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a1cb56c87695f73c6110cdd3dd1fb03b0) >> >> endobj 2303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [200.2394 302.4636 220.1646 312.3689] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2304 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [331.6495 302.4636 353.0631 312.3689] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2305 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 289.189 180.1543 300.0929] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a1d7fca4f600df79fce819b86f8727368) >> >> endobj 2306 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 252.3272 180.1543 263.2311] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_acb344d192a9cce91ef4fa70d983af305) >> >> endobj 2307 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [307.1167 252.3272 329.5922 263.2311] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2308 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.5349 237.7065 240.46 247.6117] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2309 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [335.011 215.7887 378.5173 225.6939] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate) >> >> endobj 2310 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 202.514 180.1543 213.4179] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ab83f4abde51f181d69016a1aa971a290) >> >> endobj 2311 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 152.0278 191.7771 161.933] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2312 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 138.7531 180.1543 149.657] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_aa3dd737a0211193e99d09459b1b09564) >> >> endobj 2313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [278.4878 124.1324 298.413 134.0376] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2292 0 obj << /D [2290 0 R /XYZ 133.7684 692.1046 null] >> endobj 382 0 obj << /D [2290 0 R /XYZ 133.7684 667.198 null] >> endobj 2294 0 obj << /D [2290 0 R /XYZ 133.7684 576.1766 null] >> endobj 2300 0 obj << /D [2290 0 R /XYZ 133.7684 411.8042 null] >> endobj 2289 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F58 909 0 R /F11 844 0 R /F51 914 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2322 0 obj << /Length 3637 /Filter /FlateDecode >> stream xÚÕ\Ýo7÷_¡§@*–ßä—®MÓ/ À5îÝCÛÅZ'je­O’ãø¿¿á.I‘»ÚáÚ*r8׫ßÎ gç›”ÙŒÂ?6cB£­œéŠF¥ž]ß^ÐÙ{øðÛ æA‹ˆZ¤°¯®.¾|#Õ¬"•æzvu“RSDWŒÏ®V¿Î¹$L^.¥tþõ׿QÊû—/ß|õörÁÜÛ,÷ûîòçú¦Þ]2;¯·×54;÷ЗoÀJŽ Ó`.Bƒ.Ü“ëÙÊ+¢…°ð¶[á ׄ«ö;ØßKt^À’¼ä –“íqÿª,hÖO©ü ’b$ tÜ+†ÿÌ¿—'éÖ(RÉ‘‚ƒ§)0§ì bÂ[Y!²3 '˜ j¾Û­o—»ÇDÕ4ͨ |‘;gó|q[UW=U»ÿÃ8CI%àõkf‰ââ¤33 ­B é{º6u®žÐh]]±™™´l×f8Hmù‘•nw)Ì\±KËîÇ–½©»ëíýí»ºC­úÒsU!!äÒFˆ/ˆ:¤ëDýîõ/Œ…Ào8ª¾ED•ب9¶d<RÉIŠRNJ`XN °rNBø>9'„ó9)• ÍI¨JbN™Ɯ”i$ÏIoŸ–“žß8²1T~¾ì±¯—»ë Ÿ-¬Þ½¢4‚¦Éå9K³‘LüU+ãO\Ù¿.¡”ƒ<_ï'×É[µ0(+<¼^XË ¼r hÆ9üuU‰âÒ L[,·ÿé¡é~þ¹müËC¸òOžX‚7nOå®3†}½=8˯¶àýÖ+V¨¶RRmEX±ÚÂø>µÚÇä‰j+— ZŠ'+2 ¡²‚wŽë- JzƒÂAØj [¯ÆÃÄ銘sÂQB Gæ[Õ’ïCx?mNäµ»(˜SÃÌ)ÀÊæ„ð}²9„óæ”ÊöͧɸÇ*IhÅ Jñ !ÛÜŠ+C4e=•P:)‚â½þ«ö_X÷®“`¹Z}»|_¤Š#-¾öˆ*ñ–ZÙ7ˆcï"½‹P¢­êÚaL—òÝýwwëOí=;¡öbÖ‚t±´:Y°0W°{À¦9]­† …T+P®Ao¦…ÎË5hÀ>µòíŸ_¹Hñ€1}N¨Hi ¡"œìÿX…ÙÇÖË~»t9ë}—¸Ú[õ%§óO‡zëÖ‘'¿ðTYï¾Lר* ‚fo£†ñ… éŽ%ÁÝSÐQ`Z^DT‰¯Ë”³œoóî°O6˺bâÍ¥Tóu˜#…Š®|q±ë~îüïËëëz¿Çk©¥ë2T!h§0$hGX1hc|Ÿ´KÂu°L¶«K úy·©‡Iž¥¹)(& †¼óÈm9ÑÚ«\1'B·+ µ¢Çw|ñ_Zý€®Ý£€·ú縨ÀƒýS-Yý1xshŠCðv×IðæÌow׸~óaïï'OO>QhˆC'4–‹ )ésbùu³¹¿ÝºeMj•ÛÁðVò›2S§J?§U–Š¡ÑtZ–zÊ´—aÕç;'äÕf|Ƹ”ÔÛ&ys{˜ z- ¹Ä‡DŒÀUy–g —RÞùüz€«W_­·ËÝãÕ»ÍuDBzV–ÐÀê°;ÖaB´{PðãÐFûö²_~¹OnçxùEÁ ë­l¼úòðÂ*TGk/VA?aÓì"¢Jl¡H×D®Œï±ö¢ò¨ÉÓzë‰F*hœ§ª'â ‚éŽ)Hòv»7½ED•ørç@ÖœRP§ƒ›¶ò„‹vÆ•æÀ¶•&ÊÂuÆ÷Å©)°åÐtç<Ñ)p‹/°ÒmCÄýnWoßĪh°¦cmAU’Ú;alß,J»&tÁ¡58'~&4°ø`dz`‡ûÝ6; ¶m¶‹0Âp¥O‹ºñg¶!Ô„@·7Ûíöõ.ßîMt'†¬ˆ¿ I¤T¶ä¯ ó×+û+Ê÷XQøzWLÙ&ºÃ%¸z ´Üö%w/ˆ4 zÊMÜ4èÔT›I¦qÍDTA Õºp+#ÁU:“9Ut½ÆuPRò³¼&¡yM€òšháîTšïnzÚPîwG)|—’yQâ<_ò,W+¿“îNo:ßC|ÈÅF¡J[é) ó¡+ûÊ÷èC¾Þ‡R¶å®$c=¥+Á…Ðí¶7õ¡O.’ázLTUKHBþ“iu? ¬šæ¶^=4Ä+Èbâ¼3Ê) ÄÃ"Ì­éu«ÖQÏiO¼¤§ZÞ=öП<¢m>bî€sxØovçÇý…ˆ‘¼xÐ7…!þaEÁùF)ñíü%c[ô—œõ)1 ûAõpô\„è/¹þÁ_¢+t‚û€†ô ùY>ÐÀ| ÀÎñØi&Í¿f¢ôå´†™|€•Må{4ù_oò)Û²Ég¬§˜<.Ä€n<™Ôœœ]qjHÅp xL5g”HJMOïY1uøàw)§ÿpÃÚ¹ÏYMIJ3ükÕËOËýpï»RÄg2™dãï-àKb èŽ/8Ô¬–jêfQ¾´H¥©r¾qpf±ëM³mTã+Áý]³]Å\ï‹F´ t£&€•:©†¹x€•]å{tñ_ïâ)ÛÓ ‚å„UZõø"g<¾$Á€îø\Å}£üPák¨gΩûF0Ï9ûEA‰JO]xÄ—Øè:öÝ×<Ç2¹¶DX^x÷UÀPç¡¢gsi&_Oí9…b€²³ºÆ”Ö¬×5âšu_0=Ѹæñ%9tÇãš&ŒY\9‹ˆ*ðuaXζW–-ÚŠÅý\»¯ »O»_³je¡¥ÿD¾"ÝgW®Sîž¹»?`»A]Û=»{y÷ÜnÿIMCÊvÿVµ £ÛPR-}ó]ͺËJ‡p³…cûëûÁ²£-b?µT`j•h_!”»Ål_¤øóò>Õ‘ ÉÜ·ˆ$ë±ïïÏT«sP Ì0c^“SOY`¿D Qú+) IYVLYß§ëKÂu°L6|X+% ë lð>ã;>¬ÏyNÖãì‡tË)ŵsš1|ùU@‚õ*Ö·‰aJË# r’v‡~ÎÈ#) $DX9UÙžhhiñ%9t±<ÂÝA|L9‹ˆ*ðuyÄÙËØöóˆå]±y"€Ûy1Ô¤ûŒ†<`_×ÝG§QÝ›îX›B¬¡ƒrX®7ÈæÓ¢´ý˜Â°ˆ`分òEx‰¯V)[¼ÏùN(  èN(Âѵ‹pœs,Â3ÎãEøÄ…‹ðûÝéE8¾þX„ExnsÈø99,ÏŸ'”íLpBõyÓˆ”n¬n aFèžhH¸õø’ºãáVEj*gQ¾Î„Gd|OŒ‘i»³†ðõÔÍãñÝ>o ÏÜN¥*Î+R*¬*¾O.þ ÂùxšÊV(þP¥Äâg‹¿”/Rüe<§(û!Ý'Øò“â ™Mü¡lÌ–Ý×iõét£ŸýÖR¯ Œ$ůT3÷ a³¿!¤rËÿ¶ÞÖ»å!4¿ÁS¯.+>¿÷Žþº¾î.´ïÜ(óÎôKÆ_¿qƒæpt6ü=º=¾¯/ZC ©S û/ð‚Š.endstream endobj 2321 0 obj << /Type /Page /Contents 2322 0 R /Resources 2320 0 R /MediaBox [0 0 612 792] /Parent 2273 0 R /Annots [ 2324 0 R 2325 0 R 2326 0 R 2327 0 R 2329 0 R 2330 0 R 2331 0 R 2332 0 R 2333 0 R 2334 0 R 2335 0 R 2336 0 R 2337 0 R 2338 0 R 2339 0 R 2340 0 R 2342 0 R 2343 0 R 2344 0 R 2345 0 R 2346 0 R 2347 0 R 2348 0 R 2350 0 R 2351 0 R 2352 0 R 2353 0 R 2355 0 R 2356 0 R 2357 0 R 2359 0 R 2360 0 R 2361 0 R 2363 0 R 2364 0 R ] >> endobj 2324 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 654.0823 180.1543 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a691405118727baad47e504c16998e404) >> >> endobj 2325 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.3498 615.6935 279.7634 625.5988] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2326 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 602.5612 180.1543 613.4651] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a59493b5e36616b7904ddede84df78430) >> >> endobj 2327 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [251.8568 552.2173 273.2704 562.1225] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2329 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 528.4996 187.8951 539.03] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a53b2988c54661d9e03af4a152da5dbae) >> >> endobj 2330 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 500.5153 195.0882 511.4192] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2331 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.0961 500.5153 246.371 511.4192] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_afe53063dd05cf44654a311e5d17d4da8) >> >> endobj 2332 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.0316 474.0817 329.9568 483.9869] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2333 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 460.9494 181.559 471.8533] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2334 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [188.712 460.9494 226.9783 471.8533] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) >> >> endobj 2335 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [300.6747 410.6054 320.5999 420.5107] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2336 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.9515 410.6054 428.8766 420.5107] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2337 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 386.5142 198.9439 397.4181] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a80ed085f917280e58c6bddf95de93c3c) >> >> endobj 2338 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [226.2811 386.5142 249.8526 397.4181] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2339 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.2203 372.0358 225.6339 381.941] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2340 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [281.0883 372.0358 301.0135 381.941] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2342 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 359.2771 195.0882 369.8074] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2343 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.8279 359.2771 275.8844 369.8074] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a7d675f1654f0678461bac0d47e202d49) >> >> endobj 2344 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 331.2927 312.1378 342.1967] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_afc795a249942094157a54fedb6325eb0) >> >> endobj 2345 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 303.682 243.3167 314.5859] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_aac73f0a1f2742c0f1ea5eeb5bc0f8df5) >> >> endobj 2346 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 276.4448 243.3167 286.9752] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ad865b86fabd85a36b6e3ec782a3fad83) >> >> endobj 2347 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 248.4605 208.9063 259.3644] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_afbc014a0dd8bfcc9d883e550f971f669) >> >> endobj 2348 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.8774 233.9821 214.8026 243.8873] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2350 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [181.2003 221.2233 218.6098 231.7537] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2351 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.3494 221.2233 269.3789 231.7537] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a17d7f2a579835881a3b74c765ac612e1) >> >> endobj 2352 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.1895 206.3713 217.1146 216.2766] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2353 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.8967 195.4124 418.3103 205.3177] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2355 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 182.6537 195.0882 193.184] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2356 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.8279 182.6537 245.8574 193.184] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a4b5b4cccb7912bb0cf8c03600e2f89b4) >> >> endobj 2357 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.3635 167.8017 217.2887 177.7069] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2359 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [181.2003 143.7104 218.6098 154.6144] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2360 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.3494 143.7104 269.3789 154.6144] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_af29d26cb351ba86544648203d5dbf5dc) >> >> endobj 2361 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.1774 129.232 216.1025 139.1373] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2363 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 116.0997 195.0882 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2364 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.8279 116.0997 245.8574 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a21ee1ab28908eb2ed74b5f88cfcc97bf) >> >> endobj 2323 0 obj << /D [2321 0 R /XYZ 133.7684 692.1046 null] >> endobj 2328 0 obj << /D [2321 0 R /XYZ 133.7684 545.2434 null] >> endobj 2341 0 obj << /D [2321 0 R /XYZ 133.7684 376.0208 null] >> endobj 2349 0 obj << /D [2321 0 R /XYZ 133.7684 237.9671 null] >> endobj 2354 0 obj << /D [2321 0 R /XYZ 133.7684 199.3975 null] >> endobj 2358 0 obj << /D [2321 0 R /XYZ 133.7684 162.5539 null] >> endobj 2362 0 obj << /D [2321 0 R /XYZ 133.7684 133.2171 null] >> endobj 2320 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2374 0 obj << /Length 3542 /Filter /FlateDecode >> stream xÚÕ\KsǾóWफŒñ¼ª(K–c§â8“‹íD,IÄ$À`—’™_Ÿž™Åìk4ªRI©J\º{z»¿îé-(üc &1ÚÊ…vœ0*õâúá‚.náÍo.X­:Ô*‡}uuñå{©Ž8Íõâê&—¦ˆvŒ/®6?-¹$L^®¥tùöíÏ”ò¦~ýúý·W.W\Ák÷뺗?V7Õá’Ùeµ»®à#FS¹´òò—«ï.¾¾ê Êô0b¨fÞœ]üô ]lÀúï.(ΪÅgø…æ_<\ bŒ¥Wî/>\ü­™½Û~tÊ ‚k¢¤óW’XpÅŠiâ„Vp=éImà“Ú'•!\(ÙyR±…OjÙzÒpb¥å‹æ=y¸fY5O‡ÝÈ#Îf„^äbÃ[‡Ûˆù1·#á1;Fr½í½XÀ™‚ÈÐb`Á`ý ÑË™!B××[]rºü­©võv¿ óñ9üÜ­ªpµÞmÂÅÏTÑýcÐõýý3üÆÂëŸ|ˆÑåQÆîéᣱ%™5) ·Âa ’ÁÚeqž'ˆ¢„SmÒü²~æ\ô*$ ¢7¡P½–h£új¯÷»º øú·æ/ëÇpýjtg¹!”Û%³¡•àˆI#©á3u¼ÁC;´"T«²GÓy¨”2ƒsŒ“àŸÑ}¡ßâ;ˆÐ³ “PÊÿdf_{ÞòÜé¶Üé_nöñç]|a"@J³Þîࣳ‘ v†³ÈÏ`¥ÈO0<ò z%q–‰äâyš‹qÓ#·íêÒ™|¼¯FZJ”æqLBaº-'²Ä\ù«1ÁsBÞÁG<¦~$7$å÷Í8&8ƒègV•—Þ¡ÝœA36Ò­h mæèòCsØînÃõ«À‡ªöüÅÐ<Á)¡ÌŠSÔáCÇr½¡@šz÷÷‘ J)”(»¨Caš¡ü nô :¶»Ç§¦ Ð/ “)_~ÜïöÞMŸüÕáóaÛTošÃSÕºËG»ñ+ƈS*4iáÃ-—TëÍ»u³~sã«äú¾®ZJœãAe‘ÖÅ„¹Œv°¶¹”j¹mƒtÅÿÆþs~Ûß ÞŽ®s<ävûÚçms7€An¶M`Iø5çcà×|ð†ŽÝF«6cgø}¿œ3³¿ VþƒµkñtÔótßøØÕcG¨‚˜PÆ%¨B rįòLô\#¹“«†fHGv`Å "S=”å5Ï÷b м2Ž!)‡*RC+RYo׋azC±é«mwE-í¶Žþò=ÐbÆ”†Hª (Š`1®š‘…úñ˜µ#¹GsØowSEvGŠ9ä6u(Ä. Od” 8½SSp¡…bg1T&£ÄP 6Õ¯uÙýÖýkÚ¥dw¾}å1ºµýåfHŸÞÖãzç·Ù°ýí/±Pï"YÏXîÜ®Ïo›5·¦èäU‡ÂôJE¬¡¢¯wÿñŸÕu3O ÚB„"dÁJd`8õÉÑÉ WûÉ›ýv3Rm<عêùOẍ‘ÜÄ2Oõݘh¬¯ YB!ª9….Yš¡ßSvϦ4çÄgÎJéLF)¥,÷I=øÛôtãÇU7)]ýnªÚ5uÿµÙÖ¿ÎÇ/uÄXh.‘øÍ`¥øM0<~‹zñ‹èñ›«ú‡.ƒÛ«J ‘à˜ö¡T¯ý¶jÞîÒ¡m’ŸÇ݋҄±‘EÃ"•Pˆ!Ü»:>pÿ Š”tâMŠs":—Qˆèæmü¦‚}–`.T'áï^{Q?V×—l¹½yn7`=е÷ð±/®ïo÷°Û¸{ˆà}øù±ýŒ]>ÕÕ&¼òù®JÙl:áëøÚöaíw·þ¿Év¹7Řï¥ñ¾•H^e¨BZ%šUE¥]R!JCNå: )ÕÓˆgTYõ@f̧ï÷ÛºújÛÔã­ˆ LsV\v*ëæ¾éPÜô}ý’‚=µsg%P'¡”>Ô%O¯µ»íÜ6ÿÎ;îã6ÕƒÇõÁoÊ×U×ß…¤ðW!)Â2³äòÙûD±_ûýàªmë½\© ¹{¼“ÃJÙ`x:õóÑ"W‹6I}Õ'4Iˆ#¹19®.…DTï¶‘ÆY¢$aJÙ²7:bˆ¯IZê;|¢ÔÍæõë0ö¹nö‡¸dÙg¡¿†]~ÚGþ! úË„[,˜Šˆû}? Äp’GÐQ1¯ðÏ‡í¿«úä\æÐ?ºéÇ‘'gs&£”Ï 6“ÑO‡8»‰ïÔUã³0¦t;_j[¼‡|ª^ûÅwpà„z˜õÛÝD"OÐ@±Ðù‡jRp,¹3X)¹ Oî¢Þcr#zcrçj³Giþ;ýhŠ9â÷•}Kæ'aŽ˜4’êMj0ŽF`bM¹²':¦òY(=pÅ‹* ϶ÏÉšLF)kljÒ¦ÇG²)Iò)Çõ>æUýèG­éCÓ81€7´Ðb°ºù!GÂ#KËr@ ) ÍgÉ¿«…éŠXFU_/2äÖî÷ÉåÏa…ï`hŠ—õv)Žé )ÞS;É–ƒK´è/Þ Y0’ëMøaâñ ‡ œ`Yy‡Bôrƈ¥JôõN áÆ·GTÆ!ºÐÊh18- ©!÷Ý郑_Ã~Œ|®ßàA¸“âäùÍï·Ó#©ëVý"Í,b/ùéÄV¦]*‰Ræ¬él.£D» ÖÎçZÿFs75q& =¤aÍîvê|‹†c¦ÏSk„#fޤΫ?Çêœ+:n•@˜N ‚ô´š+íû }D™oÒáÎÎ/w 6;šÃ ÔÛÁPî-ëíÈÓØ·§¶H¿Z—\&`ÇŒÉ-“0²ô€Átz ¶@a}‡çlO Mˆ&)”-\1})!TƒZ1,Qe¬õ  Ø™‚P¤#n4ÑšŸÕæ2 tÔÁN¦£u7gîOÏ€%ê)ü SWÇ/º ©›ÁJ©›`xêõSÑS7W;›ºþ¶n º0LŠẍ‘ÜùÔ5þ™æô„Bôr í —Ÿ³W }Bö ©¯x©…à~†·–Ê‹½NOPžÀҊ勬föêÒ°“Í‘«pÞYPKm¿ƒCô ˆo«‹ê´Ð¸“ h~$¹pþ¤¯ü)#éÜT_þNDÂfšï€…“É­^Ï °o¨2§®3CHû„d}ŸÐþBHü£ýÞUh"Oi™7YèÓŸaNÛÌ¡Œ½´.ˆQ«ôY3Ë\F©¨$ر¨Ðelÿý¹ t(ÈÿcUPˆÕÁWðf¿j¯J”"?5GJT+•¨ÃKTQï±D!zc‰ÊÕÎw—ŽH¸¹¯ºÐ]F> endobj 2376 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.1774 654.4055 216.1025 664.3107] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2377 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [226.0317 641.1308 266.0613 652.0348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a5e4b2efb2d9c75db28fe264cb8576280) >> >> endobj 2378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 613.2354 181.559 624.1394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.1032 613.2354 211.9147 624.1394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_add1f740bb5706da76773951cbb1f5f89) >> >> endobj 2380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [319.022 613.2354 356.4315 624.1394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [228.0614 575.7006 249.6543 585.6059] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2383 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.5574 562.7996 235.5157 573.3299] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a10cc4bf1ef07a50ea79d3bfaa57a844f) >> >> endobj 2384 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [324.6998 547.8052 344.625 557.7105] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2385 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 534.9042 199.0534 545.4345] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a2df185878082d2dabe76f3f25600311b) >> >> endobj 2387 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6897 506.6352 257.1148 517.5391] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a785184269e4cdf607cb844b5b45ad105) >> >> endobj 2389 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6897 467.7809 224.1584 478.6848] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a4af2b8fb489f7fbfeabc1a381c94834c) >> >> endobj 2390 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 439.8855 255.1521 450.7894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a879b8f7cb81cfbc781e8a7b6c6982ca9) >> >> endobj 2392 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 411.9901 241.8621 422.894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a46ee9a7cb851501eb921149f1173d11d) >> >> endobj 2393 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [314.64 397.3694 334.5652 407.2746] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2395 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [181.2003 384.0947 210.3109 394.9986] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 2396 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [221.0506 384.0947 249.6034 394.9986] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a18d1d822d3eecbf6298f974504863c05) >> >> endobj 2397 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [313.0526 369.474 334.4662 379.3792] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2399 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 356.1993 186.7894 367.1033] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 2400 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.529 356.1993 226.0819 367.1033] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) >> >> endobj 2401 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [291.8833 341.5786 313.2969 351.4838] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2402 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.3747 328.3039 196.5128 339.2079] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) >> >> endobj 2403 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [245.5817 301.728 266.9953 311.6333] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2404 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.3682 288.4534 196.5063 299.3573] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac592041903c94b09cee8cdc29e185b0a) >> >> endobj 2405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5376 260.558 198.6757 271.4619] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a6e3ebb1d61fd6374c0f1033ba0777112) >> >> endobj 2406 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.4139 208.7522 197.552 219.6562] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_adafc3aecf2d2398109d2c42f6025f2e5) >> >> endobj 2407 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.405 182.1763 222.8186 192.0816] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2408 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.2053 168.9017 197.3434 179.8056] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a6237260607e157ec5f521522f137f09c) >> >> endobj 2409 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [287.2392 130.3706 308.6528 140.2759] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2411 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 117.4696 231.1523 127.9999] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a9d5050b4a572ea98e0c830295894c142) >> >> endobj 2375 0 obj << /D [2373 0 R /XYZ 133.7684 692.1046 null] >> endobj 2382 0 obj << /D [2373 0 R /XYZ 133.7684 579.6857 null] >> endobj 2386 0 obj << /D [2373 0 R /XYZ 133.7684 523.8949 null] >> endobj 2388 0 obj << /D [2373 0 R /XYZ 133.7684 486.7667 null] >> endobj 2391 0 obj << /D [2373 0 R /XYZ 133.7684 429.2498 null] >> endobj 2394 0 obj << /D [2373 0 R /XYZ 133.7684 401.3544 null] >> endobj 2398 0 obj << /D [2373 0 R /XYZ 133.7684 373.459 null] >> endobj 2410 0 obj << /D [2373 0 R /XYZ 133.7684 134.3557 null] >> endobj 2372 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F14 944 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2422 0 obj << /Length 2960 /Filter /FlateDecode >> stream xÚ­Zmoã6þž_áO… ¬Y¾ŠdÐ+pÝìöÚöw›\[IÔÊ–+Ù»›þúФL½r9,°¡¤ÑÌhøÌ3CÒd…áYÆL_¥š"‚yºÚî¯ðê~{EœÐ¦“Ú„bßÜ]}ù–‹•F:¥éêî!Ô&Pª ]Ýí~N(G„¯7cœ¼~ý ÆôÔ\_¿ýîîv½¡î•YÓØáûü!¯×D%ùa›Ã+2ÅtÂËÇœé5^À$¾®öÇ:oš¢:Ü­NžùÐ'šR„qš.‡£“ŠxBSޏ–t0 X`€‰Cøädï*¥ã9ŽpÄØqMK¶Ö²*;Áõ¦-µönBšùdˆ‚qI–Pl!Y:±h²,Ûí’%f×&KÏl4Yú¦?#Y"NŒôºd¹[3‘e~Sì=m³¾ó‘KìñRG¨&ká0Y³ÛÍiw}ýÁ€ 8´ªG_¾b½¨I’‚0°m^ÿÊJô¿f›á$Ê 8VC $8qB_GÕ|q‚PÝ摌†6R½(£KíŦ3zw™Ööºz˜rÏ -+ŸÌÅÖDÿi <,ùæVã }(vž vçºËüAë±älOS‰ÐÓ UBMÍ 6zG%+,‘d8VÙ;±8Y —È*bבUh¶ñƒéœ#.Š)8 «Ü¾³ÄÕÉGë5mË<«ßÔuUé ÁËñè¤bæ9 Š 6˜ «Eàš"©Ò•ôPÇtb]\I›×õš‹¤ª=·f[3‡¿ÛËì°¬•ÍlŸ›þJøÏÜê˜Ï^è“‘b"†úPlõXõËv;ÔÇìZÔ÷ÌþO¨ï»ñ¨_vh¬×•ëŸÖ„˜ÒûªÉßU»‰e0| &‘ùè¤bnH‚°¦d0€þûª*»Ð@OXž—ÁÔJ“UÄPÇRBx±ËRظicÖaýÔ¨ŸeqoÜúyæ‚€³ÓÔÂ<[‚¹‹Ã|Ñîæ»æ¡Ùæí¬N@œc<üôEˆ·ògÆzm_lš¾yx  m)Ùr<:©˜ ÂÀGêÁü! M°píJ¬í dº.Ž!q¸ãˆÛó¾ÉOtœ;ÛjÝäͶ.Ž¦ÛšwpÙÛV Å&ï嘂° vº¾ cãv¿ÆŽëÜì6æ“Õ¡ß8g¾Ým~S3d<èlDʼnoBù µÎíh1,¯öÍ·íPÄ(BeߪÝ0o{½¢ˆqÎÌTr»ÕöÚ,âê³Yµ™"…€Õ-Bur¬+E¿LH}w¡“G éQãHK Ÿ ëE¥ŒÓËo¦7vûzçÂI•€/O ™Æ Ŭ*‹c"ûVwÙ)³x¨«½ Ev°wrªOEãsZ_N+à©Mom×Û:ÏN.̇Üäã½VÃ$ÀLŸÐN>òic½Ñ×ň^ö\—í^2hYIš†!µ|Ø 5à'?º¢RVY·Bu·‚•qV–•\¿}>7Á±A>î#>kk”= ¼‘íìÈM(ŒªƒÑƒ•3¸”“ÛQsÌ·…™Öܽe'ÝoŸ¿‚›$KÝ?Û¿oþs÷Ã_ß½±¶‡ÁOoÞß~÷ã§PØ„ëÛZ1 F¥-…‚BÈ(A@8±M'/¾ ä§ÚVãÄßnþ5µçíÐÀúé½PÄ&ð•ÀBõlÎíê¾=½Û@OîM É ˜e”ßÎíæŒž`ýÝâ¥tïËÃ] Ð`dŸd뙯“Ý:dÀÃ6QᯙÌåOX€J&yŠŠ3¹ à»ÍÊv%'5¬Ôˆ#„çfXÕ;+ÔµÞ´G-Øà`Gxb|ðÐIx²sN*ܽ^s÷Тê¢IaKPð¨‡Õ>Úl±8=eí)Kž²ÆúPVtîËXÿËà:÷^² ×™ã({k†òãHJ¨PTKÄ€J"°îä7á Åq¤w¶$ ­”z0¬É^*fÚU,vzv»Æáæ ‚TÕÐÁ«Ãå¸ÎÖW|º2³™Ñßa[žw]™¹Î'ßOÏýsðöÂå‰?òâ]K \%û|¿†4i_ƒËîÆà;<²îÃe‹./(mq ÷ + JZ¨dÏNGë&<ÏŶW3âöÒi¼zçØìEÃ옶³XÃæÅ7¡üDEj-ˆ4EÞé›ÖC'3Jâšè¾U‹W.ˆ(oéÒÚ@Ž)ý¼õs<$éV/¬~Ì>¬Mb%‹où ºj+J#&õÀú°Dx¡ˆMM aèYô›Ø–[\‹PuçYÎt½/$"Á$íÞüüÄ&K]ûƒ]îûas Ø.M24-±ÁåEÎ,(Ú‘OT¸ÐISy}Ù¨G6?ÁŽZUµ¤büæå7á <3Ò;Ëo¦ˆq:ô`Èo^*f—k„µصáhlìb ΧÊÔeôgé2·“qµÑ‹D øÙgºËÞ¨ßýôË»f ÕÏ5~0ëM\£`h±®³Ãc¾‡å¡ïk÷Æq~‡”bóË·[h‡Â +m)Œ%SÁJ›ú_—]Vbv±ýE·æîݾ©¶ç}·ÖsžÀ*T㹘_ê’2öaDID‹m!TiøaÝ&Bÿ‡sÝÏçRÕîݬ7‚¹boÞžÜiTj‚ÐñA± Œ¦ÆÊŸñ²½ù¹N^YÙžƒÌN+úþß{·I5P 5Ël+Ö µæÿâTªÞâIâTšNk¬Bø öçSžI„ÍO㬀ßÈhi=Zß4w7ÐϾ-Ýé4x|ÒU L‰™7ò•ÍÔÇS”‚¶ÉW"ý¡«Ÿ(0i}g|1‚Æžö|ûè1۪ػç¦}âÐ0†»X~U4… 0•1¶d¶˜yþ{»°l[Úf>ߥê2þÈa1}ÑEÿ« µàÇ:öý _*Äàûgõ„û¡Ã8AoÂYz$óÂÁ3 pÀ©…%?ig0µ¬wŸ5~ûzPÞœ¦GH¹ž&2Ÿ/þmøI˜ €î¸X¥H·”ý0öÊ|зù!¯ÇmÈÝZÓäì*ÍMî>9µ(&ÄŽHzMèµpW¦õõ›Áž6Ý^¿kãoªOÏùav·f"`ÿ~æBðendstream endobj 2421 0 obj << /Type /Page /Contents 2422 0 R /Resources 2420 0 R /MediaBox [0 0 612 792] /Parent 2273 0 R /Annots [ 2424 0 R 2425 0 R 2426 0 R 2427 0 R 2430 0 R 2432 0 R 2433 0 R 2434 0 R 2435 0 R 2436 0 R 2437 0 R 2438 0 R 2439 0 R 2440 0 R 2441 0 R ] >> endobj 2424 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 641.1308 263.0028 652.0348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ad65169c171ad79257367716d8f93b3f2) >> >> endobj 2425 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [458.5506 626.5101 478.4757 636.4153] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2426 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 602.6501 230.0463 613.1805] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a224f6b22c1c3129c07c077d4b5617d2f) >> >> endobj 2427 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 574.3811 254.0461 585.2851] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_aa0bfb6b1a6dc55c585482ba703773f50) >> >> endobj 2430 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.2049 504.9511 247.4509 515.4815] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a6f151c247fb7d0b13cd7c1d5994417d1) >> >> endobj 2432 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.2049 477.0557 269.5977 487.5861] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ab0e7b06ebbb6097ed6fa2fd555af4ca3) >> >> endobj 2433 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.4041 449.1603 257.4735 459.6907] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2434 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.1427 377.299 314.6183 388.2029] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2435 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [263.9767 359.6746 286.4522 370.5786] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2436 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 359.6746 478.4757 370.5786] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2437 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [155.6317 318.1399 179.2032 329.0439] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2438 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [333.7781 294.2296 356.2536 305.1335] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2439 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.5468 264.65 427.0223 275.554] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2440 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.8041 252.6949 190.3756 263.5988] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2441 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.2628 235.0705 347.7383 245.9744] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2423 0 obj << /D [2421 0 R /XYZ 133.7684 692.1046 null] >> endobj 2428 0 obj << /D [2421 0 R /XYZ 133.7684 523.505 null] >> endobj 2429 0 obj << /D [2421 0 R /XYZ 133.7684 523.505 null] >> endobj 2431 0 obj << /D [2421 0 R /XYZ 133.7684 495.0134 null] >> endobj 386 0 obj << /D [2421 0 R /XYZ 133.7684 420.592 null] >> endobj 390 0 obj << /D [2421 0 R /XYZ 133.7684 209.5413 null] >> endobj 2314 0 obj << /D [2421 0 R /XYZ 133.7684 187.1832 null] >> endobj 2442 0 obj << /D [2421 0 R /XYZ 133.7684 187.1832 null] >> endobj 2420 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2448 0 obj << /Length 3612 /Filter /FlateDecode >> stream xÚíkܶñûýŠí—fð2â›<4’8NNj_I>èvuwª÷q‘´±¯Eÿ{gø(­´ë¸Eì&Á}8.9œ΋Ã!EgüÑåœheÄLYFh&Ôlµ½Èf·0øù @Ëj™‚}ruñá!g–XÅÔìê&Å&‰²”Í®ÖßÏ™ T,–4˲ù§Ÿþe¬©//Ÿ<½z±X2 }›¼®}óyqST jæÅnUÀ­217jñãÕŸ]µ %t(Ñ™¢ÈÎOßÿ˜ÍÖÀýáÖÈÙ+ø‘j-›m/¸€I”ÒØ³¹xqñ÷e2ꦎ‰AhM„¶rD ŒŠAj¸äN Ww%¬’s;¿Îër…M3_íwuSV;òcÛüå‚fó¢öãùpéLq"¨1nÇ)U·æyÂs ¿L'ó|ŒyvJr`8±r0U uŽ®QÍmŸîþúŪñ¹©ö[/Œæ®ð]·å‚ÉùÏ *ÁPüšÕ¦ØåÛ‚,–R+w‘Žø‰8Žë“–œÈL‚.)%VJêè: )(Ac¿Û<øVUüt(«bíåÎJoÛb×A%i c-Ah;‚®j.w·¾É܃áGŒk@¾j6 :›ý€—•wrïVEν“mÊë*¯.4£0ç€Å™Ÿ¥õº)vk¤ˆ=‘Ol{>±U?ìšüµo¯‹zU•×~—»ÎŽ#÷s›ïù& ¹Û6Ð+´è}õrŒïùv¾Þ¯œ0‹5ˆ“ü™Ì®ÉíðD¡1Xˆè4Œ£a!к)òæP…¯îÊU@”o6{4ŸWõñþ¾Ø9¹7ºÏ´7“û¼jÊÕaVàÂV¹Ío ßÜìWyãÃþÿïI@£ò”ýGþç(¿Þ°2„ÃÕ¡ª@&h‚øó°«÷÷û …â¡-kš(&„cíé Z€ V“©ùv¿.|—³:èy^äkßóýº¸AÝä‡Mó#˜Ž`tþ´ñP¯ÊÍÆCU^¡è|×þÆw*r~0EUB»Á¨WÐ#øÁ€Ø.PØTÀæy1‘uÞäè¾€øÆÿÀ³ö†ŸlòÛRûÿ(©Méœ ~å¡B­‹àMnÐÖ‰@›zß¡õ­ý}Sîwy€¸¯@ÓÕƒÿáã4ãCMƬä›û=êßJˆòÛûM˜P™aUlÈ9ìoyQúá2 há[S·‘sì½.€BÑ•ÑxaM»Bèòn—‚wÛfT.CëÙWW~n»ö-3'š=A‚ybHiœ„aàPû Íþôì R…@Ž2º³òqÃ7ó$ÉÀÝ ðÈÔ,1J€© C¬ôÜÑ&Â/Ó ãF×Çë6¹Çß1À)‚Úz„:G– 8›Õ'Ò  nEøVî2FKX<ê°äômXì“§W_?ýî#ãû}Fg÷ôÅGf8‚ϗᤓe@>co°ÇcÞír, §ýÁw¼*ë;ßåN$Ðã9ö}¹ïÚ!±Å¾–g7ÛñLÛ$BFG}†ìPßøhJÎ]¾¨º¡$hŽm>æ1‹ì…R aÇ€‹ &IÆ…>J#ü20JðNš©¶D+;ä`Xg‰PçèF˜…vn¯–à%‘7¾Uß«ÕâB‚ŒŒ„}¡îCŸ+ÐØ¶×.÷ƒQ¼¸¡ê€8ó ís+‘"ìØK0|ÉÄÀòJàâ:93DMg\tfGEÄ g¨!¤…€0‰0ø¯W±bDk-n@nœuN*õ üQ)îK5®C¿^0<âCBÛ`9ŠÎëc}2"iÆg)úãP¡H–Á&·L>V:Ñ”c!B€ŸB\™Z6REZúxÝCxʉfX¯Kg†¥#çLa•§K‰÷XÌ´|(€ÓER†·c¼ÓERA•Žj¤èU£ %Ò¦z(‚}ÿt‹yó‡1{pY7ÅÞ+ãèü2Dº?bÑ»ŽE`êZdâ\,Š`h’î°2‹„ïQ,.s"¥ËlcQëfá7®ÿÒçªÛCÝô}ÒW]]à Uc’›tÏ÷H^¸çI÷¤’HAõ/P9bö8ªˆÝ)•”p£ô„ƒ Ì8)ä§ -·Zp=Õ6:d w ÝÏПlr<°ßNûrBû=IçÍC™Lxs*“ëý~Sä»à·Uë¥ñ`„UáPˉ競®\Ƥ:œpä÷JXY”+ üáËïz«…X¦µðdÑiêϪ [ûjz;H°¿Åvð[Òl»¼¥jÓ d¨³‰ $ÕYoá¬ÿwûÝòŸE…÷‚Îë&oÜÃa§ ÷òZþ¶ëKÞûxx~ãÐ4oò|¤*×qüúø±G˦ÌHF»vj¿ê–ŸL8µüæLÍ5¦éÇw5ŠP™É+G—5êœP@®ßc Ù¯âeÍ}µ_Vm鸊o7›Ã¶ÜåM{”Ýußdr¯òŠ6g=Éüo=Éœ‰Ü¾ÀÄ_ÛDiN6ãÇ4ø’H©§›ŽQާGÞ}LCa£Ô´ŸÕ(í^w-–’s_Ðð/ÂWØþ3Ô‡O ÉJˆÂBŒÐu·Ë@hþÈÃöd°9XAŸ¯(9°+, `þAÛ4FQ@¶ë3l/QF2ÓƒBöÝúðìÔ 8œ¸-V‚ÇD¢‰â<òŸÄʸfIæÓw÷FŸžÉyøŠ™QéApÅ-ÖÏ #d)$!JÑntòcJª! gß>v»V vâÛG ñò0¿k}u_ìâÇNCòJ€2YæèÀ—)üC¬“3ÄéòÃÅ sD ˜ ñ÷¨¦uÂËÊôž1\2âëêÕ½Ö\Ùå O©¹~SqµðgX?Æ;QæáœAÌôiµPçÈaC²$<\†übï?‘÷ŸÑö„Y—Û²ýoð Ÿ ù'¯Ê|ׄ‰á+º‘[£ä<¼ÿ}£ÿUwé¤mïCP÷)GÖ}`è!§ )%¾/4éýt¶÷SÐÜO™¸^JíÄ»j>–rpc Çwð#ËÚö_I†ŠŒÎÒoÅœT¸éŠÈÊöóbWTÝ÷“ñFîjaÙüó¸Xù†òÿXF©oQuIÙ¥ ¿nPÑÚÏ[zeÂÇû×·cOäÂwÞ#û^Ï,endstream endobj 2447 0 obj << /Type /Page /Contents 2448 0 R /Resources 2446 0 R /MediaBox [0 0 612 792] /Parent 2464 0 R /Annots [ 2450 0 R 2451 0 R 2452 0 R 2453 0 R 2455 0 R 2457 0 R 2458 0 R 2459 0 R 2460 0 R 2462 0 R 2463 0 R ] >> endobj 2450 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.4225 654.0823 284.8981 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2451 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.8855 487.3267 207.3521 498.2306] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2452 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.8686 445.792 232.4401 456.6959] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2453 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.2906 421.8816 180.7662 432.7856] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2455 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.9357 371.5112 285.4112 385.4589] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2457 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.1103 269.7426 224.5261 283.6903] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU) >> >> endobj 2458 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [272.7214 269.7426 296.2929 283.6903] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2459 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.2341 257.3889 224.5261 271.3366] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 2460 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.8025 245.4337 287.1468 257.7674] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 2462 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [163.7558 152.8352 186.2313 163.7391] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2463 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [309.5774 152.8352 333.1489 163.7391] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2449 0 obj << /D [2447 0 R /XYZ 133.7684 692.1046 null] >> endobj 2454 0 obj << /D [2447 0 R /XYZ 133.7684 396.8163 null] >> endobj 2456 0 obj << /D [2447 0 R /XYZ 133.7684 295.0477 null] >> endobj 2315 0 obj << /D [2447 0 R /XYZ 133.7684 236.0689 null] >> endobj 2461 0 obj << /D [2447 0 R /XYZ 133.7684 231.5857 null] >> endobj 2446 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2467 0 obj << /Length 2961 /Filter /FlateDecode >> stream xÚí]sܶñ]¿âúÒðfr¾?4mgR»I“Ì8­­NÒûñ'¼ºê¿=È-Vð#b ]Ýž1/BÂÌþìÍÙ?;”ÑÓöÕ11p¥WFŒˆÒQ1…(¬ÃÍÕý«ü¶ø|½a’eÍM1àÊ€ 4'Ç×Z"ì£ê­‡yïJ€ßÄ/Œ3ÀkÉùûË¥P"€n–H¡ƒZX–ƒˆP¬¿lSÿœd—…û¬Šü ­7BÓì˃›*/ÿSl;Æðø®*êâÐìoÝS+¸vpWínóê1e‚ŽŒ1ò©RìàØâ"g ¥å¼;¨¥eŒÕýewµ“A¾_œ=ØòÇÚR²Ú0,ÅŒ•d„ í[tS\Ã{¼»vö¶kÜç¶<4ùîà­0?ø§·ù[«¯vÜÜäM4놷ù£\ú »›~Æ?©ï/ëâç{ØA¿R¾ßר¥… I ¤Z ¿¹¶´©¬X‘½oŠÃUqåf¬ËØn|r£úh~oÇÒÉæîëðN~ðƒºØƒ6Õa6Y£Þ•~ªŪÜxõ“‘Í2–åÓ~ÈÚÆrÉb~4zaÎ0+ ë1ÏÏ¿¿+ª¼²_•Í›û»»²‚mX²H0,ÂRKP äP¡¦àÍ{ä8n‹»¦•¡Ý܇Ý~ßWˆæ¦*×Td4ÕHiEVBQp«lÔç2d1±ëSÞ *,ŒýèI–"¥(Œ„Áˆa:V„Zi`E2'Y×YVþ±¦<Ë+ØéÆ?$«Ä‚`¶ŠÑ*ÆF9ÁƒÃTÁAÜn¬CóždÛ®Š £jÈw O@_¨Õ«øÁÂÀ:Ö)œbFºu‘Cjq.ŸŸIbœ8?ÃÓѵ“Ç¿ú²˜Ô2]<‚+bHh)§ ·:^݆¡ó®)Aþ…#¶‘` Žc òßÔ ©*‰€TpB(µêÀ¬ª¶þo8€rbV1ÂßœM ÊÌGØL¢‰8²ÏæÅw ÎßÛQy\Ê@T‚Á°TÓ~¸ƒ_ mˆ7øáš#NDB@ê<ÐÒªZ"ƒS‰„C°A9rì¦aˆŒZÒ“RŠ£=z÷ìƒ~k$9b˜Ó%À¬*Þ–W3>(BxB>(esÂÅlv>Èš×Õ® a/ðïé&ÿ¯ ¾ 9¿³±N¾¿/º|6ÄÃeå>hÑLÚê ïÙVOÎV…EÅ„­ ™âªŠjÓÆa^¯#ŠØè{wÑÎXºÀë —ÌÞ÷ÕöBŽÑìMSµw«àN¡A}£EmJcpÐh—^ßýÜ[KL -À’zÐ×?„BQ‚’Ù$‰rÖÍ`4²ZÚ‘M²º¹:?Wl°™ö5›-Rñ@ÈŸF¤‰ $x ñl ´ÍתoþE:B<Â1A*$„ $yRñÌa7YGÛeYîǶE!¥ˆð@Ö¿¼Ì›ü«}nÏD»‚döÈu,¨–Ú¿wïë±§ªµ2jŒH[SÆ4Ùñ„}ÑܘÙ}‰Ä8¹/à‹ø죶¶–#eZok]WA«ß9ßl£u`ŽêQr ’0a·æÙ—)ÁxÂ~Œ v•c³Ä>HK!ö'ñX»‡¿dDLD"Ì™<’É;n.@èÌÇËÓB1ØÌͶ=)áá¶Ç]à“¬û<H–ûÙÜ}€º­9öGçaçz…ìƒ86ýÐ…7„DÍm›C½«­¼vŸ5yï¡£°*‚¥îÚ"…i Ú£ìÏ߇ýãZŠÌ·N´X’ý…N‹jæF'é’`]—å$é’°3ÝŒ} F¡KÂŽÛh„Sß%agñ,tI¸Ùd e¶ˆ[^`°9,;ÿðèÔàë\»bHjLŸÜ.¿0£TØÇ¶Kô ›l—˜'§k—è‘óÉÚ%x02²Ô.ÁžÔ.Á$äJð…v‰ìÛ%bôKíì í|±[Bp·„~î–ø(A2A‘dŠOÔ¸BØpµêÀâ0k²@#=Úã€Õñò@Õ~µ1up h“Z÷ù¹ïð ¤ ñNÝw‰J xXµ´¬°!²•f¼ì¡Ýéùãt4]>%%ø=V'¹”lwÃÚhš²¥sž„¥ï…ý”4²Ø4ž ö¤4>žIã©I¡úi<ŸOã©i¼]Þ“]ã©4BÞEú6X|5—Ì3 I†î§Þ-T¯åv6"$‚¡5*Íâ7Ó¥#ãÉ1aÀR—÷ÕšB¸^Œá‚XtyôlÆB œ „Ò…Œ%›Q:ªlmÆGs®Ú¶Ó6+a,;mä6 FkÐEï/½~¿0B×ïdoÖ6L)H}o€ZX[Býu»ž}+¶õšÙ*SUõ]y¸rÝûð¬ËÆà±/¾Âì¶¼³©Ñ£›o3.˜u)L„Nÿvö\yÛ¨ cwЭ6 D¡éw¼7®#@´ê´õã6}üøÐšDDsí&ÜQÂ}S¼¯¼‡ìÇ™[‡Â}6ȳ«²ð|út4y凎õ!Ÿýá³±ôr{îjÛy«&´9´öXÝoDz‰ëö÷»}˜wkáaBF ì+¸)  af±mÒƒobø I±Z>^䇿…3šô “sÈ18M¨Mjaqq •ÜôWï%_Ó©Å’ñ„àÃS+ ©ƒŠ+!ã©Uö©UŒþ9µzN­~AjEaÛ´‰¯úׯ°©€lÕ%ÄTr£=äjÀìxrÕcö•?Û[7:׉íf5kœ’Lž;!NÎ1A‚³©O : éѪë¢e¦|´> endobj 2469 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.1878 654.0823 216.7593 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2470 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [414.0033 654.0823 437.5749 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2471 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 612.5476 256.5268 623.4515] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 2473 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.9357 572.075 285.4112 586.0227] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2474 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.9357 547.3677 286.5072 561.3154] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2475 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [385.7043 535.014 409.2759 548.9617] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2476 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [406.9507 524.0901 430.5222 536.6081] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2478 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 388.5271 256.5268 399.431] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 2480 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.1726 348.0546 252.7441 362.0023] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2482 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.2609 273.6971 209.7364 284.6011] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2483 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [298.9567 249.7868 345.7705 260.6907] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate) >> >> endobj 2485 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [280.6689 196.9606 303.1444 210.9083] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2468 0 obj << /D [2466 0 R /XYZ 133.7684 692.1046 null] >> endobj 2472 0 obj << /D [2466 0 R /XYZ 133.7684 597.3801 null] >> endobj 2316 0 obj << /D [2466 0 R /XYZ 133.7684 501.3403 null] >> endobj 2477 0 obj << /D [2466 0 R /XYZ 133.7684 496.8571 null] >> endobj 2479 0 obj << /D [2466 0 R /XYZ 133.7684 373.3597 null] >> endobj 2317 0 obj << /D [2466 0 R /XYZ 302.0059 321.0653 null] >> endobj 2481 0 obj << /D [2466 0 R /XYZ 133.7684 314.4253 null] >> endobj 2484 0 obj << /D [2466 0 R /XYZ 133.7684 234.6194 null] >> endobj 2318 0 obj << /D [2466 0 R /XYZ 302.0059 169.9714 null] >> endobj 2486 0 obj << /D [2466 0 R /XYZ 133.7684 163.3314 null] >> endobj 2465 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2489 0 obj << /Length 3461 /Filter /FlateDecode >> stream xÚíioÇõ»~›É0'sϬЈÏ8M¬ÖVZ´IZ¬È•ƇÌ]ÅÖ¿ï{sqORn‚F@ æìÌÛ7oÞ5ïX± …ÿØ„ AŒ¶r¢sN•z2_ŸÐÉ,¾8ah– fM°Çç'Ÿ?—j’“\s=9¿lbSDçŒOÎ?d\&§3F)Íž<ù‘R^W§§Ï_ž¿™Î¸‚¹UQU~øº¼,wSf³r3/ᣩ̬þtþÍɳóDPcF Õ Éy{òÃOt²ê¿9¡DäVMÞÁ%,Ïùd}"$¼Ä‹3«“7'I(«îÕ!6Hcˆ4¹`ƒ2 lТÍeJìÙ@8Qƒ¬Ø3„e?RE§3GŸo7Uí'ßÔ»åæ Ç<ûòùs#š›jE¨áHÅÝ6ÅH³G¶E W$Wð¶}ý·õvQ @1ã6€9 QŒšMãæ‰lžUõâôô—r^owþ5`ñ^aTN¬6ú×þ8€xÆ ˆ˜ ZÈ€jÅhàF#DŠHò—TX†iˆ¢*òæzqû 8Y Y{(S3KuüÌ Cù3·H<ŒL’Û\ßÙ¶±Ä·çt} $f´øþýiÊTVâ?wƒl5͵Lö^ãb»] ©¹!Vä‘Ð]Y,žuñ|ULA3yäÙaÛäº"’³¨—ŪÒx§³&ÊfˆZM,KÛ'=ÏËò£¥V ‰MŠÐ*µêÃ¥VnC©U*|˜L¥V—Z±”Ë{–Z%7½´·[Š <Õè.–õÍòý.#™þ\›âýr°èÊ…Œ™öj›Š-²Ž+-UJ¢©¬3Ptœi?ç«á-­L—ƒ)¹´X >ÚŒh‚Hµ%Ö&rîÝÓ“n¦›bË9xª:”Ø!ü,§\eïº$±Èß„ô°Oð³æ }bûxÇêXŒu)èf¯êؾUîíÖ¾Û‹—óºJµºXng–ëâªôž-™*\ŒeÅ­ž_/ñ6¦]XÀ ¿ ³ífu@ŠÕª\øñeÛ Ÿ¢0Ü›hÊ«2àGûõ‰=r€ßÖ~ànpx§pM¥«Ûu¹©æ…UC;ßß(t¹½Ý ®*üQ `Î×Lïz’ášpC—L«%øYó…õðŽ\î\0±¼K@W5"Ô±mA%s ãÖ¶ï–õµçÜÓž7‹¢.ê»›ÒOê'Ѩ,r±º)çKœ4,\Üù…èì@,z+7޲ÉØ]v‚€MÄ¡…<çH ·žaÔ¦ŠÅ·Å¡K£l '’\ñÁ_›@@°YìV¥Àà\u{Q•ooA±ü3ªsÀ»uÃ%ˆ6$ınghHŸ5àû’êa¾cæY(¶¨j³ðôôt¨YCíÉ(ø+‰ cu¨5k‚ øâ6¤€¼Û-ëÒ]ÁKŒa¦]Pn!mÕ‚›^  “àyê4~9€ŽA "˜êÜOXkÓà"‹.Η¿B5¥I#pL•×OÌ·ë›]YUÞ»Ïé‡k—PŸÐã+ÎéLY|óÅÍM¹Y„iêÃkü½/–›€Ý¥&û•D[ËÃñFÄ"F̲*M}òC¤Û¯B~úÄ/Uwp¼/´Mš»’1.”<›{{ZnýüºØÜ+´×\e¯¶uØøzë,ÐÙa( ‘\_h`"àÇA“½øØ‹ÃwKW¶F6†™›U1O€›&$ô'«Â.±{_—›PŽ þÈ ^`¹R"”%–‰{wð¢›5r'`6^g÷^!Ù³‹Ë±·Έ2y; x É2ÑzíÃ…ùv¼Ùn0yFçŸaÁÕMhFÂ¥â2£÷.ØD¿ “‹m¸›§ªºØÕ~ÎÛeƒ}ö‡Ï@û,Pp Ùä¼Ó¹²ÓIÕÉ `?bÀ[,WqÞí£¢w;k¸O±3+xžF«S&øYó…{º‡×ŹŦ~â™^ *cÁq¶éè&kêÈî‚ZN )iíîå6/]‰7†ŠF xÛžG·x˜*OGûL\[",Ëušä½:MÜj"©<ÖiJ`Øij¢ÿØiúØiú&Ž:…z9\¼Õ³c& ,Ý÷cÛ&‡ÓYês¸^Û:fò%é’P´×9Á˜nööâbYýa²‚¿i9ÏîÁEò$ÔÛt†b­Ré@.Ç!P5éó—l!Þ‹¸ûfŒŒËíjå’ðýœ²Zšvløóë—gøVˆ!àªN}æõøïçÏþõò»üò›¯Ï^Ÿ7ž¿={õ¢ñøüÛ³ÙPê«ôåÙÓ³ïû¬1ñ} +ND´ŸEH±pÅåNñíOOUv·½õƒÊ%“8rÉ üBÐŒh¼bŽÉ@B‚¢c>½ {íÉöÏ®úŠó{¦tý0d:J@ܱ¦ìXÑ$ÂÏš/ TMzx\C« _¹É!J3]*º_ˆG¨c{)äÁí½]Rá³)-!DÝO,˺—TP¼¤rˆ0±°’Çpx<©ˆð³æ IEoÈ/OO½ÀÇêF­%—¶CP/ä PÇÈÐ9„´CF¼µ—>Q€À{yµ)çlåÛÛ¥¯%À?ÅÊ×åÂGõMÝÃ/Pv~É«^(–AhÃÚ½d¾{g}Ò’MØ ¼Fˆ#P2nðøÏ^Ÿµc ž:+œ÷ 6C(†ìîbÃ-þ9`B ’‹W}‚bªIú0rÈ@­î‡œµ° 6Þ@}PwÒ>$ÐX¡ó’ß=/a²W+ØXd ÃÒtKíÉÑ(¨‰ñá$&½sA­s¦BRèN¸ŒcÊ‹ÊoƒKñƒ}<[n£–ùøô1?9l—p)Î>@جãÔŒbîeE ÏÕ"– ³<`˜ „à {ÓìtÄ4›'õÝ ÂG^Ügnê½k(È«úºò˾I ³éÝd¬¸’—™:{yµÙî\ƒ –í&âÕÙôÑ``N &øÉÝS–y—Ï×e±pŸ@IæÚÞ8W®oâ×ùîåV£ò°sWZ`— ÁDìŽâp±Ý®Ø-WaßÀìæ%¡Ác÷Í/f²âÒ}‘…ÓµïþèÝýg¡A ®çLb—mpµàªëííjáÇ®Y8Ä­Ä ÷w u±/Ô7+<§ã.ôAitÉâßGRýñë0Þ•‡(Ýòá¿Ù‰Êñ«ÿ(¸ÑŒcÈ”5ÿðr#l«gs¸¤OS^¸¿˜©cb5ò|šóì6\óO˹èÏSÆüˆéSÆO‹]&®RПrT_Ø AÂÓíû»+HHz:þh9’Ö`ÙË»%endstream endobj 2488 0 obj << /Type /Page /Contents 2489 0 R /Resources 2487 0 R /MediaBox [0 0 612 792] /Parent 2464 0 R /Annots [ 2491 0 R 2493 0 R 2494 0 R 2496 0 R 2497 0 R 2498 0 R 2499 0 R 2500 0 R 2501 0 R 2503 0 R 2504 0 R ] >> endobj 2491 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 584.154 155.2476 595.058] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2493 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [341.9189 543.6815 365.4904 557.6292] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2494 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [322.4158 532.7576 345.9873 545.2755] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2496 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [249.832 462.6396 272.3075 473.5436] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2497 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.2746 433.0601 248.8461 443.964] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [452.6827 421.1049 478.4757 432.0089] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) >> >> endobj 2499 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 409.1498 173.499 420.0537] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) >> >> endobj 2500 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 357.7172 156.3436 366.2948] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2501 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.9634 326.0803 306.7772 336.9843] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate) >> >> endobj 2503 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5369 221.194 460.0035 232.098] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2504 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.993 209.2389 267.9911 220.1428] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 2490 0 obj << /D [2488 0 R /XYZ 133.7684 692.1046 null] >> endobj 2492 0 obj << /D [2488 0 R /XYZ 133.7684 568.9866 null] >> endobj 2319 0 obj << /D [2488 0 R /XYZ 133.7684 510.0078 null] >> endobj 2495 0 obj << /D [2488 0 R /XYZ 133.7684 505.5246 null] >> endobj 2502 0 obj << /D [2488 0 R /XYZ 133.7684 293.2885 null] >> endobj 2365 0 obj << /D [2488 0 R /XYZ 133.7684 125.9162 null] >> endobj 2505 0 obj << /D [2488 0 R /XYZ 133.7684 121.4331 null] >> endobj 2487 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2509 0 obj << /Length 3404 /Filter /FlateDecode >> stream xÚí\ë·ÿ~…>1|?i4¶S§hÒÚ×$@’:iϧV·{ÑJ>ßß™%¹Ë}iÏm+a¢v‡Ãá¼8ü‘:6£ð͘Äh+gÚq¨Գõݽ—_^°@´¬©–)ÙŸ¯.>}!Õ̧¹ž]ݤÜÑŽñÙÕæ‡9—„ÉÅ’QJç_|ñ#¥üP^^¾xyõz±ä žíVe雯²›l¿`vžåë ºMåܺÅOW_]<¿ªJÆaÄPÍPœŸ/~ø‰Î6 ýW”gÕì¾Pœ㳻 !¡c,>Ù]¼¾øGÍ2y[uRƒ4†HãÔ€”™YPƒm5(C¸P¢QáÄ ª¢Vˆa󩢋¥’|¾.òòà–‡ý6ãÛ@…|úˆtP­ˆ Ò¨8Z¾ºCÒù'ž¶% ×0IÉé«ïîŠM6ÀR€¸Öè@VàhœQt›†$dD2iÍíæø2ŽLÍß q\rP˜ÒV€û1â”bU·ë¢Ø ñ6ÄI%ï}¶Ú<[V/v«\iÎÿF±‰Ç*ðS!£Ü7«]9¤&ªvHZC¨\j£Q0Úæòòm¶>{ß ¬\SB¹ˆ ùl€-_Õѯ½ôùpA´VQ¼?MñòCŒ¬1Í_Ñ.•qËqí88¸H°‘ø‰Y+b”PY§lAIÝÔ¬…"V+Õ™u TðŸ ;f%û¸y!^,³û 71Så@®NØýªŽˆSöVêö­øØ“ö•ªžÀý~{·ÚW±ü˜ÚOiØÎŒfÿ 3Ë_ËÌnÐÌí ЄJ¡B6¾®0G¤åjj5LȪe€ó¡ÕP9G¸æ¢ÎM~±[ùæ½Ë|;?Þ]gûlÓŒs˜†¤ºaU †¯öoÍ«DÄš~™vè‹Øç‹"þåÙ?{(Js]:𩩦†íqÃa Š.k‰‚Ú–¢¹”ÕË/0èöÇÊٖܲù*_íŠ7ÅÓ“¥óCán3ßx[9ö¾Üy ¸]ü+4Aé›×þ%.—d±””ϯn·áeüÜg?·h•ŠìµÎºú‘°8JÕLY+ ¬§ TÓ/Ó}Mõùލ®MÚŒV0§‡m\W;¢-·Õ°~±>d9*t#$˜aŸùF^|£Ñ~C»àçíjÁi0JxsÏ¿¿úúó¿=÷_мø SlþWqŸ¤°Yìw4_ä…ÎC»j•oVû XVP1y³ÀÈ@j”›•‰á3G÷á®òƒO0ò*<áÍæxw÷ؼô¯WeåЬÜË3íÚDhM”+¨ 7zÂ)júeÚ¡o>ß§Ö&ìÐqŠšjjXG‰=¶‡õ)«­Í5DØÁ+ÈA n|`s¥¡Na®m£ël]Üe¡þ÷Ñ Äâ ­Bj 1%ø|æ\7n¹©œŽ«9Ö˜Rñ­7¶ÊÇü°zçÛ()RKßGWbz²lkZŸzº–ëûWº‘oBj tíª|S­2 2s|*W4ëMÚáTÐF2Ô’ß\|sŸíWýëâðúx_ì« $%0Ù´ë%ù@5!WÊ[Èã-q¼jÖÙýÁ'f°õÃv·ó­ë,ºÁ¾X€6rÒS¬XÆLx†‚B`@FAp Çpü°RX¤?Zš…í˜á˜Á·µllCèj2œÊß\Bþÿ:শh=aAFÅ bRö}…B]Bq{E„ƒªy {HkâØ¬YµÜö§Ý¥gà.Ý*íÑf.`æ§½GÏyNoº!æhqdÓß'¦öë_}Ø¥%B[Ý<b:‚PÌŒÃ~x:»‹M¨åzD[¢Ð!a7PuJÜÃ9¿ˆ3E_Mëe¦8ìÚÕ¬¦J7Û°¿ë9©'u–S¾g0_Ë9*æÛÎzNØdéö„¯|HçÛ˜qëæÅM,{«5‡‹ÂðkéáDé'ìó«±-¼§¬+@7[Dª©amZ°ö°¾L™ô¥0VGö²YPÙêº@ÅZ ÝTU7êÏ/zøì¾N}Õ›M†«îÒ/õN©™j¯ôùs~Iú¥+Hm5?3lÒPÁ&‰ÿ¾r¬3R*{rõŒu‰„^FK6‡JîδàP{U5Je¼ÀÃ×U|¥P¤> û*#ž‡2(?ž‡ MM0Q'#«j ç³ATÔ0_{·Bëtd¤œ€y €CG–ñ –Ùj«ÈëóÛ%RƒÄ‚Fvq3ã¦qQFkE6%ôšü· ¹rwÌÊaøš‚}ŒÖç_Û ôºÖÓ{Â×v ¾VîIøµž‚¯k>¿<~­~sÀæ~Íο6Søµù-ã×åy˜vªfêRk\ëÞâÆUÍHÊí ö`Ý“4ö`ÃáIµfOÖÔzRŒnqbA‘’:x(gPgâ¸Å}†“ |î l‹ Âçă ƒïVßÌA¦a:QþGúeÚa ïñ+ÿ%ƒÅˆwè–ÿ‘jjX) \C·†}¸Ý®o½ VÛ<¨©<Þßï¶YÐÏÞZú7ÛíïñCQA8«ÝOþMyŸ­·¨í,À}ŒâáˆëÀ}oשVMõ ¿—ì#¶5Xäú×Ñ—Mt^I±Ê&,J˜{˜(¢F«Ã8ŒØÇøb8Ýï³2Ë賌Ñ;|& ÔÎ6[žÒ_ív^€ðÝ t0_žº°ç„‡©†<»*=öP[p~f °pkÁ¦ðÁš~™vÀo{|ÇÎ(…Ü'»tÏ"Õİ; b…ÍAkØÄ2Q™ù¦¯'k‡dÚ¥ÔºØïò`GßyØâd›7ÎÑ>9Ñ–é™@ÛCj™ŠýH¿L; A ]¾c±o`+¤iW€nìGª©aMu‚&ÚÃVnXé8+ãÐ*Žu³ž‚Vå“ Uî8‘†O «‘ê=Õ„ùG\õÿWDY­ßå‰KÌ ÊÓp;ªrcq/5ªjƒ'nf©jLa LMØ}ð9ÖHjwŽÃ@j:Ç«¸’†³O\žoÆó¨†XÙŸBPùiÁz\ã±V@…¼•Nkô|êi&†´š8ÚÑE]J&H<±ª(k\óŒ|¡‰ÁÕ>æw´&ÜR1•x"Y=Žfž„ᥞî4GrO:Í:ù`t}ú°ßÂwœÿåª hÖ{„Нê VÕ¡|~WõÎ3Ò×Çð<»ðT` ®ÍHxJ ¼`ʼnT5L, ÂÄ 1r• ¸ÑÙd”3ŠÙîÜGb6üçáRc}</}…›{I1¾U‹«+j²Â+T<‚LöqÙ*¾º…ˆÏöã~FÊýà§Ü©8{CHC,§fÄ »S!.Áã¿‘ëÙ0‹Dý÷GÞ‚Ù=Gøö®,€]£‘ß ~:iB¿£“‘ÈO”‚odò3Ù|£|àWÏ ¾n‹2óÍ‘œ«‹¦H’ܯž…ÿlß/Å'7qØò¸^Ý]geIKÃÜüëK au}«zd:P¾òE¶®C7œÒïïˆÀ¿ºªh«ë„þ¤¿Ôjð]7…w“FLsUk¹vó<«& -?éPòÀ÷õm¶öRF‚Ûø¦Øï³ò¾È©]Hªoú§Ù.»Ëòpî·ÆëŒøôzðZmvwh®eçÜsrë$éâ;Õ³î‡¿ÅÆ¤L%ìXaU]³š¬:ǬÇ}HsŽ»yÓöÏúÜ|,é¦cŸÓM·žN†ÓnK'x£ [åa;´àÌþXÝcÐDÕÚ€ÚB uÓ;tÀ3vcl[7'"ý„Ð}¾cwÕ#Fé®]¯ŽTSÃâo¥‘íaã©ÏMqÌÇášóòŽßù5´'&/ûËšÂN%/í•j¬dTD:ù&PÕwRž°L8ŸÁ„›ÌÔ™ðHbJ&üyz6Š»¾æ$U±ä€txCXz²gvB1¬-ÈW‘üôTz\Dz•áÄhÓ½ëÅ‘hbL£×L¶Æl³·A¾nË6ÝíðMPUCîß%V(Û¹ór\cÙ{sÜퟔ ÏÉ»©P|L…}Cýªð`Fh>VÅqEŸÕdÍõ­Ç$ŽgÄýùàb½IdÃtÒ§Ò!N‡ñzHŠq æI:?¥ZÇ_ÉⅮј>#¥~ÄÃÎ ðÆ"ýM{«°Ôš¬¾FHý5ÂÑPNøžQ(wg;Êél“;aõÏdâïÌ¡~«©î3U?;fÚßkZ°¹¿Ú„»3.> endobj 2511 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.9443 596.1092 251.5159 607.0131] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2512 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [454.9042 578.4848 478.4757 589.3888] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2513 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [365.5816 554.5745 389.1531 565.4784] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2514 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 513.0398 256.5268 523.9437] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported) >> >> endobj 2516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [264.526 473.997 288.0976 486.515] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2518 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.6674 356.0584 242.2389 366.9623] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2519 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [378.1792 326.4788 401.7507 337.3828] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2520 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [251.6853 314.5237 275.2569 325.4276] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2522 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.9357 274.0512 285.4112 287.9988] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2523 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [309.1815 188.771 332.753 202.7187] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2524 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [350.192 165.8919 373.7635 178.4098] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2510 0 obj << /D [2508 0 R /XYZ 133.7684 692.1046 null] >> endobj 2515 0 obj << /D [2508 0 R /XYZ 133.7684 497.8724 null] >> endobj 2366 0 obj << /D [2508 0 R /XYZ 133.7684 451.2472 null] >> endobj 2517 0 obj << /D [2508 0 R /XYZ 133.7684 446.7641 null] >> endobj 2521 0 obj << /D [2508 0 R /XYZ 133.7684 299.3563 null] >> endobj 2507 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2527 0 obj << /Length 3411 /Filter /FlateDecode >> stream xÚíksÛÆñ»~?uÈ™ðríŒ[Ž3IÔÚô‡6I; IhI@!AËê¯ï.î^¤Ü¤‰&ñxÆ<{wûÞ½›PøÇ&Lb´•í8aTêÉrsF'7ðòÕ @ójƒ=_œ}~!Õħ¹ž,®clŠhÇød±únÊ%ar6g”Òé_|O)/wçç¯ogs®`nìv~ø&½N·3f§i¾Lᣩœ::ûañÕÙËE³¡hF Õ ·óãÙw?ÐÉ vÿÕ%ÂY5¹‡J˜s|²9>bŒÕ3ë³·gmPFo«O‡È ¤…Sq ƒb„k3H,Aðsæˆå´Ú%\! þ´hʉ1FZS¢•a M•™X ©ž¦®Cš¾ü°LïʬÈw=ÚFœs“kï$\‰ÛœÇû @]` b†ƒ’a€jBN'JqçÏë‹§=É­ˆâ‚ðÄ¿e#kw^ÿâËÎ-Úêîâ5 ê¤df\:ýòt²©‡ćQÑÙQøÀ£³ÃR'…â~Ç Þ±ÖŽýËyë{:U6ÎÖܦ“ë.Â#K¢2pÛNmo»7±ˆXM¸ h<¤"”3yt'&  úÅLªiVî^n·8*¶]yç°}<7‰±#ÏQ^Ù'Ê+Z §”ÿ+³æ@Yä¶àç¸ÊÛm1ãjzŸƒ–tZ„ß¼ÈçÿIá<±é®LÊýοY«Ô®·Å&ÌyÛŸðûÛ´AS¼3¦¦ïñ¿t»ÍVõû«‡×›m‚+ ZóB?úàØñk°JQk‹ÛÛ È-STu¶Ò¥ ujÔJ‚çlm¨’_¹È²ð¿wÛbµG'‰›bFÙz½ßdyRfùMx—îvÉMJºû@¬m½ùµu#²®å$ ø]¹&‰2õ¡Gâ†&C`FíXÜà”ÓÄZ-±!û&Ý\¥(WÜN/öù²ïêéE±ÜoÒz@â[¨ §ƒqˆ ¾”öQgQTÀ©“g1g#â³Nó~Æå´ÈVxÙ‰4ÏÏ“ÕÌLW¯7 ü€f@ˆéá¾§ŠÎæRºérÆÀ°íЩ{[n½ ÌŸ_ÀºÑžP} ú¥Õ^nWûo“ †¬tú™‡n@8¢µ:ËË!ŒH Y€¹ºË> aâ  ¨ê¡våêüü}º,½cüü‚Å.UˆÝœ °ÀæˆQÔ€uîcO¡ÿö@À2ç BÀJsÑ'D‚èÙ OÅ®<ù0‚¥»Áƒ¢Ø:yœd L—­Ñ½ÇÜAMwÿ) µ1M$«RS™ , |Ã@<ظü+L¤=‘4Å`}‹À&,‘r+\÷ÙjåÍw’þ#î‡)žòC™æá¤‘W¨¡=H¶«Ü@ÏaYLšëp|Ã;®ÖÊqb’×Y^PG˜uå»1XT€hr×Zµ¸úh™Íê÷E¶¤»ÏÊÛ0ò?µ[݆çd¹‰\¯&f8 D  Ìu4—ÞŽ¾(R t ± 6É¿+aöOw[`ØöÁ?T¼!‡ aO¶¼õóÉ6@_Í8î³u@•åþ·¼ ï—h—¶ûJÍ«‰k? H×±ƒ‰à¤8%VÑS±Q??è»wŒÅRbZ®º;èð¸:µ.¤æ–‚k­‹Ö} Q Ø3]x*Lã„ Û¶CAuÓUR&8’Ólçg*þáD²Z¥+?w›nÓsp Â@êá§–¨Yv0Eàžz 5èzí'P+q¦ÈÃGÅux1À5¦ ˆ*ÐŒb\¦N1­ŸGð´ëbõŃòËïÎÏï·YÙßÈ»4ÙÚG—u5ÐñÕÓ&Á?8I." Æ7v6´­gè=TÛØ@”Nim£7 2@ ÏUÓ[z+î '®‹õÚg2•sÇ©/P‚__ú‡JÑ’†Ù\ }þ·Å˾þæÕgþõÛ//ß,üs%nõ>Zâöõå·¯êo¨™^|}ùlÑ<ëé‹ËwÏ¿~¼‹°ú‰€â‘WÄO}[xNUô©Öb!1KÐf8>Í®ñ—MнŸØ¥ù*¼Êý«d€Þt ‚Ÿ(è&7uµË,®=Öö=öÊ"áüáü]Ëï±`'R)pÂê”ajàçñ^ ‡÷Y€}E3„;å:»èJx ubm ´á”éöÚ÷šÏ…²·A¬¥B ~j#]¬¸PóymAO™ìˆêùùUVÏÑIF:Úa´é*,‡mA3? ˜Ã|u'U‹A •XÞÁFn79UœLÜg¨¨ïñ¿d ¹ˆŸÇ­Æ’S•äÁçµàáI>ó¯’< +}±I¦çùæ2PÌ™f®Mœ:¦â!&–¼îcD…®ÐNÑ,¤VÿPd…Å¢NÅT;îBÎ- —ìQÈY »`d4X…¨—8jl»Ö;^¶kÂ×øÃ#5ÿ 7²˜ì«¢·%!ɱfd7]Ѫ¡û{h —‚±mïà@ûŸëC~‹OMÜ—Þ­“eS,ñWU^©ã·&ö#¬°ÀºZO%º1ð‘DW€ºXat+Ñ ²Ò"?&–€/ØæŠìÉÕ:m¤*2âŠËX“×P1ûÀæxãW‡SèÅLƒB^Á° ª5 )4¤uÞ}â$=äÏ0˜?Cô§ŒãL %«aÔ©lPpQ'Ù[Œ©«‚âýp~‰>¦NŽýνSW”0™gËÓþôLøYï?§6%„9–k·ð gØ/èêc­÷›ÜS– 9˜ƒ’iõÈŠ‚!RBvÎc3ÄȦ¢0zN¡ˆÕJuÎ9Š'öO}¦W<ò€CŒÖ„k1Ägc‰@ýŸÍֹǰù6ÂfwœÉx·3ùbŠèC<–àR˜”¿a ×D±-sÂ-3?7“ca2ÄÅö(“p¬XæZL~—gU}ÒqÙ ÉÃ\fÒÕýrµ_̤>Ü¥È<çµä| ¡Gkƒx•~1,ð<Ë!X\­Ð+áïNîUpóˆê¥øøêåÉâ%{LõRpNw§Z>b°#)¾ @fêd|IV_òï*&©fºÅK˜ªm€Jòd¤x F›áz³Þ‰êe ??(_öðŽ·¸Ã‹oÙÝA÷¾¯†:±.¾¥Ü‰öº‡ &äþ 1{¤ãHºnv‰­z4øíã­þqˆì´=A êÔºx•hÄ ƒ6úÛ;è°þ¶ê\!÷‰C_L‡ÑÜÿ<Û-³ æÕS¥Íð{¨£Wh Vé5öJ&ûu¥ÎBùÌ7FBÈ á0Xg;ï ]PüÐ’dymð¡n®„Ù"˜ÿ4“yêÁªÆ¾êã*×öãz.ÝÜ•®>7Îvê°0å8Ë¡­ª1‹éénw·ÎÒv¦pì4[/f–âõÅaæpW øÞÀ ¹ãÍ~F· ®éM§ŸIÜW§„á*Û¤!…ëÐj×tÞ ɧ%³‘™tØú©_v’ð æ£v6Œh&N4ì4`j؉‘>¢a§·‡¡†Ö‚šÛúOÇ`´»-ökTa‚ÂÂä »=+¸Ûtùo? mÕ(õðá¯È‚ŠÂ›Ð ³÷8,¶+ÿ"ÛùßÛìæ¶*Ýy„¹Ç¿ø‰Ÿ.J„»P³üÚð_Ð&RøÉ©3šbÇKÌfw%¶ÅæzWHãWižn±¢b¨ûTÌ߇8êEºô:Ô( ÑÓ猟ױÛ5ÆhuÄÖ4[úòeè›zQ|x¸IóÑã‚ýû†½Hendstream endobj 2526 0 obj << /Type /Page /Contents 2527 0 R /Resources 2525 0 R /MediaBox [0 0 612 792] /Parent 2464 0 R /Annots [ 2530 0 R 2531 0 R 2533 0 R 2534 0 R 2535 0 R 2536 0 R 2537 0 R 2538 0 R 2539 0 R 2541 0 R 2542 0 R 2544 0 R ] >> endobj 2530 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.2341 640.4385 224.5261 654.3862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 2531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [229.8025 628.4833 287.1468 640.817] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 2533 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [287.7098 535.3215 310.1853 546.2254] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2534 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.2264 517.6971 442.7019 528.6011] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2535 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [415.0543 505.742 478.4757 516.6459] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) >> >> endobj 2536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.8256 452.2521 418.2921 463.156] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2537 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [451.5867 452.2521 478.4757 463.156] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 2538 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 440.2969 170.1912 451.2008] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 2539 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 402.7921 155.9949 411.7683] /Subtype /Link /A << /S /GoTo /D (todo__todo000003) >> >> endobj 2541 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.1454 298.7563 299.621 309.6603] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2542 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.0894 298.7563 422.5649 309.6603] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2544 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 123.0456 155.9949 132.0218] /Subtype /Link /A << /S /GoTo /D (todo__todo000002) >> >> endobj 2528 0 obj << /D [2526 0 R /XYZ 133.7684 692.1046 null] >> endobj 2529 0 obj << /D [2526 0 R /XYZ 133.7684 665.7436 null] >> endobj 394 0 obj << /D [2526 0 R /XYZ 133.7684 614.5108 null] >> endobj 1189 0 obj << /D [2526 0 R /XYZ 133.7684 589.9959 null] >> endobj 2532 0 obj << /D [2526 0 R /XYZ 133.7684 589.9959 null] >> endobj 1190 0 obj << /D [2526 0 R /XYZ 133.7684 391.7884 null] >> endobj 2540 0 obj << /D [2526 0 R /XYZ 133.7684 387.3052 null] >> endobj 2543 0 obj << /D [2526 0 R /XYZ 133.7684 273.691 null] >> endobj 2525 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2547 0 obj << /Length 2966 /Filter /FlateDecode >> stream xÚí[_sã¶÷§ÐC&¥fN(þôLÚœ“^fšiïÜNf’<è$ÚV+‹IÏýôÝ% IѽtrפãÀ ìb»ÀÂlAá-˜Äh+:ç„Q©›û º¸…Ư/˜'ZuT«˜ì׿ÿJªENrÍõâú&M3¾¸Þ~ŸqI˜\®¥4ûòË(åM}yùÕ«ë7ËWP·_×µ+¾.nŠjÉlV6t1šÊ,g˯¿¹¸ºî&ñaÄPÍp:?]|ÿ#]laöß\P"r«ðA Ës¾¸¿:1ÆBÍþâÍÅ_»!£Ö¶ë˜¤1Dš\ˆóX Êv¡•!\(Ñ áÝ’©¬¨ê]y€µ ¡²õ¾*ÖÛ'üÙz»-¶®¾)ýï]‘®›[NŒú4t;Mlªn=ÍëhÂý*î0œðp\œr«¡d‚ ¹Ngª£šá+¨&JSÑç[¾ýG±iœ~ Š®÷Í]y¼½s’Ú¸ ´óRÚ–E}øn™&T8ºænç]ìV¸ ØÆØY`·bŒäJ±–ȹ6ŒLï2ž hw%\árñgÜB"âvÅÊ,,¬X‹¾…0;ÙDxy·ä2+w°8·‰Å\^nʇ%cÙ“kEù,WRél«Á%¤6 +ã’Z˜'2ûÓË¿9¢Þ´p 7Kó¹£0"¢0D(Ð#¨Ëcµä4ÛccYBYÆBÉN ô 87s ‘X[ SŒ‚^o+&ÚŠ peÄ–˜A`úÔí¼-uô«¸ÃÈtãFbïM± À+™@*…@5Ç6—„k@Ü[T)Ê`w@d™WŠHÆÄs¥ÑÑÏLk8î²p£ˆÍ¥8/ŽŽjޝ±DX™÷ù:d! $ÑL+T-Ñ\ʖ亅 nXvs¹ö…+·Û¯E &£ñ¬%Üvè„#ê1•àN¡õx½« »Ù«ÆNÀ•€»W8צkÎ¥!”ðw±Éöø°ßm%XF«Føª‘AD#µ”Ñ Àó9¸ô«¸Ã˜Ý¦ãN©v)•*@ªÆ@5Ö³œ(Síîpˆ¶Ð)eR×åf¢ÚºïÇ]s7¢PFŽsù ŠžF§œ„R°3­_ïœ÷‰Ïx_%r€%%{þ7ĨΓ¶îõMSí·®üù„?>VUqh®Þ7Å£»o×÷Eì›! vN°­ë¼ôøR˜BÇóþ0&;ça/jl»ÈªhŽUªÞƒ›k´ñ»¦ãÕ°¦Ð¶nFöGSÇ»dç#y/–½wÀŸUQ× L‡¾4 ® ù^{!­ {¬Úµ¿&ûéXÔMWëLK­écán±‰ ¸]ÍÚ_}wýíþ|åÆ)+W ¶*möOÄô–ùÓ#Ëjû¢›p„0Q”Š–^Pˆü…V^Þµkú x|vx6{xô]ü»:ª.`‘‡f·Þâo8‚XcäBnçNý*î0‰Æ€!‘ƒå(N =ª¶’rB-·zlw‡­Ó¿—ÒñþmëQ Œ6õP…€Ä !e}Ýܯ«§‰)MŒà ñƒ1bÎ òUL?vÐKF õ0ðºÏ=µoO4ÇÓRb)3}¦_83£ç2>žw‰‰Ï@©T‚h­tJÕ³Ž2Ûb_4ÅU„2#'šžN8‡C…¬s(Û²¼/œá&Ó¶ÔP¿Ñš‘Á`/QÜŠŽæ^H¨ì4Á/ü°66I$ =Ø_F ÕúY‡" 4|ÆœˆÎ8)À·+‡ÿ/[YOb{ýPlv¨àÝß>¥.b}ðMÑU†§qªT6 û»¸~ˆÖš ªÚ 2z„ eH8/çB˜¹è9Яâ#ñÏ`ÜÉs‰Ê l¯tiܨæøjN ”µ}¾Ý‡fNÌX¸±Ux=¤éé°¡QÆ+-T G¡%’:ex)£[oÝï§÷ì4vöü{Ú{Q‡s»/M" Á§H·| šc«À Ûçêäê#’Ç»ÝæÎoÊý¾\r•=†x&„-g#àLjÑY‡¯ÙpθWšÍsØqÖ€UPP3,öLY .΢4ìç­ƒ×èÌJ{ºŽ ÅòDåu–Ý ¸±¬:,NDò‹xøá¦×„RCWñ„‡n&ð” 1¿œ^52‹àv¸ì”LbÙŽÝõðåèšñ^È\ûӃǜ¿-Öx; ¦n‹CëxøÓoþÅÙ® ’ÐV§Ì!à3¸h«õôµ¹ãN÷¡¬þ„|‡Óh#. B òâ -íT–دf0T :ùñáQ6gÎòE<âG_'L*Ï©YgrÞ×Dr—z ýÐY™Â:ùÀ¤Á|„柔ÀN›Õ›ÿÿ ôc¨‚YXΦ Ê\›EGÖEÇÔEÇ“fû ™iºÚ 3W»övW>àA½?Kš½Hløê»ë¿_½våÑ«oÆ7X±>îCì M›ö'$äߤiÃLåó4°Ã3g»œX¼´xVx±ŽÔJÎ…wŽÌ·®ÞoŠvƒŽ„u ÑE5O4ÇÔÂÆRÂô¹vÈNR'‘<»Áü3Vâ+Pß|hÓå(¦Mx²Ç:¦dÞ—þ¦¨‡&:[ïǶÐÈ#•ÍÝIæ·ã™$R*û¬„+—‚ÀyÉÌ$\9ÐÚ»ù8áªÿ ׉t(^1ÈîùÕéN6M­r¢-SÏIq¢§ÑSù‚“> endobj 2549 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [281.7473 654.0823 304.2229 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2551 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.1953 587.9494 192.7668 598.8533] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2552 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [254.415 587.9494 276.8905 598.8533] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2553 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.2506 570.325 285.8221 581.2289] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2554 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.4701 558.3698 218.0417 569.2738] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2556 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [376.8811 484.5752 400.4526 495.9225] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2557 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [155.7358 472.62 179.3073 483.524] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2559 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [237.742 410.7806 260.2176 421.6845] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2560 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 398.8254 156.3436 409.7294] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2563 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.1103 293.2467 224.5261 307.1944] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU) >> >> endobj 2564 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.2341 280.8931 224.5261 294.8408] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 2565 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [356.6028 270.3677 379.0783 281.2716] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2567 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [233.1197 182.6253 256.6912 193.5293] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2569 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.3895 126.4551 179.865 137.359] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2548 0 obj << /D [2546 0 R /XYZ 133.7684 692.1046 null] >> endobj 2367 0 obj << /D [2546 0 R /XYZ 133.7684 633.5343 null] >> endobj 2550 0 obj << /D [2546 0 R /XYZ 133.7684 629.0511 null] >> endobj 2368 0 obj << /D [2546 0 R /XYZ 348.2616 561.5229 null] >> endobj 2555 0 obj << /D [2546 0 R /XYZ 133.7684 554.8829 null] >> endobj 2369 0 obj << /D [2546 0 R /XYZ 202.7891 475.7731 null] >> endobj 2558 0 obj << /D [2546 0 R /XYZ 133.7684 469.1331 null] >> endobj 2561 0 obj << /D [2546 0 R /XYZ 133.7684 383.658 null] >> endobj 2562 0 obj << /D [2546 0 R /XYZ 133.7684 318.5518 null] >> endobj 2370 0 obj << /D [2546 0 R /XYZ 133.7684 247.6179 null] >> endobj 2566 0 obj << /D [2546 0 R /XYZ 133.7684 243.1347 null] >> endobj 2371 0 obj << /D [2546 0 R /XYZ 156.782 173.8232 null] >> endobj 2568 0 obj << /D [2546 0 R /XYZ 133.7684 167.1832 null] >> endobj 2545 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F73 1481 0 R /F14 944 0 R /F58 909 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2572 0 obj << /Length 3066 /Filter /FlateDecode >> stream xÚåZëã¶ÿ¾…qR83|ˆ”¸h $¹»ôò!hsnÑ" Ù¦wÕ“¥$ßÞæ¯ï Zêa{E€âpEކÃáÌo^¶ ð-˜$UY²PšFµØoè⿽ažhÝS­c²¯77_¾KäB­¸Zl17I”f|±Ùÿ¸ä aÉjÍ(¥Ëo¾ù‰RÞµ··ïÞo>¬Ö\Â\™·­þ`¦Y±liªORE“¥æ«Ÿ7ßݼÝôEû0’RÅPœ_o~ü™.ö ýw7”ÉÅ#¼P´æ‹ãHà#ÆX˜)o>Üü­g­ÚOçÔ¤)IR-gÔÀù¬dJ¸ÂªáÝŠÉeÝà¹xÆ—{“—e½Ë»¢®ÜL^íq –¦É[OUÜÓ”æhª®ÎæcÅ–‘4Õêyg{\jî<ÍщzúuüÁôDS¾öDx…c „&¿J0ÒdOumß„š =Ü÷hŽuóäU±ý·ÙudµNhºü 4ºârùØýØGcZÓõškN3"¨„«dŒh)™elðãOxO¦yêî‹ê¾ÒlYTm±7nÜÝ›ñ™9§DIÊ*‘„g”_ÑzO¿Ž?˜ž~Ê÷œÖyÂXÝX‚‘Ö{ªkû& ¡‚%Ã}¦_¯Ö‚2o« Ž]Y·¦}V —/Eˆå&Ì:^£mÐl¾Û™¶-¶¥¥¢ËüÐØKbŒ‚•ˆpGN ¸;p b))¤DÜ–doÚ®©WŒ.ÁHs»áóá´-‹Žé²«Ý\lƽžZÓxê@јº£%vß¶OÇm]º©CÝDklY™ˆ›SꌫåvÅéòÔy‘ºX4ºûªºŽä§«þ`‘}Ö 0¤;‚}Z ÃÀü´ë@$)—ä,lJ|I‡r„K4|ÌB~LlmE¦‹ l.&Æ:™1¢DªŸ!Ÿ’yØßÕU‹7ϳeÛíooèc§²+ŽùJùå;@Þ@©&©L2¹ýÑ‘ ö‚L2O`y~èpØ×Žv–Àì¹Ü¿ýÜýåÍßý®I 6š0žhOW'fDK å  Góçk‚}áÎ<Œz··fWü¹3+ö.ä'*éj !GÌÍ9­½ÄTCŒåâJÄŽÉ.„*)5‘‚:jLwj¼‘…«ƒaƒÑÙEæYó3x«Ñ±Ü×]^TÞ£G~ºé]9<Áѧҭcá =íîݨ·Ož· „ÓÊLë…„K×T]Câ@¾ŽègqÌÕ‹è´x}öâÆá<+6’g Ñe)&¼P Ò¿™~ww Ýî‚ë €t¥^æùÏ´—ŸÉcÊ;¾žqCð/1×»Æf¥!@#ìO}ˆCöÈ)œ('²ØŠ±Â®:ÿI2Õ,L:Hpã/Ü>©œ“D á7r7úÐ`<ª«Y$‘„É”Í É@~ÌnÀ^zù§;C"™©ÄÕé۬20è-F- …ðx=ÃŽÒdRƒâ¶†p4s¾”Hˆá~›ãÏ'Ó<6EgÂüÉo‘Åg¤$ÓýGOÌ gW °'š“TAª éËåkL¾“wùyÑ@¯Y"ÓC^¶sÖ†©Ó^¹s^ùl»T‚¯=ÕM2IRòÚ$­ð¦™*iºlž“S˜¶I|¼›Í†`ñ±èîGd`ßûÂ'0?6Z[A¸ô V{$‡ó0P|aøìjŒéÀã4xÑX‡ZA’˜°E’‚²«PÛÓ¯ãfô9áëÐ"¨e ø`Cš³l$Æ8ó TW6Ÿr³ëÒÑ °MŠd6†%ryXAöŽ»¬v0òó˜ŠBYž§ÌíJòœ'Xš½[ñ5HÛ3±Æ ;‡EýÌðmrOs!HcÀžºüäùIo]0¨ò£U ìaO¯íêòt¬üjQ=¯Î˜­u¬ÀO¼óèÔÆCîÈkwøâà¦Gcñ£9çÐÊoê¦PoöB`þÕã|÷ôÊóÊÉ'Ôs^žj¢G 9w÷^´í¬ì¯Þ¼ýþÃûÍ¿f’MÀz¦¤f›Coè-X@DAä«[_¢3òäÞt|­PïNØRˆê‰>ã:œTR(* ƒ+[ÄQï* ­tpW”ÿø=ùÚ–á~K¼ÊLµåÞ§j‡›¾º'7.±kŠ-j_·¦¯ÅìjÆ£ªîÜàãcÝ|ôo÷¦r£²¨>âRàdqsFÙ‘%'f¸¡-ãàùÐa¸5»Ü—~ÚÚ'Næîñ±r’VîµhÛ“qCÙ8êîóÎþlw;Ͼ,¶MÞ<­Ömk KY掀2¡[ˆPqà>u΄ÏËanë×r÷è S|§ê"È}°«›Æá¼ÜCp¶a|qm©m¬£CÚOÇm”ùG€ó\ §Ún\Û—,(fCz‡7Š {È ~Õ(-ß#†ÅqèÄE[YÃ! iÞöÇ…„2"²$]¥HF©¾ÉzúuüÁ4˜LùâÑ}Æ8€søH¨‘ãîc º¶-W$âá¶u¯²bR4AJE´VòÅ ô×$™ð=׿ê;«—5Ð÷_/ïÛ§dB&˜0¦£þ•³4 )lTÀ§ Ò΄}† Ÿ;+‚e›»Ñ½DÝ|},Êò"«þɵگ-jxþ3n?ð‡¡·á™°:FÌ~,,`í0Y¿¶rÁÈ¡±»G…IÙª¡@‘¶ÿši*¯µ‘=ù:¦Ÿ+`G\Ïøƒ€HC!î>.š=ѵ=Á€”7õÚo`ÐB*âF#l´jÂE×8æ”ÈŒg£ú+àÙ âVž“{»‡DÀ„VÊ+as•·ÿÜüãíÏ…¼ÇO×ê°Å›M7ŠÍæ|‰oûZ&/ªñcâ E>ä<$ãi6(òõí= 8›Ít»°“vjïgû\gÏ@:’3WI‘]Àž$r*úÆžÔê.î€z=UcÏÊÿÖu¹öEûq®‰õ×Az1ý˜W'×ÇÕ–Wc[Å!èäeår@›Û #à &ðþþ˜ßùœboËb$Ê?åaáçO]}„¯×ó)CY>ÍÇYÖ¡ 'ï-7´âžÛ°S·«¥‚åu¬HoÝ6]sT>–î ç(ˆ¤4}‘ÑÆÄŒ– ¥¤àC£e/2Z¸“liºMQš7ÅÑaA›07×wþdlÃ}š½#TPÿ/lb—µ+²Ç½ðAäç¹f“N°+JfxðXÕª¾@ES¾¨ƒoÖ>Ná.ý~áƒï´¹++P§bž¦gš»žj“Í7wÓDŠgn®(Ë¾Õ &bMHtâ[‹(ÿËæ(4=4˜/MÓ÷—|Ãðdfî#Å_vÿ™þ3üäÚâÿ s!À%‰Ì·mŠ¿Úâo]sŒà¿·òÿúÔ¢,Šac‰Ç‚UP*²A•iˆIæS¨ “øä„¬Èþ{ò–ûÆìÜ@¹§Ì—¡LÝ2~ŠR[+gY³¯|ñ¦þütgª³Mž Z¤°ÿ}¡Š=endstream endobj 2571 0 obj << /Type /Page /Contents 2572 0 R /Resources 2570 0 R /MediaBox [0 0 612 792] /Parent 2589 0 R /Annots [ 2574 0 R 2575 0 R 2577 0 R 2579 0 R 2580 0 R 2581 0 R 2582 0 R 2586 0 R 2587 0 R ] >> endobj 2574 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [317.7834 654.0823 340.2589 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2575 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.6539 642.1271 242.1294 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2577 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [278.5936 538.7529 325.2582 549.6569] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a17d7f2a579835881a3b74c765ac612e1) >> >> endobj 2579 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.0378 470.6275 218.9181 481.5314] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 2580 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.3884 363.6478 423.9599 374.5517] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2581 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 363.6478 478.4757 374.5517] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2582 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.4888 339.7374 352.0603 350.6414] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2586 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [465.5922 170.7298 477.5472 183.2477] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2587 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.4293 157.3449 216.2509 169.6786] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2573 0 obj << /D [2571 0 R /XYZ 133.7684 692.1046 null] >> endobj 2412 0 obj << /D [2571 0 R /XYZ 243.6651 603.7455 null] >> endobj 2576 0 obj << /D [2571 0 R /XYZ 133.7684 597.1055 null] >> endobj 2413 0 obj << /D [2571 0 R /XYZ 368.5651 541.906 null] >> endobj 2578 0 obj << /D [2571 0 R /XYZ 133.7684 535.266 null] >> endobj 2414 0 obj << /D [2571 0 R /XYZ 368.3368 330.9354 null] >> endobj 2583 0 obj << /D [2571 0 R /XYZ 133.7684 324.2954 null] >> endobj 2415 0 obj << /D [2571 0 R /XYZ 423.8772 257.1407 null] >> endobj 2584 0 obj << /D [2571 0 R /XYZ 133.7684 250.5007 null] >> endobj 2585 0 obj << /D [2571 0 R /XYZ 133.7684 194.6051 null] >> endobj 1539 0 obj << /D [2571 0 R /XYZ 133.7684 147.98 null] >> endobj 2588 0 obj << /D [2571 0 R /XYZ 133.7684 143.4968 null] >> endobj 2570 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F11 844 0 R /F14 944 0 R /F73 1481 0 R /F58 909 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2592 0 obj << /Length 2774 /Filter /FlateDecode >> stream xÚåZëÛ6ÿ¾…?d f9|sÑ+ÐKš^{@q×lû¥í¯­ÝõÅk¥–7ÿþ†")S%¹Hr¸‚ÀZj8g~ó `Añ,€s¢• e*ÔbóxE÷øòÛ+D«–j•’ýåæê‹—B.,±Š©ÅÍ]ÊMe-n¶¿LËPJ‹çÏ¥”êëë—ßݼZ®˜Ä±ýº®ýãå]y\‚)ÊæÄ)ZQQX¾üíæû«onZ’u€hªÀ‰óûÕ/¿ÑÅ¥ÿþŠn\¼Ã?(kÙâñŠ œqdõêê-Ëäm35§¡5ÚÊŒ¤^Tƒâ]5HM—ü¬ ° ‹·K&Šj·Å­ èiæúúX®Ã›_©¤Ë•0¬ØT‡úäYñêtÜ–PÜû?ÿäTôÅKÍS1Œ$LZŽÂ»õ¶O?¬ViñÌ“w¤”P6PßVÕ>ÇSe˜ DNÆëÓúå~½D®÷^Þ?æ&± )Q_F‡ywë}]f¸3KŒÑQ„œ+fªT04J VJhH[Åè¢>m¯¯ß–›SuôóñL9p`&¬ðef븆÷’ï3l'¢¥új†Kîl4‘ŒA x].Aj¿œúÐv¬à‘~z‹J-¹èm1妉ÔÎí‘KbÔ`“>Q—ÎJñ?䌦9)6q¬ŠH©ãR»Ã)ÃdÅ4 9ã«ÈÏ¿ux!‹zWP}ÌdÕÇ4údÖ´}¥à¼‡Dp­ç€2!k‚±,Pâ^àÖݺ÷åÉÃà}Ê?Ý«GÿTã)í˾X h5î­eÔˆå^ï͉€-ý*0pÈ× ø×? àqÂöè饥š[–[¢¹µÝeÏJØîê×þÉå¾$NT;•Äj@`vøÄ„h¦Ý<ìœKi^ø_Q¼9VÎXÞî¶åÖ¿9Uþw½ßWK&‹waø¡ô3ÖÛ­óŽf°º ´8vB{[ï= j¥îrsÓ{zâÆ Ë£;! ü3ÕÒ¯Ò C ùº­7Áµ'º<¡Ôô%èǸH5³®ÀÒø²³luûOD¥ ¥»ºf£ Dç•?(†´áÐñáút|Úœ¼ëõŒ¿-‚u˜ƒø- Å1TLk±¥_¥2þ8à;¦E†0&ûôí=Rͬ‹1ã"ï.ëµH0ä3U|Ô˜×ÃüðKõÑÒÏÉ5àÃ} óûÆÜÆ2°Ózi©fÖçèÇÚb¦ÕYÿîéИIíõñ°^2—E¡G—~ä¶,2źñq½«Æ(¤"Ö*y©[ú™ ùŽºeL*'wN=g 9©¬ËÔLbQÏœ7ª¢~º­ËߟÊCã¨P„DŸËÓCž=”±ˆ„Püý¸{\?,•ô¼sø˜ŸhKÙyÕp‹ô«tBÆ |Ýn¾yÊ"®(aT÷eè`¤š[yÀͧ.*Ö‡íÞ³çK5éçäður<¯öO‡%¡sI+f4ÐRͬ,Й&gIµ×ûÝ~m(¼ÁpÀ”è<¦˜¥‹®­¯b|9†‡ÞóqÓ%"Ô¢d˜ ö{A‚ÓÐ¯Ò ù§Ëwñ1Æä´/Á à TsërŒ ÖêîºiàܼZËÇ ý­s¨‹¾Y—ñ•sÔtlÖaÂmöáXÌH¢“ ¯÷5¡%pè%ÔÍò˜`ùåúñWi7áE`•¡™˜‹¿‘~•NÈÀÖ€ïHº Æ@Á{ôÓðH5·,†9E¡»êÙÄ-¬CNþÎU¸ë0|¨ÂhЫ{ÿP¶šfX 0\óBµEòñ\G”Æ%#†ÊiE¢¹5±’g‹§q½+¥jÊr—Û•Û©»„G¢Av3õ¯Žpa|´áX{½º¡$è»?=æ8’ÓÃ1¤ì}‡ÕŒ€¶ˆ\Ì`cæRí–~•Nȸ“ý‡êÕÓæ!§u†´4¼'F_í‘jfqÎ,á xwñ¦qð~S¾I4äÒh§Ÿº,_û‘òx¬Žá-–‘›2*Ð÷X0Éì DÓ©¢Eµoá;=ÚÐ<èb¶F%ú(–Íf¥‘~•NÈavŸïhQj[E_€dª¹e…«E…î.L¾­@1?Š÷+Р­7ëãA»Éä][ºòõ°‹É,­£ÏDˆÙV›§GLÒÊ€/>‹ ðŽàx,ë7Õ!”¨é© ±”íbD>ËBŸ“0étã~²½Œ”x¢Û)´"BA·ÙɇÍNÌ GšøÆ7;%§mO§^€%¨msñË|@ë Úz ôT_¯Ë(ßÙC]˜nϵÎö[1úJʦû­+†0kœL·Ì4^GZ_RƒiưñÚ‘Ðj%.é ňT(÷tÿ+%›(S„`®ßÎçû_a Ž4M—C÷¥C›oÑl{HB{í!É|ú„oÒöô%Sð9‚@+k[8x†Éê€=¦8—Ó[¿\‹ªÀˆ’'§ß §˜jru™‹Ÿi'<œ[ê.IX×ÅEÆÅGï3‹.ÎøÙÅáDz^M»85ò—Fªi§gŠ—­K͸¸Ð­‹ûÝú4½Z+ú}°)pM¬±zòê€]xfêRfSêD›æ­:WX4絊E$žà¤V¹Ù»Éi•aIìzksUÒr;~QÅa /­«‰>ö¢JFUæà1FZ­U÷úêã^ ýë“®¡Ì°É+«„ÉÈIÆÎfÿóö|ýRO!yw ú®¯Fv‹*ã­‹~5Ǥ{wÕµ[E¨àê’ÈÈÚp9S²‰ÈÈ<”åŸ92> sß”›Ý݇6|í¼ä|+é9„<Ô‡«c¸psµðÓã-þý?cáÄXŽÑBr€‹‚lJ<e;JU/ÊÊa”•z,Êâ›eQùûTh‚“IÂØw‡­¯'sxƱüDž]ÃÔ8æJ=öq·-  æjÓ&±hk‚òϺSÒUNŸ v“OF° FQÎþ?ø´pË´%@åܦdp‹ …ûÄB¶¦aoØu 0kÏ3æZ ~•Nȵ@û|G[  K:Ó`Ð TsËtl…™`gÙ&8d‰Ý‡Ûþw1"Åþ¶Õàšß®¡ÊþÏ¢s÷T³ÆK¢@J<¨vŸ»ˆnPÙïèZÜ籺ê\]áàLu¥…KJíL5Ж ÓÕ€F»„ÏX "ìÖåúèZ@þæo´.˜Z+èâÿ»—X™hÍ'6ïn” ½ø1©!ô´Îy-“ÕÂÏK…°´ÊWœ®‰’ñ¹¾çxm$Gk#Ë>Eid@÷IΖÒrÚFÏZ=æ;2ÃX·ôþ$Qj £a’j´¹…­ŽÛ‰`Ü$4"{åC[óýèïÅS;¡@8K¿ˆw=n:V¥rÿ¶<”Çu{³ 雥eÅS¸ÜyQnüƒò?Œø'P×À®eøëÎ%KѼbVÐÍÙ^Tï?Ü—‡Ñ2 ûüO3üendstream endobj 2591 0 obj << /Type /Page /Contents 2592 0 R /Resources 2590 0 R /MediaBox [0 0 612 792] /Parent 2589 0 R /Annots [ 2594 0 R 2595 0 R 2596 0 R 2597 0 R 2598 0 R 2599 0 R 2600 0 R 2601 0 R 2602 0 R 2603 0 R 2604 0 R 2605 0 R 2609 0 R 2611 0 R ] >> endobj 2594 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [214.674 608.0644 238.2455 618.9683] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2595 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.5292 590.44 410.0048 601.3439] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2596 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.7465 578.4848 219.2221 589.3888] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2597 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [290.145 578.4848 315.9182 589.3888] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) >> >> endobj 2598 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 578.4848 478.4757 589.3888] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2599 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [323.794 566.5297 361.2035 577.4336] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 2600 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [381.4887 566.5297 415.5905 577.4336] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 2601 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [214.096 554.5745 236.5715 565.4784] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2602 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.5351 542.6193 190.1066 553.5233] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2603 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [330.2297 542.6193 353.8013 553.5233] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2604 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [271.1836 524.995 326.8546 535.8989] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU) >> >> endobj 2605 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.1488 513.0398 239.7203 523.9437] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2609 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [164.3036 255.7904 187.8752 266.6944] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2611 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.3602 158.0855 281.9317 168.9894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2593 0 obj << /D [2591 0 R /XYZ 133.7684 692.1046 null] >> endobj 2416 0 obj << /D [2591 0 R /XYZ 453.3768 498.5685 null] >> endobj 2606 0 obj << /D [2591 0 R /XYZ 133.7684 491.9285 null] >> endobj 2417 0 obj << /D [2591 0 R /XYZ 181.4191 412.8187 null] >> endobj 2607 0 obj << /D [2591 0 R /XYZ 133.7684 408.236 null] >> endobj 2418 0 obj << /D [2591 0 R /XYZ 181.4191 315.1138 null] >> endobj 2608 0 obj << /D [2591 0 R /XYZ 133.7684 310.5311 null] >> endobj 2419 0 obj << /D [2591 0 R /XYZ 181.4191 229.364 null] >> endobj 2610 0 obj << /D [2591 0 R /XYZ 133.7684 224.7813 null] >> endobj 2590 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2614 0 obj << /Length 2941 /Filter /FlateDecode >> stream xÚí[ëã¶ÿ¾…?23|Šä¢(p¹GzipIo7AÐ$´¶¼«Ö–K¾½í_ß!GJ–ì=¤mÈb?˜ár~3ÃѲ…?6cB9‹-'ŒÊx¶Ü^ÐÙ-t~yÁj¢EKµɾ¸¾øüT3KlÌãÙõ:ä¦HlŸ]¯~Œ¸$LÎŒR½|ù¥¼*//ß¼½¾š/¸‚¶MR–X|Ÿ®Óýœ™(Í—) Ñ1•‘•󟯿ºx}Ý.(˜‡Mcæ–óëÅ?ÓÙ VÿÕ%Â5»‡ %ÌZ>Û^ ƒcMËæâêâï-ˠ׃vÅA Ò¨˜1*AÜpfå\x•£q?=™r¢5‡RS(ÖÊTé™™ÆeZÓµdN¦ßιŒ’}²M+'0•G2Òœ(FÅ,d´%J­å >:~ ¢ ’X)'wí&%Vps¼í!=isw¡ÂGóÂÎìœk"ml‘+2u<ÏxLbRœ8ð¦wâ¬{Ýÿ÷i†ˆØÄÃÉB ¤D™8ž¾ù8;m›"cÄ*5\P= ã6¢ý À1ÈÃꬤÁMe¡öK ¼Ô¬¥rµL“ý\èh9g*ºûÛ\¨( =_X€e™…³üî{‡EYKe»wÞîópï6&’«xÖ’¹Í¿@T+«}–ßbùƒ“Cº¬Š=Ö‹5þþkÎ(H:î]±Ø¯jL¬Šš Hry‡åu3<Ëñ7Mš®»4Y$ „+5¬ÕÄ|nã÷nwÙkøxVðÞ9X"gŸpRéž8ˆŽÝ)‡˜šPqe‰¶zÖR«øÂ]=8u!µ³õÕpt߃bQ²9¤'t?˜þ ˆ¥Óþ¡X&´?”‹Ó~-;í‡rOûµBí÷í\Õ’ñõê®(S,N Nö5É>ýõíÓU=¶Àß»dμÁ–u3myXâ1Ñþ -Ó²$ó…f6zWT0J˜Ö’TMÉ7épM%vmeMtSs[s´ÕînAAÔüß®±1É=¬´bÀ¡«oJ·L´)ysñØFyê7 %Ü4õ³»úò.]â*‚»¦§ØïÓrWä+<hBdí®'¶¦›t›æò]&9¶Â#‚K·»êa«ˆLÙôZbŸ±·wL%™þ„£à`Ü»=z»Ø ×֥Ŕ{å\t&f-™»yyÁä¿Jªušs"„½ úf“8m¸Þpî“21ÿ]™˜3À{$“qàíÉä¦(6i’_ŠÀž³Úêö‡ô3,îA`XZØjOj=” & "§¾l|×þ¶¦y^¯†þÌ¢ùºEÿõÕwG ݪx¸€á­n¨ÎM ÷ŒK-ûÓfeãQòÕ$x=­ÛÑé1P3+žÁë^æxÅœPe&G1¼`³–Ì]¾»ÕáQaÈûIÓpÏàîùÅfS87ç¾V¼bWeEžl\ydjcőذD²&ìs^Í4#ÌÑÚ ÔjèÏìæ˜ïjiN´ÃŠþ†×¹¡:7­V„ÇLö§EŸÔÃv-ôáÒÕ0>^×ëÈ\0mˆÊô­$øÅÎ^6›‡GÁ⓺—ϰøäÌ”ÐDKOGÓ–ÇzÖ’¹KøÁ=èÒ¨T˜Ä€ïÓy";Ú톻ý¦ƒ?À7ŒV÷~ï¾!?lo@ÊEV n9ƒ`r—.³9‹\:!]9¿Ž ŒúJ‰^ÿpýýë÷WX‰¦§C¶§$å?ö[“DJeN¦Sš•b–fôT:¥¦S”‘ØJÑ¥¨ˆ·¼ÎS}pù•"sæ„›AÖêò²L«—Åv·[7õz.Mä_9íOTÑùBªŒtå®ÖçoÀÊu à0¯5Ô] ÿä|®ç1õ «î¶5atþ-ê‡ÒfWº¿KsìKVèè¸Öl›ÜÖ¤^7?Vi}v#ÞÈÀ'VÝŠO{;-ý"p,‰c¾>Šv9Ë#´Ðˆ†+@KufÞîbMbÁ$‹›¦Ëê¨7D k€û+©Tçò‘òQùH)95æÛNä#[²OÌG†ìÏå#å#ò‘žMHêONHêç„ä'ûW HŠo4†.› ÖGaÀ%A”1vúÍÌ‚îÍZ²sµl0wÔÅ ? ·NÖцǬކ_öû4¯\P#©‰„û±Qù°½)6Ù—·U’W%vúä‚k_¥ÎöåÀ]ÕEž®‰1+°Ù\ž©óËÖÚÇ ¡á2î Gy9_hÊ¢/ÿñöÛ_øsÒªèýÛ—¯ë  K¾Â1ß~ýö›_øƒÆêè*M±µ6Ã\A°NË[˃{ÕO*´]Ðä—.`ÛÂíÙ5e94nšä¦8TX„yÊt‹‡ÅH££Ñ¤Êë Ñ›:ë}÷Ý×_cÉÏë x º¾å>Ûl°Tö9–е{5XwCZ92p‹½p|Or(k.9LÀéø¢¶àqn>ý†: ÄÏÒšz’_Ç!Ï)#ÊAŸøbýɇ¶¡&:7§ˆ!´ƒY½‹1ȨûdüÞÃ!‚Ç1<-,è ¨ mÜâçXàØÛ1'B„•ÑX@Hé<Š~(` ¼+²2ý"sÈù˜À9B ¦­}ú¼}ìýCüÉ 8AðþxUÆÿi÷?$;á} ÎIL•ôó^¥U÷Úè ¨ºªß ª»ÖôUtþ½žyçß3hð«yꆢÀÍo»"Ë›×:¯´¤0p‰¹ÄE]ûXÄ¢§kÈ'‡M… aÑ=ºféÏJG¯Òå>Mpf×_5Œzã,æ¯á7Øœ«"4»R[˜³¨˜3ÙfÙ{ ‹y÷¢‘l6£Ö)ÄqÿGy'Þe–æË:7îz’á!`¤´ƒH)í?oŠN®hÓðK¡Ö¦‘É[Ä]žÇ(û(å ‰O(×”XfÚe«]×Ù&}•mÛ€°¯bÞkÁƲZ]^~À+¼*±Ðä’ΫuéÏ#ÚxlZ‚MÌ€ \AC …D9ÇåO#ú¯‰P¼ ÿ+ØÝUöo'Œ(…áñ1Àc¥ù¹€ìp𜠣fVá‰w¯%p+››×Üû»¬ùL­%¬cÿî-ß1wJð![5À±:tÐ*3sªÀ` ýßù@èàâ3ñpCõ‰ápÀüùëÜç÷~ÓÇ{œZ§½SÙ ­µ³†*ÀŸ_ä<ŸÒyíŽGÁáV_€U¢÷ ž«{;/x´IóÛêÛÞá—*ÉrtDóþ ´NjØäpÐà xJÕŸµEÍÁ;ð XX6<’|, C<”¦Éx@}×ÖC[¨c»í5 m>Ó)Ñïq¿Én·É<ºÅgØZ´Ñ!÷;¦QÆ\”pn¨V;@\àë®Ã9ã[ÿ@àZl,áRaÉ :VwÙG'1ÁPbeÝ^bPÝ$þÿ@n(\»—[]ý¯•[`ÛÒmã³Q?ªÚ'ã– ÷†‹°YðªNäž”Êü!¿ô“ú #ÝGp1 ÓòŒ»Ã¤ i[pÍû±׬ø@ÿMZd›á—µµ«šÂÅUÍ­q‰ û>sP㧯Ôß½øáíCªØÄðç#6Öµ´Z‚ ­¢ÃnOŠÁ5´~LG \ Îë´Óä®6¸÷šŽº!´Í~þæ× ZF<ü‡´\azçk,l‰†àË4‡€¬jœË&ôºž[jq@”ˆ…8e K,¾düRÕ5®5›4ÑK uàöªøøp›æ“y£fiÀþà‡2endstream endobj 2613 0 obj << /Type /Page /Contents 2614 0 R /Resources 2612 0 R /MediaBox [0 0 612 792] /Parent 2589 0 R /Annots [ 2617 0 R 2618 0 R 2620 0 R 2622 0 R ] >> endobj 2617 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [309.1815 581.7845 332.753 595.7322] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2618 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [350.192 558.9054 373.7635 571.4233] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2620 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 476.4337 478.4757 487.3377] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2622 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [212.8637 376.1854 235.3392 388.5191] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2615 0 obj << /D [2613 0 R /XYZ 133.7684 692.1046 null] >> endobj 2616 0 obj << /D [2613 0 R /XYZ 133.7684 667.6624 null] >> endobj 2443 0 obj << /D [2613 0 R /XYZ 133.7684 523.8019 null] >> endobj 2619 0 obj << /D [2613 0 R /XYZ 133.7684 519.3187 null] >> endobj 2621 0 obj << /D [2613 0 R /XYZ 133.7684 449.3111 null] >> endobj 2444 0 obj << /D [2613 0 R /XYZ 133.7684 366.8205 null] >> endobj 2623 0 obj << /D [2613 0 R /XYZ 133.7684 362.3373 null] >> endobj 2445 0 obj << /D [2613 0 R /XYZ 399.9974 293.0259 null] >> endobj 2624 0 obj << /D [2613 0 R /XYZ 133.7684 286.3859 null] >> endobj 2625 0 obj << /D [2613 0 R /XYZ 133.7684 230.4903 null] >> endobj 1951 0 obj << /D [2613 0 R /XYZ 280.1978 130.3753 null] >> endobj 2626 0 obj << /D [2613 0 R /XYZ 133.7684 123.7353 null] >> endobj 2612 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F73 1481 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2630 0 obj << /Length 1658 /Filter /FlateDecode >> stream xÚµX[‹Û8~ϯ]( lTÝe…í>ìL»´Pضykûà8JbHì©ítfþý]ìØ‰,ËÀD—#ûwŽL¦þÈ”0†”ŒøTjŠærš'xºƒÍ¿'$-ªE›ì¯ÕäÍ{.¦iIåtµmß&Ô„NW›o3ÊóÁÏîî¾cL«r¹|ÿaõu¹¼‹³ê®˜“hfâÊÌTÍ!.K?üb¶Æïf ì¢E4ÓbþcõqònÕØâKÂ’Xñ~N¾ýÀÓ hóq‚Ó‘˜>Â#¢5'ŒÃ!BH½r˜||n®líº£}fáJ!®´è1‹PÓÌ"Y×,B!ÊkÌÂCÛ¬óüjÓèÊJ¿L±ÎKó)ßOð 8¶#bÍ,£¶'”FR* ‚Z^ßÒìfæ÷ùB£²Š«4ù1lE!ãÑX(œ©œÊ”öFˆP91 SŠÌ»öלˆ™×Ë/”¦ªÒlç'Û¼ðƒCº.ââÙÊ ,ˆB’rînû°õ$Uq²šÙa|8øÁÑ”e¼3!Œª}\‚"p+ÌC^Tfãgëgÿk¬PO‰y¨Ò<+/Ž<iÖœ¨ò uµY.Ss!f¨+¦÷ójÎoòät4™5~ž]¨YíÓÀ.9Gÿãœû0Ù™ÌqÃ[äÇú¨©/;ò9³ÇÆŒ6Œ¦\ºZ(Žh4šöm²g Q,£ómVïï”^'ª`€ Lð­©FùFH*Ñek3퇖1Æè˜Â-²[ ×dã ßä{Vx„oP¸ÍÖ)œ<= «Ì%`cŽ5¢Âr·?ýŠ·ˆk$#)¡»y-¨ø’/øîÚBxÃÀ}®¶ O%Ò\¹ëLu‹¦Hi鱨Ú>YB*6)é’.=œê´¯3=)Î%*3îh;Éz@ø~K³äpÚJ(-gJð¿Ò hýGÏ] )Žu 8ÇøÅ=¶àr ûÓStŒ±ÐP³l¥êBi¶7EZÅ®Ê:¬Jã]/PjعÃÃEJhŸ¡¾"¡µË7HªÛD—Äéˆ0Íô§ aJü^kèê~}",¼ùp„s÷9T÷éçVô‰D„!é‚uz´äH(ü²äaŠ JøH 0Ö>wþ9­! iâsâ“9®MáÇïOYâëÐmÝMrS r >’8Œa¤é(°7d£8×¾ð–ýJ± [_:hèQnT8OÖ‘­7RÌ×àŠ[.ªæ PFê Ë@[–€ÃB³ñµ*šJüÚfTèRB£g»‡ô Á[9‡ÒÔÝ\×´Àað6±D¹ï)Š8àPCfµzW7DóÃt–Tì衘3p‹ O¶Õb˜ùnÄn–Nùå|Á Ÿ½²xá×ßA«ÄÅ,/Ü–°Ëò*\í/t0kçYÝø•¿m,YªÀæÁ$©¥KšÞ ÌéåDwm 5îÎþsÝÌ&A@Aãü¢ToßÈuj-J9×IDB¥¼7”×ÏA²ß›2)RoæA•=Ö˜·ÉnTCÊ#x½üŰ_D8¢/³q‹ø–!øiÄXËÆ´îFl2'²Ö̯kw–ï;­ù ðÀˆ5„¸):•QͰ†g%F4#ðœÕŒÓ¶fMüÜ(ÆW]—/r!g5<ÁbOÎ.®UP¬%ePÍ0©»’c øå“¶°ˆ¸VÈAÛõUÐkÉë¾Ä£žgü¶§×ÖRDQ}åÖcc0’V€[¸†^2è8ÁåQ4öÊi“ÝH"5ä´¼GAjp=0ºgnéw=8 GAXްàè€Ñ.7Àh¯ ¾´ã…EXr X_} ˆDBÐ3 î ê{O¯üTËî3Ø.Ù7¥{ZÃæÚø•fÀzºõ¿þ= §Òu2°W•9>Te8˜ûÕGè8M8“û­ØOм2‰ëÂt“ÆöÙ…;šyp=ó`Ôó°¿á¨´—Û¥®ì¤1¦{6WûpzŽ”ñ1lfÍ(,âÌÓxc¥¥ÿxÑwi~ªüÄùfû¼ T@&¹î˜ZÛÿüm«ò^’´ý5 Å¢NÀ×RY3ÿÝý QŠÕ\ÓÙ)„{“øô?"Ĉ\º¤®.Ôy³ó¶è~¹ÏŸžwæ ’›/o=ûÝ~Ù³endstream endobj 2629 0 obj << /Type /Page /Contents 2630 0 R /Resources 2628 0 R /MediaBox [0 0 612 792] /Parent 2589 0 R /Annots [ 2633 0 R ] >> endobj 2627 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./structCCfits_1_1FITS_1_1CantCreate.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2636 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 256.41000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2637 0 R >>/Font << /R8 2638 0 R >> >> /Length 2639 0 R /Filter /FlateDecode >> stream xœ•PÁNÃ0 ½û+|&qœ&éqÕ@aù©j§"º±­ûü¹[Uâ‚¢ÄÊ{Ï//Þ£!‹f\S­{x| ¸9‚ÁgÝ؃½p*u‹¬¢ˆ"”Š ˜[¸6[´‘‚óŒ\;“0÷pWUm7Ëòé%¯Ê²Zo‡êЬ‡æ>¿Ã2Ã+¸@8â—Út0yc I$Þá¡ÕÿRxGÑ»„6d™ç)ô\žêæsèvÛŸÚ%)R²<}ùS!ý ×_¯Ö²ø¡ÊðÍO¾¿üŒ¼×1éМZV ‹8 é™{´ö w]yendstream endobj 2636 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161255) /ModDate (D:20111206161255) >> endobj 2637 0 obj << /Type /ExtGState /OPM 1 >> endobj 2638 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2639 0 obj 233 endobj 2633 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 327.7716 204.4925 338.6755] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITS_1_1CantCreate_a9c7e9923d86095cb065ba3be679edc44) >> >> endobj 2631 0 obj << /D [2629 0 R /XYZ 133.7684 692.1046 null] >> endobj 1327 0 obj << /D [2629 0 R /XYZ 133.7684 553.2635 null] >> endobj 398 0 obj << /D [2629 0 R /XYZ 133.7684 546.6633 null] >> endobj 2632 0 obj << /D [2629 0 R /XYZ 133.7684 346.7753 null] >> endobj 402 0 obj << /D [2629 0 R /XYZ 133.7684 288.6179 null] >> endobj 406 0 obj << /D [2629 0 R /XYZ 133.7684 233.8082 null] >> endobj 2634 0 obj << /D [2629 0 R /XYZ 133.7684 209.3928 null] >> endobj 2635 0 obj << /D [2629 0 R /XYZ 133.7684 209.3928 null] >> endobj 2628 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F58 909 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F73 1481 0 R >> /XObject << /Im13 2627 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2643 0 obj << /Length 1987 /Filter /FlateDecode >> stream xÚíYmoã6þž_¡ë­ Ô,ß_‚ëw›Ýb ×îæÛv?8²â°­TRšì¿¿’’iK²¶è]QàbŠ g†3ÏÌP,£ðÇ2&1ÚÊL;N•:+öW4ÛÀâwW,-{ªeJöÏÛ«oÞH•9â4×Ùí}ÊMíÏn×r. Ó‹%£”æ¯^ýL)o›ëë7ooß__¿ZÚ=–‡Å’+XÝ­š& ß•÷e½`6/E /séDîôâãí÷W¯o{Ñ’1T3ì—«i¶=¾¿¢D8«²gx „9dzý•ðc¬›Ù]½¿ú©g™¬úWÇ "!Ò85bÎG ¢ áB oía³X ¦ójÁTþ+þ+ëçzÛ–aúÃÄü¶Á_“7e±E;–ë°p÷)ü®Öëžwûß*VõªhÁšþñ«¿|µX*êò»ò¾ªË3bäº+«}ù5š´]2FœRÌK~_ívÕ‚«üÙïƒå_ÅANv[ÅÇê°4jqh·Õá#œ·ÄXÃ2M9¡J°1c ‚§À,¡œ O@¸Bü9qRNŒá0Òœj”ìÏD™Ì™hÎ$Òõd¨Ù .s0Ô¾DK1–7a 'ŠQ‘¥ìžÁ5¡ÔY'xOß¼#DGWDIf¦$lO³}7äpJè§Åv#€Š˜'°ÔT0˜ÄWYŠFº˜¬§BWÝ7›o )Ç\–²»¨¦ýϪ9áo –sTލy “NÉ•>Õó$FÑ®Àgž¯·«Í¡jÚmÖ÷eÓ¬6€Wðd#Á4bXx¡º3ýR¹°Ø>¬Ú0û¼`4_5qº “wñ•¢.—§€rÛª-×XƒÌÑ«ùŸì4Ž¡TNRñÿø?9 A”Õê7œDç£'á¹é™èWXp«'¢_¢´eYO†.×l!A·“²¼¤¨þ#íã èxüŸ(º½Fý䣆õöІa ûððüPBt×çFb‰hêÌ©QüR½‰4ïRgéègäòEyCE˶»ª)¨Öå@$¹ŸZ}&Ò¹×vT3‚HêOHœ.ÖÐMmUÕá÷PµÓ`õgrœcÔÆ:詤–V¢óAwá¤P3=…R‚H%C"ºíÊðuU<í VXr‡©ûîüÛ‡Î5Šc§uÌ{ð°)eI-¾YWû³2¤ù´¹žlΔՄq3ÍeJ6¢·‚Ò—j{ä†zÿ̹ì †ÑN˜™};ªÙ}-ÑFn‹±N¦ÆêŸÎ5Ó Õ%u#Õ¼¶—6=*{yÓ¨k²§Wµxy™V– b‘÷¥Þ¬×9!îz3F‰QîÔ¹¥•D-Ë ·ý  ß•÷ Hì/¦d—ÚwÆæN*%»‘RCg壺}¨CœÄ(ì£ÑÇÛv÷TLjjcÇ\õ÷ %æ—-Ô¸§!†j€Ål²7õŸæ2\-üu{(vOëHÉÒj<À8‹ðŒ„á9GR Ž~ÆG(e’Šd'öXBö’x'E ‡øözÛ®ü}ŽG*(ä¡á>è©óF þã¨mµtØÔrô{_ÇO àœšqËd€çìtb8sãÓ±OǬè'¾y»‡7o*€ûì§Äƒ˜#TKE댈Hý5eüóH qÉØÔåF¤ÐëC²1árãéBaç;&ˆŒÊý^áøÍÓ¡ÀLÑLš9)nØ„ìܧø9hç2¨a|ëz²Y°KŽžcŸf'«½ìf… d'²õ¨3(ÃáÀàå[öT3[sÊ çv¡Špb±¸{ßÖ=L|‰1k廪ÚÅ:Ðw ßb ﲡM!~TéÜ@»*õh÷È4Ðh5Q»`§b}G“òè:ïž2ÜgpbL[¡B¯_Šò1”+‚ò¼h pôX/@8ÂK‰—Ÿ4vñ¸Øx½¯KÉdþ‚E˜]× © æõK êÞÈ:0\µ‘Gw€ã/-ê©â6Ç뇮ÿs)êß…  oðŸÇm2I\:"eL6sqž_ˆs­¨=æIÂb¦¼)[H3¾”ƒ@¿)›¢Þ3O ( „š æ„ìB6äÔA™ùofÃQ5˜„ Î?ËÎ)ñ;3¨ÉÁ‰ubgÞU$‹õSp[4õ—½ÅO¦oN*óIáñÓ‚³vn51\ÚÏÓÌ@]eäœb€¨‚A>Oë]h2Ÿ•]ImJç0ÁdLÞ$¾L0"sÕ’è €.H_ÇÊ$•’ S®£ôÈ6äÇð¶Dv…I¼&ñ»;Rìp ¶ÖDjÄÆ±}¡ó ð²ésSŒíæaJv!v„§CxT¬ƒG…ð Ñß84a5À# zxTLôðóqº‡Fd[GX„q‹*À"Lõ_‹õ“+Ñx13 ƒ`AK7îàÝצßý/µ9¤QÁÓO–Ì ¤ÕÔâT¨Âw§]p‡U· Çó§ˆS7e:ü@®faÄô5ã׊uÇU~^ÜÆ ý)²ª^>m†µDÿ‘qÄ`ÿ9¯ˆendstream endobj 2642 0 obj << /Type /Page /Contents 2643 0 R /Resources 2641 0 R /MediaBox [0 0 612 792] /Parent 2589 0 R /Annots [ 2646 0 R 2648 0 R ] >> endobj 2640 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1FITS_1_1CantOpen.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2651 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 268.46000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2652 0 R >>/Font << /R8 2653 0 R >> >> /Length 2654 0 R /Filter /FlateDecode >> stream xœ•PËNÃ0¼ïWì8,^Ûkor$j'õ (©R‘ÒG$ø|œ6(Dœe¯<3;;ö 1šqMµîáþ5âö óÞÂø"À©Ô=>¤,RôT¥ÀÔµ™‘ çm$'˜z¸©ª¶Îe¹~J›²¬ÞöÃó¡Ùߦ¬¼€+ÈDø™-:MăQ™¼ÃS›ÿðB^ƒCVGÁ…e„|®¾êæ0ts‚Ü%Á’†¿“/¯Íá¬ÌT½1GKìñ= À?¹ÎüŒ¼(…ü[Þ’˜%Ö{&WüF–í]Žú •1[¯endstream endobj 2651 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161256) /ModDate (D:20111206161256) >> endobj 2652 0 obj << /Type /ExtGState /OPM 1 >> endobj 2653 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2654 0 obj 229 endobj 2646 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 577.3457 398.7049 591.2934] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2648 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 287.4182 200.0694 298.3221] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1CantOpen_ac51f3d69a93cfbf1e14990e314d92df9) >> >> endobj 2644 0 obj << /D [2642 0 R /XYZ 133.7684 692.1046 null] >> endobj 2645 0 obj << /D [2642 0 R /XYZ 133.7684 626.9597 null] >> endobj 1328 0 obj << /D [2642 0 R /XYZ 133.7684 512.4145 null] >> endobj 410 0 obj << /D [2642 0 R /XYZ 133.7684 503.8937 null] >> endobj 2647 0 obj << /D [2642 0 R /XYZ 133.7684 305.8024 null] >> endobj 414 0 obj << /D [2642 0 R /XYZ 133.7684 249.4416 null] >> endobj 418 0 obj << /D [2642 0 R /XYZ 133.7684 193.1322 null] >> endobj 2649 0 obj << /D [2642 0 R /XYZ 133.7684 170.7741 null] >> endobj 2650 0 obj << /D [2642 0 R /XYZ 133.7684 170.7741 null] >> endobj 2641 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F58 909 0 R /F11 844 0 R /F73 1481 0 R >> /XObject << /Im14 2640 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2658 0 obj << /Length 2148 /Filter /FlateDecode >> stream xÚíY[ã¶~÷¯R ˜Ë»ÈAS ÝÙM6@Šdwú”äA£¡Çlk"É™ÙßËdJ–¬)Z,°¢©£s!ÏùÎeH‚áIc(“Š'RSD0—IqXáä^~³"hÓSmb²Ü­Þ¼ç"ÑHK*“»mÌM © Mî~J)G$[oÆ8}ûögŒiÛÜܼÿp÷éææŸÕ§S±ûöö_ë ðzŸ7_~4[S¯‰Jͱ0ð5aЦ:[ÿr÷ÝêÝ]¯[$’  Kb5ûuõÓ/8yC¾[aÄ´É3üÀˆhM“ÊqøˆÒíìWŸV?ö,£·îÓ©áY†x¦ÅĉP:y""C” æNänWZ+e–š5éKažÚ²:ú­çr¿÷«{ãŸí®®ÖT¤Ï¢Üúç©1uà“·­9<µ¾²O™VOpnVD>̱ԲiËã£ß±·²â¶U4©Ë6ìåEaàfàðÁ~¸ ¤… Î' îëyW;¿lwNÀgÿë!«Ö/vùšâô7KbüΓ©eÓÀ|å7œö¹õÏ¢:ÕM .·g)nÑëî„™f$®7]øU(SI$¦ F¦®š!ëD!L)sˆ Kcƒ¡(Ë(¬$Åg‚÷!²DGHæ="ÐõdöXSžæu~0­õz’6Êf ‚Y³¿ðK*ÆZ:‘Âáœ3ð]‘æ|Öj+iFÕ¥ÙcznN-@Ä_\ÈËXN!v´Ôž«gjy.G­D’À)ÎDm÷vRöèõ.v£“JŽ…w„6¨œdóøåÅãäÐ-)Ü’õˆ¡F჈Ýž$K¸Ä`)‹|•Äè•`·Ù“Y_}(ó5Áéã…‡ Mt3½j¬ú}ñ:PKkÌ'ŒBµ–ˆS!‡Æþ@$ciódŠÒMaS{Ç ´ðù£±ð•©M°}„€ö8$ƒþUZð²Ýå­ß}¶'›7a»ò›÷á“¢6›!û›·æáÜ ;A Kú'»s@•æ˜ýWÁPRü7Ñ9ÂäM8nr„TÉ R‘¤'³.×”{slg fyÍPùGÚÇÿ…¡Óñ?0´¯6ê“ ÅÉS]Cm¾«€ Dw=>)Qb ŽªÍÇØY:ú}/ùZ}}Yí‹«ú¾jÌ÷Õƒ¹PIC€•©4öÚŽjAŽÝ ±ÑÁ…:¬1í°¦ƒÂl¬þLŽsŽÚP ý WÀRqë|ÐáhÎÄB_#GØÂˆïkú2¼8 òÐÖÀÖ¶»ÿv×¹FqîöÎy~<š£©mR _ÖÕaTòo«ýÞ·D¾ƒé»€æf¶A„úqŽÕB‡“MØ- ÆR¹Y»¦T\È Z`–-Èí¨å*$31kcíæ &?KGd× îÈ– ¾*÷lð‚Ü`p,Ö\¼¼Ì›Œ¢T‹«}ZoxDÜõi£Lè¡‹s% _¢äuÃŒu–†yUý<–Í^™Ú3æô·¢™nD#Íc²+±É%rÃƃMÑX~ßëEm§(©î9]Ï\=ù&¢¿Ôï‚«ÕÏÙX:Óˆq2’>nx;¢™œ Å`ˬM[—ÆÁoö¿|ß%õvW=4.IS¨ˆ Ü;ôÕ’S×èJÊ}“ð—òXìO>ϾyOâò Ü=ÓÊæ#Kø× žpë@pé&Ô…"ýÍS LÜ@ºævTó6~8BIR¶¹¢9h†Î¥Î#PžËÍã)‡vžkL§®…`±séFS‰9dWÂ}BJ~µË¦îe¼v ÿ\¸7 ·$¸äÇ(RD)&pKîx&›`Ûö@^Ç”¿ ,¯f”Î uÉ gŸ8ÝCÈï]ð½9Ü›Ú¯ßŸŽ…Äföx-'J›ÑZfl((Ô¾L-A{Gµˆì»ÉK쫊Yˆè`}I3O+vž_€ &®i·é‰® ¦pèŠs2<,pWêØO]Ññ¥¦ÐÜWUß}m[ø–\'W‚†„f Á O¢=‘@#ÅL™f›2åš·˜G×¼9¿ä~€CÁ€ŸžÌôfiÑVväHR0„ƒo>Õk™Ê‹¦ZWyÙE¬gš¦_X¬ðÛïêzÍÔø7ëÐ"}›ÝÖ¾óìòÿËåF»(žË™‰/án¾ègpNBùÒòÞX¬²ŒF¥à`2Óµd~>EÂðÍPN)E^1ñ Ìþí#Œ\¹€H(nM›ƒoK¸iSãI<0ƒåMºËv ™Âe ªuŸ%ì~í2„]…«Õ.CØg÷±:g·ïr‚™šˆ_Ïf>Ž•¶ÆëéXèþîù_ÿ‰9¾ èCã¿§CæÏ˜ÜI§•µí›át¤Ãï»5äÒS0ûÖ{¥PLˆ_yCè¿¶ãÆ=@ÿžUõòùÑ/'váàöod’øendstream endobj 2657 0 obj << /Type /Page /Contents 2658 0 R /Resources 2656 0 R /MediaBox [0 0 612 792] /Parent 2589 0 R /Annots [ 2661 0 R 2662 0 R 2664 0 R 2665 0 R ] >> endobj 2655 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1FITS_1_1NoSuchHDU.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2668 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 245.40000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2669 0 R >>/Font << /R8 2670 0 R >> >> /Length 2671 0 R /Filter /FlateDecode >> stream xœ•PÉNÃP ¼û+|æÙoÏ‘R– Riø‚ˆ.ˆPªÁçãפ¥½TQâEãÉ̬Ñ£)O_›®Ÿ#Î7`ð^ß9¬wìKÓâM­ „Ž)²KXÏ ;fäH6æˆâÈZ°náb4š-·›ªº{¬§Uõ´š~5‹‡Û—Ëú Æ5LÀ:ŠA,~+ËÖ¸çêå”Ò‚7¦4ï]²'q¢ã°/€¸$AW*ÂRÑÂ'çù‰Œ“€”"ÉЇ~Ç?Íëçv¹ú8¸8¡›m6äò^ý~ì=ˆIž¢Ýé>îÿ`êÄr¦ E†%•Ñ9)!'f ìßOÅ¥Ó¬N(%ÜÅpò¤ÃÄÃÉAC9¬  ±CÏ䜂ĹHÉ69SÎGD³+ éðÆ€Êendstream endobj 2668 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161256) /ModDate (D:20111206161256) >> endobj 2669 0 obj << /Type /ExtGState /OPM 1 >> endobj 2670 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2671 0 obj 290 endobj 2661 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 577.3457 398.7049 591.2934] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2662 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.7667 458.2099 240.3382 469.1138] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2664 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 289.2319 213.3497 300.1358] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1NoSuchHDU_a31041cf0343276271be5093265cb0694) >> >> endobj 2665 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.7667 208.1952 240.3382 219.0991] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2659 0 obj << /D [2657 0 R /XYZ 133.7684 692.1046 null] >> endobj 2660 0 obj << /D [2657 0 R /XYZ 133.7684 626.9597 null] >> endobj 1329 0 obj << /D [2657 0 R /XYZ 133.7684 514.1302 null] >> endobj 422 0 obj << /D [2657 0 R /XYZ 133.7684 505.2295 null] >> endobj 2663 0 obj << /D [2657 0 R /XYZ 133.7684 307.4935 null] >> endobj 426 0 obj << /D [2657 0 R /XYZ 133.7684 251.4881 null] >> endobj 430 0 obj << /D [2657 0 R /XYZ 133.7684 195.289 null] >> endobj 2666 0 obj << /D [2657 0 R /XYZ 133.7684 172.9309 null] >> endobj 2667 0 obj << /D [2657 0 R /XYZ 133.7684 172.9309 null] >> endobj 2656 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F58 909 0 R /F11 844 0 R /F73 1481 0 R >> /XObject << /Im15 2655 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2675 0 obj << /Length 1777 /Filter /FlateDecode >> stream xÚíY[ÓF~ϯ°¨„‰ s¿Dm¥–-eó=gÆ5èJÁ8Ü ø¡ÏQ1ä>'aJYE€¨p4îѲ4EJQXI‰a¥Ici¡ ––Ì[:Ð5dÎÒoÇ”§ó|¾µ¥³I‹)ŠÁ,‰?Q‰J„±Ñ N$ðIP(0 °àÈpÞ«µcŠ £úTí.=kSfñ'|AsšS…¸‘ÆŸêug;\"IÀŠ=¯w{|ÝÚþÛÙN4bRË.óšƒuœ¨þÐ÷ìq²­—¼ä"¢-Qø :î *@bKð$¤„ÀQ¬’CÀ› ™‹ÕÛõ|Lpº<‰P@aˆIâC¿eA,c0?£,¥±²F"N…l+ûÓxµJ‹½]¬.üo°Ár—å:üÞÚ¢˜/í“ñDp™ŠÃ|³ùì·Ê•õ‹d·_ew-;&"}(í®@uv­lD‹q¿Ê ë!5·ó€³÷Î ó€´ó²´Û=`0êú…+PRKúùå˜@bÑÿñ å †„–ò+<áã…ž÷Äñ´Kh@)’Œ°4 …§!s‘Y¬7vWöcAtä?®è ºŠö A¬èúÎ'Z™\ž»å>_ƒêÕ2@HÌ•…ÔλFaP%6ªm”j+_šwq°ÔôòžžëäõmÚYl~ðñ&»µ'"è°–‘ºQ[S Âqå!Ö1\@¨Â[e¹î²òX}CsÌÚÐýŠk8Rs|ÐKBé =ÉR÷îî ã'‡ç »wÓAÈ™Ì?oB‚”«<S‘Þ‡ý›ÏþyWU4@”Û:dìï!fêq£hÊ#=…îÕ±›­ÂÁ·Ùâ°<šyßÕáV®êH\”V ]ÚãRs¿Ë³mý©­Ûl¼äëÝÒ¿r]ÁÆÓÞ¡Fp…4Çl`@‹ÉΘY@ç¥>žæôþ@©8á+L5L ð­©ù‚ó•h³uЂVý CAÑZ›!…#²K ×dà _ä{Tx€oP8f[)¼xxèW™‚´Ä‹b£xD\ˆ†:a:pª0´O_?‹¡L} SÝ ä°„| ýf^Íã}Úp£grÈ1Ù`àJ"&ÜKP#Î|xé³Ó-»âx‹à^3ª-S:-‹•ßrùZ=ëž×ÿt(ãž…ÝØEé×[øÀgtõià¿ÞºªÝê¸=‚µZòªLŸt¤_A>'¾[¯°O_¸q‚ÈSF»Jä¿?s”WŽM 8fWç&–B²=EËæ(ÔÜ]ò´ÐñÕš‘u9¯®`*”„é%Ÿo;øøE7<ý0Ç G˜Ÿ ­ ËDHwãÒ ¬.-‡KBUJ>¹êL´©ö¢eUó­@õâé«-‘ÉU5.9–¹‰»÷bî’'˜éŒx¸º  ³/Ê_Æ(Ò$ºJë\ð:s 1؇ÓÛà äÝÆÍ‹. ߨíÍýúÅa·h*ÛYÓV'aÜ';tJB >­ÔµäTиmÈá6>ð’/t¸5Ø çÉZ²¿€ìKGœÀ—„4TrÀL€ ]#aà¾ÐÝ^—yÓ<ÞË0+ÜdÙ&45ÕÄôƒ›#àSrj_Œ ƒ<¢ æ-}¾%' “¢§ws“š®&ºøŒz¢«B•ûûdÈÔu{7ÎÓE™¹I’>ñ¿÷ù˜AqXñ` ÿÎ÷G°(jå9K9ñ¯Ÿçù˜ hü§€ºXU¾søZ·i@ Ã@8¢šG~çÆ:ˆr<ÌjÀS‰P£ã+šf"óUð_ç¨7è ò?&¾ÿ:–=–oDB¿²eÝå\Ùb‘¯½É{Ì=è‹‘](É ‡•þח䳦"š!.˜ü"_ÆÄ|I¤@†jù’Ö͘KýüP¥IåÎÇW[¯¯Z£I¯ðÀHIÖƒô)Êu¿bŽÄT²žjkþå?¯ÄÄ1ݪr‘:)¦[Ô1É}ª¾lÏYõ¤6ºÐ£\ÙÇÒ?€ñ+"§„N©GF*Òn Óž*¯²‡Ï0Ú^5@³¤ŒhD‹Lö' ÜÓendstream endobj 2674 0 obj << /Type /Page /Contents 2675 0 R /Resources 2673 0 R /MediaBox [0 0 612 792] /Parent 2683 0 R /Annots [ 2678 0 R 2680 0 R ] >> endobj 2672 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1FITS_1_1OperationNotSupported.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2684 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 177.78000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2685 0 R >>/Font << /R8 2686 0 R >> >> /Length 2687 0 R /Filter /FlateDecode >> stream xœ•PËNÃ0¼ïWì8,~dc;Gª‚¸€Jý¨4mPCÒ6>;qªTôREÉîÚ³“™Ù£ ‰">©®j¸3¸9‚À§ðn`²`*«|YÔ‚ŒÍÑ—0ìJ”Ь2¥!ÇV¡¯áf6+«îXÏ~Y¯íúðÞUÍ×KÓ-¿Û¶9të[ÿ s PL93þ ö8Ò&a±ÔÀBÄf74,5 gÃxÞGÀ2kdÐô8ŠzjXââ:G’ÉÈ,8ÄéÌQøÎWë6ú9y¸ [ •“µ§)¬é^ó´1[Ð6Säb¶‚£—ÁÃtŒêßÿOrI£ÉåÂ>€‹+æ´r’7¦'ñ^[ H§tëT–Kb5=9ã(ïB2×Hƒfendstream endobj 2684 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161256) /ModDate (D:20111206161256) >> endobj 2685 0 obj << /Type /ExtGState /OPM 1 >> endobj 2686 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2687 0 obj 294 endobj 2678 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 618.0485 398.7049 631.9962] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 289.3722 255.4114 300.2761] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_1_1OperationNotSupported_ac22e7f9c90baefeaae301e82c7f6c95f) >> >> endobj 2676 0 obj << /D [2674 0 R /XYZ 133.7684 692.1046 null] >> endobj 2677 0 obj << /D [2674 0 R /XYZ 133.7684 667.6624 null] >> endobj 1126 0 obj << /D [2674 0 R /XYZ 133.7684 526.8193 null] >> endobj 434 0 obj << /D [2674 0 R /XYZ 133.7684 520.2191 null] >> endobj 2679 0 obj << /D [2674 0 R /XYZ 133.7684 308.3759 null] >> endobj 438 0 obj << /D [2674 0 R /XYZ 133.7684 250.2185 null] >> endobj 442 0 obj << /D [2674 0 R /XYZ 133.7684 183.4536 null] >> endobj 2681 0 obj << /D [2674 0 R /XYZ 133.7684 159.0382 null] >> endobj 2682 0 obj << /D [2674 0 R /XYZ 133.7684 159.0382 null] >> endobj 2673 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im16 2672 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2691 0 obj << /Length 1946 /Filter /FlateDecode >> stream xÚíYmã4þÞ_„Réê³Çï {‡‰·»ý|èv½ÝJm³$-·ðëÇNê´IS é8 ´ÒÖ‰'žÏ<3c³ŒâËçD+#2e0*T¶ÜNh¶ÂÉo',ÍZªYJöõíäåk!3K¬•Ý>¤«I¢,ƒìöþ—av:c”Òü›o~¥öÕ|þz½¯^•å”™¼(§38¹YTU¾u®žs»¥Ão¥æ2·vúÛíw“W·­d CF4UÌËõûä—ßhvj|7¡„[#³÷ø@Q ÙvÂ~ÄkÞl&ï&?·K&³õ§}öZ¡­ì±‡Ô™A{(Þµ‡Ô¸ä­= ÁïÎmòæöÝ|þã“+ûu±û¡Ø¿;<=yó0•ïÝý¥9´çù¯TÒéL(/‹]µ/ßíËõnåÇ"ÿÌ›ðåkÍ19Pb˜¨œ—o[­^ªŽ230 Wý+%«©ïŠbÓ³&ÓD*tްdµÞ¸—LþE\Û$ŽHmŒŽÔûòàz@"k‰D¨)vÜDnÁŒysBVï@¯7'Lû—È÷ÕóÒ=ù˜Î8Uùr[ hþæO¥ó›ùa±ï]xxÿè°(O-Â1 )juÇ"õL¹Š$oS7iÈ/ {¶ª6”®ÔuOyWTîûâÞÉc1åR£ºòœ:kCtY Aë­á]“Åö¡rÑJMk…Ôxúxü忈NÂà’FÔn'‰áÒŽÔã’c#´¬·üö1ÆÀ}±Ø‡Hª}geGú”¬Go‰Õ&Uæ¸ZÝÿÈ3¾’cÛÍõ߆j”¯! ­Üaëãœ<*,°ñ‚ˆÂ)Ù…[²Q…/ómãî°­^>?«Œm1¥/6E­â qÓ1J´´]ŠáÀòkPd@9l­›¾uSP\ŸŸ ŠŽ\¤¦½í¢žç+éXÖH”ãØÑÀ u[® YmÞ Eq–»˜²D °YºêùÖ6Tc̱ÎU—y mŒ;oÍcƒæÊõñùîÏ&£ìf9œ °ve+D¡Cƒ8˜+Òsè1ㆅIÂw‹ °õ2}ºÞ-7‡ûxÂÒZÝX[ñäóž%1s j#AkÚ¯'‹)‰^Ç›3Ÿ/EÇfبjd#`ðÆ7;¬4ÖûE}0×´زŸ@ú3Ž!GäÆ`´7'2f  ›y‰iÄBÔN‰±“7L„D“ý^§#dRO¦ã:‘=½~ñòÍ–éì¦ÀÄ•ýœvë‚Pà¸KÑ2ý±ÂJŠ«0€#žbX±‘3C0X•hFwΛºãÂèþÞmï\ úׇÝÒ»k5h]¿’6†Â¥L@6`!®”#Ý’Bvº`ï6¶õÂ0ôDÀ.ud+ˆˆÇ—œµTc¼±še>—t C%m+yç¥Ø¶±Æ¯TŠÔmξþï=íD›[޽ I“½ûËÒ(9PzùîÊÔMXºFÓ…ÕN)ø4¡§%óZÔgŸÝ¨?ÁA7Úâé|Іog<È.vÕË­ª/Ã-Ô¯h±©mq_·B¾˜[ùÃéû%èë2uJ|)J5Wö˜¨Ûsý·_àÞ‡0½qÕ²\‡Ä2( ~m¼S *flsu>ö¾Ç;ÞnÉ®ËÇéªòñó&w˜à|Ü»Ìßr\é# ía>ÕR+¦šó—4å!zÉg­³t^ßtz›AÑ‘‘|È}Ñ ®T Ó0cÇ4ŒpEyªYßµVZ©ö®ñÚJ*ó}·I0eJ«ÿà›ûxœç·EX\I!›úæCßRékn©·Dh>’xªKAìm/Á\ ÌI`µÀüOA¹È«a Æz„còì÷Óæ ëßä¦6¤è¨^ZcZÔÜtLØHå-øm÷8 ŸÛ©…ü-qãâù· ?€5]15g0—ñéÁÃÕiYܯ›âùϕ۟PÅ{æƒý f©endstream endobj 2690 0 obj << /Type /Page /Contents 2691 0 R /Resources 2689 0 R /MediaBox [0 0 612 792] /Parent 2683 0 R /Annots [ 2694 0 R 2695 0 R 2697 0 R 2698 0 R ] >> endobj 2688 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1FitsError.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2701 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 296.30000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2702 0 R >>/Font << /R8 2703 0 R >> >> /Length 2704 0 R /Filter /FlateDecode >> stream xœ•NÍNÃ0 ¾û)|dŒ?';nœ¼AµNE”±n<>îV .(J¬øû= “ gšM7Š»#0ÞÙÝÁäLÀi4=®ª‘2FG^RÀÚÂE,¨BYDÑ3EÑ„µ‡«õºíNÇåòÖÞÍ0ì‡E}‚M…{žbQ|3y£AdfÌfR|Æa ÿKwBZTÑq Âñwú{³}=uû—¯¦Rk‘óÑg·­ž‹3¬¿|ųR|™óÅ'>ù~ãÓbÄS$_Pb*ŠQ\ð’Ì7?=Úk+ûÚ[yendstream endobj 2701 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161256) /ModDate (D:20111206161256) >> endobj 2702 0 obj << /Type /ExtGState /OPM 1 >> endobj 2703 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2704 0 obj 217 endobj 2694 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 555.2382 398.7049 569.1859] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2695 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 434.2671 170.7392 445.171] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 2697 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 265.006 195.6458 275.5363] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError_aad7f934e5322f3a8d01f86d7d83d131f) >> >> endobj 2698 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 194.2347 170.7392 205.1386] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 2692 0 obj << /D [2690 0 R /XYZ 133.7684 692.1046 null] >> endobj 2693 0 obj << /D [2690 0 R /XYZ 133.7684 592.897 null] >> endobj 1331 0 obj << /D [2690 0 R /XYZ 133.7684 489.6654 null] >> endobj 446 0 obj << /D [2690 0 R /XYZ 133.7684 481.2867 null] >> endobj 2696 0 obj << /D [2690 0 R /XYZ 133.7684 283.0624 null] >> endobj 450 0 obj << /D [2690 0 R /XYZ 133.7684 237.5277 null] >> endobj 454 0 obj << /D [2690 0 R /XYZ 133.7684 181.177 null] >> endobj 2699 0 obj << /D [2690 0 R /XYZ 133.7684 158.8189 null] >> endobj 2700 0 obj << /D [2690 0 R /XYZ 133.7684 158.8189 null] >> endobj 2689 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /XObject << /Im17 2688 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2708 0 obj << /Length 1173 /Filter /FlateDecode >> stream xÚíXKÛF ¾ûWíE:x:œ÷E6ÙÍ©M}KrÐÚc¯[J%»ûï˱¤±žëŠf>x¤¡H~ÔG)ˆ(þ ΉVFDÊ2T¨hs\Ðh›ïÐ-ƒÔ²+öËzñÃ;!#K¬b*ZïºÚ$QX´Þ~Š™ Œ&K ”ÆoÞ|¦”ªÕê]vªîž6îë)+òdÉ$nÒªª—ÝΕ ˜Øå‡ÏrÁMŒ’/ë‹»up­cˆ¦ ¼c.>}¡Ñq|XP­‘Ñ#^PÖ²è¸@eD@{ç°øcñ{PÙÙ½<:¡5Úʉ€06© ã’_²~p5J—€Œû1øZ:¡'¿ãš`œZùêTfù¾^çX/ïʲ(WÉ’Þn)]U¥{×Éò“ÛÖ÷Ïõÿ¦~3YAFAf†h£!R ¥†MÅ„,0„2&.„I/ãÿz\bDk†+…+Êé5tRGC§xºF.ˆùÐý–0§ezt'ψ«‘³š ”G]õ£È±Ýé8<¢½F"p|ÉÛ nga{«Är¦Ç¸‡ò€„`>“ºOŒ #tŽÐ²ÌªÚ.©•z·ù­ˆ ã ¿ÛÝIÛƒíÝìÒ®Œo)Ši”šOôÚ:Ží€X)‡5\µM”=A@aü— i–u¨ Ý,—@ ÏAÌSÕ•e"d\”ùù8")V iÁF]Åß.:e-pûEÍ*"˜À E-Ô‘¶f¥§sS¨6Å6T b{Þ KP¨VÎW´DÊxT‹°êbÆ)öª"w%oSþOØo°TÃIX¥‰TÏ–VÌ3¸Ê.?ͧjGå+JÕ!ЙTíý¹Éº¢8¸4oS3?•Åáú‹‹—f!Ü.v½~¢šÏÏW®ÿb~ ƒ*О"@ŒäæF‹*5öéJ™~5ß›óÓ"½¶¨;,Í E²¶°_;÷ǻд¹Ø»Ü•ih5weq°k‡œ+&ãÇ@1~\µšíõ¥0DiÆoÌ*]± Ü;4Špƒ˜Çý™19²+93\ß°ÛJÝ´ëweßìe gÞìƒ #Zù{å¾Ùü8 ÎOŸ`nΜA,Ä9 :j,F!êj¿çVê–8Š+ ºï@6fïÓʪG¨-éá01#e]3òaÿØZ9d÷eZ>'ªi!‘¦ãâÇq#0ùü¦˜¿ÏòÍá¼uõÐíâÚyÁ'Tâ¬(Ó´Ïê:—Êò_rÑÈþTKôBˆ &Ìw·ƒu™ø5pevJ/ßD.Õ9K÷8 b7ÃÝù‚Š/–+1CÏúÐý>¬t ˜vœu?")b5Q]þ¶^yäïûI{­ËâsŒ·nS/Tý‡T…zjl%›«§Î0V}"½-žžñì77ÍgŸ‰€ýÑs/endstream endobj 2707 0 obj << /Type /Page /Contents 2708 0 R /Resources 2706 0 R /MediaBox [0 0 612 792] /Parent 2683 0 R /Annots [ 2711 0 R ] >> endobj 2711 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 474.0315 190.1163 484.9354] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 2709 0 obj << /D [2707 0 R /XYZ 133.7684 692.1046 null] >> endobj 2710 0 obj << /D [2707 0 R /XYZ 133.7684 638.9148 null] >> endobj 1332 0 obj << /D [2707 0 R /XYZ 133.7684 527.6513 null] >> endobj 458 0 obj << /D [2707 0 R /XYZ 133.7684 521.0511 null] >> endobj 2706 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F58 909 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2714 0 obj << /Length 1286 /Filter /FlateDecode >> stream xÚ­W]›8}ϯ@}Ø‚´¸þ¶ÉÛn§SµR¥Ý6omq¤$L´ßkl$t¥ÕHcûß{|}M $ Œ!%5dBÁ\Ùq…ƒß®ˆÅ=*ÂþÞ¬^Ýs$(‘T›ýp5dBh°Ù})GG1Á‡¯_Á˜6õz}_4õ›Ÿ™ylŠòÅTÀà!­k×ühö¦ŠˆÍ)30—q¦C‚Iôuó~õfÓSX$HaI,±o«Ï_q°ƒ}¼_aÄ-‚ðIW°R„®ç°ú´ú·_r0ÚNsH‰as –³nS J”Eƒ!¡.–ƒaM84|³¶•ânpØnw×Íñ¯Þ‰îJØCð¼X)$0ƒ†Ï C ¡åˆ iG`fƒÏ0E°íƒ/T aqÉ.‚Oµ@“¤ þ?çm¤ÂC‘A\©?˜ãÛ¶ïϧÌ¿¾TªÁ-„²+Ü)Eœ³%ÉaÄ¥V=kJ‡’°_,uÐÃ,ë/”Š +Á@ÓLÃgÃÈ\\\O•û¡CvB# ‚X$ç`Ü.Έ$…xb*o“Œ{Ô‚}J$qð‘s°À„­qGµnªâ”»öÇ:ÿÓ5·eyðuq0§¦]?¾”'Hò„,År»Ë¶Ë›v;Ô¢]¦¡ÙkšFLÁ¡btDåªtzü©éº–ÕÑÔuš› A É@ö¼éµdü¦å$ ›V­œ{&aÁ(aäÀ8ÒlV¼ É„IѱqȤ²¦ ø¼„ËUÄå*ÞF r³æšö†,Á*b*4͹:ùK¨y0®aª*â",+÷Ù:1"8Ìí?s]ÔD#ñ»Éu¾•\!Ûô+"þj½3M mç’멳ª˜Íƒµ0ÒŠÉéUzö7RY¿¢4âòþü!ép=l1™ B1 †+OCÞ¡–@… V—Šq¬·ií[Ùs9²ïBŸ|R3aG¼_£*#*¾žÙ>uý•C±­Òê)’"Dv·A,@¯n¸¸=®œ·¤þj­P5µBe¸3Ua­|·c.Ü*ÜWåѵ¼1huüaN–ž\ßÖø±ôœ?4¾ïÉR÷YC®:xØË,m²‡—~‘Cz®ûùÐo“Ú5m®á`uW÷ï¨g0á–z:ØPÏ•ëê¹M WÏ@áÊ–«®TµŸ6Õýx(²÷9ÑØcYœüÝPîÇ™àÎÔE~²éó¦nÌí}“6mÁÅIøÂɤږµùPîÌ yL«ôhš¶TkÛvƒ€þ½ØµÂ‚‘v‡Üq9˜q….a‘^uø©£'«¶~·ù41©^Q>2?.Ô;ЂQ…½VF;÷ÛÝ—Îpk5U[×@ç®HóSYƒ«kÊ$b¢Ý!A‰îùZ‹÷‚’¼"ÈEp-Ð%öøx8aFª“u;®×#5ôwò¸`1,FÌÆå€-СLÃs€è´Š·4ÕÙØŠQIŸ[¡oèØ¶#­Œk> endobj 2705 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1FitsException.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2723 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 901.29000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2724 0 R >>/Font << /R8 2725 0 R >> >> /Length 2726 0 R /Filter /FlateDecode >> stream xœ˜[sÛ6…ßù+ðØöÅâ?ÖqÛLgœ&VÚgÅ¡utqd¹Núë{–WH”C†ã±5:æ¡öÓ‹]~J’PüÓ¼ÞnŠŸßqÿX(ñ~ï‹ÏUˆæåv#~Yà¢(ÈHŠÉ‹Å]Q›I#MAÄèeJQ,6Å——w«ÃãÅůø{õå¶|8¬vÛÿW‹â-nŽ ÉˆgÜcU|íš`w$ C2R9±)´µN*Û)ëNIŠ´ŒJë*½ëSA1Zi ›$‚Ý7âí÷ñj¥ñ$¢Å]9â½Ü­Ÿ6Û‹‹×Ûǧ»»ÕíªÜ®Öå/þX;ger"g¤EL6j/cl…u/80iÍ_@ë*­éSa}B¬U¨J"Ô9´!Jo£)Iåã ´ÿ.׫¯–‡åâëC9}rÒVÉPÉéB6PzX]rœYª¤Ÿ™Y^˜Vç$©—2[±^?m>”û7wïvÏl°R¥œ·QzÞà±JåtC¥s7’)p°„u8/·J:ò"I2ßÌ-8kä °Ê`‹%·Q2XkµÏцJçâ…<'‘’43“뤱^x$=ûçr¿Ü”‡)¼Þ%+CžÜVéy}$+}žÊ3Jçâäê(­ã`I"Ø9¼1àÃGkÔÎò^ﮟÖë¿–ë§ ›Öo “s6JÆi°@SžÅ3JçâM«câ µDs8“Fi#áB’ÚžÏë»åö¾¼ÚïwÒé¡ŽÄ ³UzL—ŒãºÚCQ:0­‹Òñ¬—NìU…cÍást8ŸÎ¿÷»í}ýfZv:8ó”¶JÆjQW½ËɆJçâ­Q4ªe˜—RÜa6;ÑëÕ—Ãï¯Þ7¬xSnÑZLõÑx|X†Û*®rùb=yÛ_Ï{”ÏYËQrŸ1Ô(BÍ#am¨jÓQëôzqƒÔ.·‡Ë}¹I[ZëÀ»ü4•ï«õÅÅûí¾¼ÝÝoWÿ•§WM˜5´Ïi%£µëþµs •ÎU%èå ‡ŠSo,ú'EŒî8•Õ9Ò´|ßy’PÀîóÔ¶JK £“5Ú¥s1¬Çrµ*êɼÔr±6ü¯„v#½Hûz³¼/§kd¤”§¶U2Zg¢ 1g*«JmªhQŒeLóê.÷Ë$¸9íü*Úïjo#úGS=mè&ÐFÉ ¦`:Jà@é]\xq¨¤(ø¼Ñ3û¾ˆ1C„sŒ|´üQ~}Þí'Ô[œí¸ÏIP)ë||‘˜.G“¥wq‹Î }„›—HŒ*ŠçP‰‰7oÒÅòúl1ëÞvœRe|*¯?”dÔö¸Úœ(ªa".˜ÁeRM…³©ôâùÌC+£:Ñ£ÒTSR§TŸø#øǪ«®ÓØïŠ­þ³.ˆg|•™R¹òGYw?}#ë #Ùân”:†— âw¹±QFŒ(c6sUoÇ,d-÷™«QFŒ> ¡ ™¯Ælü@åQ¶ÊˆÑEäÇ¤ÌØ*cF]ý”«36ʈÑ&ëëÇEÝvk”1£Sž˜ÌØ(cFå=×êÌØ(#FãÑEPþ‰­2f¤ê1»36ʈQ KQgÆV3¹uÊŒ2b$ìéz®êª~£Œ­Žõ´ÒeĘp6jÊ÷F«Œ-9 çót´ÊX¨xIyÅh„±‚1¨vG¾·Åÿ–é8sendstream endobj 2723 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161257) /ModDate (D:20111206161257) >> endobj 2724 0 obj << /Type /ExtGState /OPM 1 >> endobj 2725 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2726 0 obj 1514 endobj 2717 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 259.3156 215.023 270.2196] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException_a37025adf45d65172027274ef5227cd94) >> >> endobj 2718 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.6269 246.496 252.3724 257.4] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException_ae7c4688e2a2b829abdcf969f167c8ec6) >> >> endobj 2719 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 175.2588 190.1163 186.1627] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 2720 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 145.6792 190.1163 156.5832] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 2721 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.2454 128.0549 368.7209 138.9588] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2722 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [147.5748 116.0997 236.3012 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 2715 0 obj << /D [2713 0 R /XYZ 133.7684 692.1046 null] >> endobj 2716 0 obj << /D [2713 0 R /XYZ 133.7684 278.1875 null] >> endobj 462 0 obj << /D [2713 0 R /XYZ 133.7684 218.5517 null] >> endobj 2712 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F51 914 0 R >> /XObject << /Im18 2705 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2731 0 obj << /Length 2117 /Filter /FlateDecode >> stream xÚíYmoãÆþî_!$@ Ñfß_Œ¢Àõîœ6@€æâo—û@Qk›…D:$ßýûξZR¤h @s@ Ãw9œ™™}f–¬0ü‘a )©ùJŠær•oðê^þxC"Ѷ§Ú¦d»¿ùᎋ•AFR¹ºH¹ $ ¡«ûýÇ5划͖`Œ×oßþ†1m›ÛÛ»¢mî6T¬³6;l¶TÀËCÖ4áñƒ}°õ†èµ-s ß AÌš`ºùtÿÓÍûû^´dE‚–Ä öûÍÇOxµ=~ºÁˆ-V/0ÀˆCWÇÆá#BH7s¸ùõæ—žeòÖê ‚¨p6q?‰Y¸Rˆ+#&ÌBé¤Y„B” æÍòPUóuYµßÓ¡ëöÉ–a. ?»ª:جtJÿp'HÂRD± ‡cÕ[¶l°2˜^É#ÙÞ¶¶>¥mûçº(Û¢| £*Ês´M“=Úm¶œõû, /솈õçÜ>·EåÜÛºp{ø‡{e÷NðÂÆÔ= ç×~¨«ãÅæ ð*éJr¨ûÄ;Ÿ{U?Fš©vôÛôƒ {_ðu8‡{ß‹?…ŒŒRf$Ê(zª(X€K-‡OM¼{o]”6Œ²nòaC`t:Dª?|tN‘졪øɄG¦U¯p*À©ÙsVgGç!Öh>¶¨FB0r%’ ‘{˵Ұ¾dÃPa-DŸ!€c—#ª²iëSÞz…©^~ÞÙáô»*?AÍljC“…(2Ĩ© Å .R”ë×i†%ä n4Z#Å èÍÐtþëÝq4 úý††r;‹„I0AˆXo¿ÁŠ%bPªà½#ì‹Ì9Õã÷ÑcR‰)AD)]®¹Â–ƒå”{ Y2D ëX‚dv_„Ó¬' VÓ„­¶L@þš¦aÈ%g¢¦”]Ý?Š”¢ð$$$ÍH<µ‘®'s*üsC!wQé°¹PHQ$f«”ýeæc£AœDà‹cVÁÁÃà8! ?ç³Z»E‘atÂmÇôeŠ:çM¿¸X4g 9¸7Ò®©ã¹|œJ$ Xqæ8íÞN®=zý__v«s™z´x’!W•ó¸"¬ŽWÇî1{câgn(‹#"Áþ[Ó<ñÔA¦WÄ…¸^õdi¤_ø'@ p•2ýÓU¡ŒÁ|BÕáIn$âpÎ@Õ7ñÀ,²Ç²jÚ"ã>5º3² ¿»xxz¨Å*Ÿd³ÃáËFNœ{é Ê>|M;;lLÿÒ?;H¡NÀ Ë™ •pK ÇIG6<8§C4aù…èXÑ™M!Ú0~(¦­«Ãá¤OitöӾ߮™Ï¯È\ÿÛñ €E(Ì^£`I®]‚Ñ€¶µìw†Ñ,‚èŸíqgcpw*ó3d~]IàXËXÙÏTêUªpãâóU¸†øÆd J_Ìb{ÿ3[/øàØ(8ï·zmÓ‚Á·Ÿ ìR׃Bò]%ø±(!.í§Y›q %$]èE2²ÐáÒ9#uqmÛS]6£œ`ëº+xc"ðÝ졬¤<ÔW÷O|È”8saJ.n6Ån¹:šŽ«ŸÏš¦Ê‹ÌC7~)Ú§«QûÃMU»ÙÜuo8Vë¬Ü÷&—§Â7P@"ê˜å9¬]ìQÕÚ³~Ü€õþ`»X—{“„.K½«ûsµïºeD5ñlñÏà4,‹é´±­Ë­ š¶_d³DθáÐIžŸ;t/¾Y¶´uÖ,ßìÊþ‰¿r —>Ï;Ïmog}ŽiðQ#ô‚Ï¥dSÍ ˆ_,õ™›/M)—í(†¤ajaÝŽjq]¤Ãe}{t —§yÍG’O—€©æ Ù5Í;²eͯ®{Ö|aݨyºìPóüóçyݰR±½”Sâ.Œ”0ÄÃ8F\¨å†4éÒ.ûFw‡Çö²­­}?zVtî$ÕKI2%»’$‘ˆ`ÒÈÇ窅ð,²Ã§­²Æ^e²ƒdÕL×DíS"2Æ{÷®RªË®)(vuVI“r×,)£ÔòmQæ‡Ó>ö*I ŽÁ‘”Ñ4ž=™à¥â¸ë#õ¾"fÄL ØnÖõ¸ÿ:»9T|£âUn•Ð^9ש”ˆjE§øÇÁ×¢à.S¥™MºÎ¢™C$àƒKɀ㓅dГ-&ƒ”áxÝØ Ã‹û … dÙ†ñxQ21Ä1P^rÛS-­oÒ†«‘qNuèlÔ^øÎáŠÉö&˜Ù0@„°ñ€1ñ¤\׆I1ƒª]å¨}…™òè*Lï†<´(Ò-ÏKy?t¥T3¸XPÑ÷†^ÛN›¬>—\ßĸâ ãîª é{¹˜uÿýíC"L¼ï Ä]R Ìï6*½åƒHÞpÀNõ-€(!ôÍÊäÙáÐ%-cÐÂíÆÕ†2%Qêb€'ÄW"Ü·Zœ{ù¤Çíïl›âÚ÷wy]<_-;ˆq·qš,ÄqJvåtpÛO˜d_íé0>Þø…t„µªG•ºÃµMDžî´á]Ôº¬ÂDsÚy•ü%c4–îU_2(€Ô¿ŸlÓÆíSÖvO‘Ý©ñé¦jû\Õ2 5âó¢| A㯣S{ýýý›_ß|x;{¦ b2Ü]æönÿøÖ:u L£é =äÅôÀ}:©œr?Ñ{·Ó÷C×Ýíã;»¬2üPLHx"ò–Ð[GÎg:?æ]t“wÕç/P0\¶uâmzj°Aÿ€^`üendstream endobj 2730 0 obj << /Type /Page /Contents 2731 0 R /Resources 2729 0 R /MediaBox [0 0 612 792] /Parent 2683 0 R /Annots [ 2733 0 R 2738 0 R ] >> endobj 2733 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [154.6299 642.1271 211.9742 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 2738 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 240.471 194.4003 251.3749] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsFatal_a42ba5b32d85531fa7570c2345c929f7a) >> >> endobj 2732 0 obj << /D [2730 0 R /XYZ 133.7684 692.1046 null] >> endobj 466 0 obj << /D [2730 0 R /XYZ 133.7684 628.5531 null] >> endobj 2727 0 obj << /D [2730 0 R /XYZ 133.7684 606.195 null] >> endobj 2734 0 obj << /D [2730 0 R /XYZ 133.7684 606.195 null] >> endobj 2735 0 obj << /D [2730 0 R /XYZ 133.7684 576.1066 null] >> endobj 470 0 obj << /D [2730 0 R /XYZ 133.7684 524.4752 null] >> endobj 2728 0 obj << /D [2730 0 R /XYZ 133.7684 499.9603 null] >> endobj 2736 0 obj << /D [2730 0 R /XYZ 133.7684 499.9603 null] >> endobj 1333 0 obj << /D [2730 0 R /XYZ 133.7684 366.5747 null] >> endobj 474 0 obj << /D [2730 0 R /XYZ 133.7684 359.9746 null] >> endobj 2737 0 obj << /D [2730 0 R /XYZ 133.7684 259.4747 null] >> endobj 478 0 obj << /D [2730 0 R /XYZ 133.7684 212.2762 null] >> endobj 2729 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2742 0 obj << /Length 2842 /Filter /FlateDecode >> stream xÚå[û‹ãÈþ}þ sņs_¿C.ìãÈAàXØ[­™1çÇD’³;ùë¯ZRKÝzt{o–\ ,‹mùsUuu}ÕU% Y`øG„1¤¤æ i("˜ËÅæp…÷ðåwW¤­;ÔÚ‡ýíæê›7\, 2’ÊÅÍ/M i]Ülß-)G”®Öc¼|ùòŒiU^_¿ùûÍÏÿ¬vûëëì\>dE‘=}x¬ŠÕû›ï¿yCˆ/VI¤‰`Œ•÷çjƈ2"[ÄÛ !IÍà/³"œ’—û¬,Wk*ðòfeè2?<î³*o®ü”ßåÅŠèe~ÜÀ%B©^̬Ы×7ßì»M9H©eµ½nÛ“ýî¶ÈЧ¶C±cëõ^Þ×m}°¢xy®¼~*~uù|W=´¿·”µîԞḮ¬%åÍÎþiwÜìÏÛ|bH©BMûëË‚³ŠcÓ÷š”8”e UßzÛ<½7Ä”Ê\–8[ß^J_F„),B•~®5 û/ÇI¡œMq£ŘрҼˆhìYÕØr¢Wø¼A…oÑsЍm™õîÂee>¦ ƒ¶XF· ÃD•R,QŠ[ð¬~Šp5[#^LOFŒ6E„ß1QÅäg$Ú;Z~uÖ?}wÈ'wï=¬ÒfYÅT…$5Æða1f9Xš[Q½=»z[~ùjŸÉ°À®K8·p$·áY914IfR®q¨”b£© lÉ—»Çü ÊR2[ˆ^LYOFŒ²Vß|±ŒyÈ€+v´8õêÔé4Ì…R ð”¬b¾Qvø„Éc¹~£ÜSÍ2£›Eb^]w¨„ Ê{Nìsî¾®âÏ"Pð0ÉÍô%ÍSR_à…ü|å;£þ_lAà({änl•]Ãwác¡î‚úï Îm ¼ÊÛšeó=BâD^zíþÎF»I‡·qÛ&ßW§OO÷ùqü¨²B1å°ßu©å8endstream endobj 2741 0 obj << /Type /Page /Contents 2742 0 R /Resources 2740 0 R /MediaBox [0 0 612 792] /Parent 2683 0 R /Annots [ 2748 0 R 2749 0 R 2751 0 R 2752 0 R 2754 0 R 2756 0 R 2758 0 R 2760 0 R 2761 0 R 2763 0 R 2765 0 R 2767 0 R 2769 0 R 2770 0 R ] >> endobj 2748 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 374.0825 218.3208 384.9864] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_aa7eff76215f0bd5ac0aec23c39b903fe) >> >> endobj 2749 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [409.4136 359.9803 434.4762 369.8856] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_af2e65ee8fafdd812f2782da2dfea285a) >> >> endobj 2751 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 347.2243 218.3208 358.1282] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a3be729bfbf66a839903e92cfa0301b21) >> >> endobj 2752 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.1365 347.2243 282.7785 358.1282] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr) >> >> endobj 2754 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 320.3661 226.0617 331.27] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a53dbf2f60ac2851b86b70dad5619b862) >> >> endobj 2756 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.8344 293.5079 189.0011 304.4118] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a6cf9e51e5dd7a9d9d512900465c5ea1f) >> >> endobj 2758 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6039 266.6497 217.7729 277.5536] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a46abc946300c6b7deaa7e456ba9f1aed) >> >> endobj 2760 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 239.7915 218.4902 250.6954] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ae387ac0d5d498974cc05d5ff878ae) >> >> endobj 2761 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.3059 239.7915 282.9479 250.6954] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr) >> >> endobj 2763 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6039 212.9333 220.5336 223.8372] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a114a298f4d870f74ed1039c6ee41b2b5) >> >> endobj 2765 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [167.3624 186.0751 210.2921 196.979] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a71fed8548c3d114a231a3ea87f35e218) >> >> endobj 2767 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.8344 159.5905 204.4827 170.1208] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a994e12743b5b7d75b4168ac095a60c1f) >> >> endobj 2769 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.8344 132.3587 195.636 143.2626] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_af2e65ee8fafdd812f2782da2dfea285a) >> >> endobj 2770 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [264.0166 118.2565 321.1698 128.1618] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr) >> >> endobj 2743 0 obj << /D [2741 0 R /XYZ 133.7684 692.1046 null] >> endobj 482 0 obj << /D [2741 0 R /XYZ 133.7684 667.198 null] >> endobj 2739 0 obj << /D [2741 0 R /XYZ 133.7684 650.3448 null] >> endobj 2744 0 obj << /D [2741 0 R /XYZ 133.7684 650.3448 null] >> endobj 2745 0 obj << /D [2741 0 R /XYZ 133.7684 592.4582 null] >> endobj 1334 0 obj << /D [2741 0 R /XYZ 133.7684 500.8086 null] >> endobj 486 0 obj << /D [2741 0 R /XYZ 133.7684 492.6007 null] >> endobj 2746 0 obj << /D [2741 0 R /XYZ 133.7684 392.5676 null] >> endobj 2747 0 obj << /D [2741 0 R /XYZ 133.7684 392.5676 null] >> endobj 2750 0 obj << /D [2741 0 R /XYZ 133.7684 363.9654 null] >> endobj 2753 0 obj << /D [2741 0 R /XYZ 133.7684 337.1072 null] >> endobj 2755 0 obj << /D [2741 0 R /XYZ 133.7684 311.9751 null] >> endobj 2757 0 obj << /D [2741 0 R /XYZ 133.7684 283.3908 null] >> endobj 2759 0 obj << /D [2741 0 R /XYZ 133.7684 256.5326 null] >> endobj 2762 0 obj << /D [2741 0 R /XYZ 133.7684 229.6744 null] >> endobj 2764 0 obj << /D [2741 0 R /XYZ 133.7684 202.8162 null] >> endobj 2766 0 obj << /D [2741 0 R /XYZ 133.7684 175.958 null] >> endobj 2768 0 obj << /D [2741 0 R /XYZ 133.7684 149.0998 null] >> endobj 2740 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F57 903 0 R /F73 1481 0 R /F22 704 0 R /F14 944 0 R /F51 914 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2773 0 obj << /Length 2170 /Filter /FlateDecode >> stream xÚÅYmÛ6þ¾¿ÂÀ=­Y¾ŠÔÞ]€Ü¦) À5q‹ihez­«,¹’\gÿý EReÙò!-ŠÖ5‡3Ï‹bŠæÑ,ÝÝáÙ<üöŽ8¡e'µì‹ý{u÷õk.f1Š#ÍV›¾6¢˜ÐÙjý~N9¢l±$ãùÃÃ/Ó¦¾¿ýÝêÝM–ßß?¼Lª*y^|X½ùú5!}}i“•E}Ù? C°Œ-Ã2(âqL¦b’q$$æÝ (íﮀ¥ãHÍ:1³‚_(gV AË䬯ð|^/59¯B‘á´µwÄÒï Šçe¶šA1ƒ!wB3Ì£êÉɼíÔÉOt®×XTé]¹ ¬úÌñ«0½î’NjÊxJ%Ž[þÙå-ÀalÞIaf…•çŠ0'óÅ'ÐEη£˜Ád‰¼6ºLd€ftÏ!ETŰÀž›-Äf oM–)®èi*cÖP.kží®o\NØ»¦´¿kk1ÍÖ]ì`k*÷Zy,ôÚ^>º¡Oö')Üx­{‘5¡òâçèr b†(dÃmXѾBIÄ‘üCÑpà•n’,o×ñJ×i•í[‡\2P(çüFDHR®n²^H…‰£)ë#ˆ¥Ãˆƒ)ô3x2î|¯yJ¡\'%ﲨN˽Ë‹ðÚ¹*:K×ezØé´žWvÉÚ´Ð9@ø;ÍÍ“.tǧyU)ó¼l3£³Î€fI|©`A£ (' V_ìJçÖ‰Mvn×çí:·©ymçLë3m//šÅ†’›¸h_ØSHO)â°XÎ$‰ÿÇIJG¦Z|è¢Ü(U ~FXúóB'Ç)9;NéiVˆ3qFR/*y8QÔÕ‚«Þ Œ¼Õ›…œCy*R}Ù±ö\àÉhê‰]¡?4ê¥eua;V>þ Ç^Wº9TŰªÙ“ªA¦$]Ce7·"‘˜#[ã Èž1[ (æÉ–ë-~'¿ì¿p¾Æs½íü´ „Ì»C¶À‹…X2‘BÐÛ#ÕoŒÆ¹›ä¾Â+€<5¯ä`ÚÕ3T°F©Ä0°Kr{\Úu1ñ:ù) Ïô  ‚Ce-+óÆN¦(áHqÝI^h yƒ¹ƒ½™¡/¨›^ïÀÔy2HèåcʯÐÑE޹ûð⢠Oƒ¾ÈŠ—Æš«§wK¸PÑçœÞõu\9½ëÄü&šŠj6ÒU†ƒ’u¡:´¢Ïv¨õ°ÝÍv‰aaOæŸçqI“\>§#1A‚AËr øô…¯€‘@’Ÿ¸ÅgÓAƒ”/ þ˜îFãÍ à=SÆ ‘Êã?õ˜n,º9†…*ùÓñ¶~²@8*%n=hZ4 ÑÉ g>¸ ,ÅD™è‹]aZm7Äwý‹™VgË­L«ÿ¦¬ñ&¦Zr‘iMÌï™Vèã¦5ºÏ*zÆãñ\õ'YŸýͲ1’•ö¿dK¦‚xñV™¥|¶¥>nÚO²˜¯´û”ÙŠ ±W$º'ô^¸» ïŸáÇ”Wå§g脇ãÒœ#ÅbÌaÿ߃2endstream endobj 2772 0 obj << /Type /Page /Contents 2773 0 R /Resources 2771 0 R /MediaBox [0 0 612 792] /Parent 2785 0 R /Annots [ 2777 0 R 2779 0 R 2782 0 R 2784 0 R ] >> endobj 2777 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.2049 631.7909 232.7764 642.3212] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ca62c9f81dbc710968b2afae2d18a7) >> >> endobj 2779 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.714 292.2135 382.9017 303.1175] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 2782 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.7285 219.7295 215.5513 230.6334] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CAarray_a696f1168e9058a218e91ea0ead06693f) >> >> endobj 2784 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.714 123.8926 382.9017 134.7966] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 2774 0 obj << /D [2772 0 R /XYZ 133.7684 692.1046 null] >> endobj 2775 0 obj << /D [2772 0 R /XYZ 133.7684 650.3448 null] >> endobj 2776 0 obj << /D [2772 0 R /XYZ 133.7684 650.3448 null] >> endobj 490 0 obj << /D [2772 0 R /XYZ 133.7684 603.2225 null] >> endobj 2778 0 obj << /D [2772 0 R /XYZ 133.7684 554.4705 null] >> endobj 1335 0 obj << /D [2772 0 R /XYZ 133.7684 345.8333 null] >> endobj 494 0 obj << /D [2772 0 R /XYZ 133.7684 339.2331 null] >> endobj 2780 0 obj << /D [2772 0 R /XYZ 133.7684 238.7332 null] >> endobj 2781 0 obj << /D [2772 0 R /XYZ 133.7684 238.7332 null] >> endobj 498 0 obj << /D [2772 0 R /XYZ 133.7684 191.5347 null] >> endobj 2783 0 obj << /D [2772 0 R /XYZ 133.7684 142.7828 null] >> endobj 2771 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F57 903 0 R /F22 704 0 R /F14 944 0 R /F51 914 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2788 0 obj << /Length 1728 /Filter /FlateDecode >> stream xÚÝYÛnÛF}×W(PHÞìý"R» @›¨yIò@S´­B—¢êúï;ËåRKñ² ÜI¢äÙ™ÙÙ9gÏHdŠá™Æ’šO¥¡ˆ`.§év‚§wðÇ×R]ÔV¡ÙËÉ‹k.¦IåtyzHB§ËÕ‡åˆòùÁÏ./?bL‹ÃbqýóòÝïÅz³X\¾•äyò4ÿ´|óâšÐ¡ˆ1* ëégÒŒ‰eDVË'&¼Á˨‹ËMr8Ì/¨ÀàÍÐY¶}Ø$Eæ>y›ÝfùœèY¶Ká#Ƙ™,¬ÓÉO˺bA!RX[¯?'>áé Êûf‚3ZLá FÄ:ÝN‡ER¯>ÙLÞM~«]-—vW qeDÇ9QÚyNBÁÖsµ»¯6¹Ú§Çm¶+’b½ß¹n÷¹{(î×UqÒSçÏ’êÍ]¶Ër(تZ™ï·~iæm6û9³ÇõîÎ}d»b“-úëBskÏÀ¬cÛK}òf·ý‘Òöù ýËT$®·ŠÆÕH*Ñ ëûÝ÷ošÄ¸²Á âÛ—î­Æe BÙÆVÂ4\ƒ4ãús 9'bv‚'!ÈAK¯Ð”†ÞÄçYd@§¤ÐÀBš3ÑDèQªÁ×Dá€è\Ͳ¼Dh_i…QHĺéd4!¡âZ¸C½=îÒhö7diážó¬8滺ß/Ý‹ã½3œ$îå/[uXï‘·¿õŸr’M¹ô€€ƒ{‡¬µUÌC%f§ËÍÚ?åw•ÍÛ`ÛµýE¸ ½ñ¶ßòDÞÏ›f5‡™pè2.„8Ë䜻¼U$>§ŒÚ,¼¯Ò*+’õæPõ^PÃQ àJ’”óråwë]º9®²Ž‹à­Œ¦gÍúTЕØTMDŸû2H)Xôxwc¢àR1£0{Ìk)Y³E¡dp”‘=Þ:6ëÔå—l{“åîùºjÞCrà(\Çb(0EXCΠ"BÑÞ*Êл‚ŽuüÆô<Å; l üY²VRŠ#E¹n&Õ ¹Ú<’Þ¹W~ÿ`/Ù}þ ÿÉy*”pTbn <Þf8<´`.TóH l ­R±Û¡X-aµû_jàršXjn³Taþ¨<ž¨®Ã'7>ã£}v‰ÃÆ™¾„Ýpão f0â’ù èûõî•Mª«ò¶… ¸qm`M'Ûà0&m^m+áB”Ò)ž\8|‡oîú‚½ üä­|_ØsHê{#Ÿ3¸{nŸÒôéLã•P{\÷Õ¥\Dé~sÜVWÜ*)ÔË\àÁ˜"³Ðx€Ì AQuÒ/ˆT æªäþRx]e‡4_?”×qo‚B M)ë!4iq§ÆeÍYÉXöðÀ$v *¼ni·%³ËLKW\6®žâé!Û%ÛÌk¢¬`¤…V-Õã0µqRY£µa=ÝiØÀàFÔ‚ `S"Á$^™œ˜zÜ;¡Ù€žƒÀGøW«çêÇê¹pÁ€žkl|”žkfÒ«ç†ã×z®Yø=×§à¾æ¹••+&cš(4EµYT Ç­eQ,®ÓE°#æV&,“³q64š[<-EÍûbpnµcáðèÊ@Ö´ÔÃ70º2à1¢,ÖRÙÝ1@dª:Ûšî@¿ÔtgŸ+ÐØÇR ³íç—îÅñXeZbÈ>Šd·Jò•{·YßäIþ†98Ÿ =*›u•…E__)( èRW_ èìº(á‚¢Ôf¾áÛ8³ HÎ3hᬲŠÅÒ¶H3l]#K3kè’¬¦6Ô9ÝRd¤žÙ×8ÜR)ì•.FCh< ¨`0B WŠêYÓ­õD nEuԎڔĦÛÚ,Jä¡Ã"ÅuDÞû¼ ·™×ˆ7’aËïç ¹ƒEª§Üá ê1·y6_zÎ1“Æ\ŒF¡±@GDÁ©`yú¡K> endobj 2790 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.264 572.3326 425.4518 583.2366] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 2793 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.7285 500.7719 215.5513 511.6758] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVAarray_a817543d5a8700ca336a35e62a3223d12) >> >> endobj 2795 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.264 405.8583 425.4518 416.7623] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 2796 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 294.5292 155.2476 305.4331] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.7285 222.9684 215.5513 233.8724] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray_a661c853b542621505841646ffb4f9b60) >> >> endobj 2801 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 116.0997 155.2476 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2789 0 obj << /D [2787 0 R /XYZ 133.7684 692.1046 null] >> endobj 1337 0 obj << /D [2787 0 R /XYZ 133.7684 627.4588 null] >> endobj 502 0 obj << /D [2787 0 R /XYZ 133.7684 619.3522 null] >> endobj 2791 0 obj << /D [2787 0 R /XYZ 133.7684 519.2897 null] >> endobj 2792 0 obj << /D [2787 0 R /XYZ 133.7684 519.2897 null] >> endobj 506 0 obj << /D [2787 0 R /XYZ 133.7684 473.5004 null] >> endobj 2794 0 obj << /D [2787 0 R /XYZ 133.7684 424.7485 null] >> endobj 1336 0 obj << /D [2787 0 R /XYZ 133.7684 361.6105 null] >> endobj 510 0 obj << /D [2787 0 R /XYZ 133.7684 353.5039 null] >> endobj 2797 0 obj << /D [2787 0 R /XYZ 133.7684 241.4862 null] >> endobj 2798 0 obj << /D [2787 0 R /XYZ 133.7684 241.4862 null] >> endobj 514 0 obj << /D [2787 0 R /XYZ 133.7684 195.697 null] >> endobj 2800 0 obj << /D [2787 0 R /XYZ 133.7684 146.945 null] >> endobj 2786 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F22 704 0 R /F57 903 0 R /F58 909 0 R /F14 944 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2804 0 obj << /Length 1834 /Filter /FlateDecode >> stream xÚÝYYÛ6~÷¯0ÒX3¼'(n4è&N_’ ÐJÚµ YÞZrvóï;)Y×JÝÂ0D‘£™ápŽo$2Çð#sÂRRó¹4Ìå<ÜÍðüß̈'ZÕT«&ÙO›ÙÓ×\Ì 2’ÊùæºÉM io¢ Ê•ËÁ/./?aL‹|½~ýóæý‡"I×ë_ƒ"ÜþìâåçÍÛ§¯ ir” *8èaY=w$m¡QF„§Ø 01ˆ0¡<Á“,.Ó Ï—+*0p3tïnÓ ˆÝÌ»ø:>,‰^ÄYh§$Q ‚¥e:{µ©MÖ°A Kb öÏìãg<À¾og1£Åün0"ÆÐùnÆ8É ðÈöìf©xiJ‡AšÆQ72Õàu’Î%ˆjL] ٥çyשš~Õ| R}¾e.ùs !»¨MÚÒD$4áM:!]SMÉïqs^Õ*‘T½ýŠ~R|—o¹ýƒ;ç#-™ßyM5!ºÏ­Š'pO]é”"EÉÙ&¨é§ôèñuð€ $”E"ô„ *ª)Ù=nV6òñÎ œ¸" IÊy¹ø" )ðFYP$6ú]Âq ×Ç,, á[Kj²¸Ü‡åN¤Xø¹$w¤·‡½}ðKAÀ•3e@Â5ŠƒÔî’bë×¶^B~‡Iµ¹ŸÞ_»k;ûA|¾¢>Ÿ’ìÆŸ²Õ+G5Y¹Íº¨9šhwqVvOnê8»ô±M|" OÅÿnI€³¿¹‰³ø( òOö»êѸb–¦{kûZ-‹uÒxý 8ŠAJ%dt5Éj¹ô‚¥>q³ÛþD©èÉ *ʸ܊jR®FR‰¶Ø Õ¡íÛ %œpD…•o/Ã[o—*Ž´¦„iãÁ1Ôk¥ÏœKµhcÎÚµ®K;1F; ³#`¯±ËfˆBš3Ñ®ÿcL*ÜI5ðãº;ap'¨ øÌÂÎM %Z6åN'ªd(ˆàªU©Úí!Ž’Ð)Ô¦]´Ä¹›-¶AáFÛ`Iñ)—aà2kñr¾W–ìXÄÏ, ‹mÜr’Ý=³:ÎÏ!%A^‚{¾È[X7vƒÛ)ï‡$ Óc4ÔhÀ‘+£;à¦Å«¦Ú~ÞåeRB7O~ð¸¸f— ?+šÄU$h)YëØ8Ôa íÎ)ñ¡ð2.‚$-38ÔË8Ém™ Tª £r0O€i%”;®ÎÓú ‰É¤öœ@)÷™»¨`ŠÚ†™^€žX¶N+´žØŒ®>G0•Ƙ÷¢µÃQs<;Ë4 0®¢XŒìÜH 2 §“lÚÏ<¢ÔDZhP¤ñ©>®´ÐMòàêòŠA…{ý `h̹–e¹,> Ù•]kÛ¸õâÕý3‡ÞtkŒ݆5i’ƒ^…ˆfú»j,=Å/ Òïe«æ5‡þ^©Ú¦G9»ÛÁÀÑØ@Ê¢¿’ëOXàKt[¿¹I2;rqZ¬¦PœEõòU’EÔÝ¿º¿x’Åq”ÆOì’ý?Šïç:Ývû¼p£6ÞÉ»-H×Kz”J†4³Í¦AÌ0>ÑaTä«&}?{\KÔàSOO D^Ú*t¢¿"šl_bÙ‘\¾#²6ÈöÞT $ìØbì &ûÀ„‘õ×ü¢¶d^fßcäÞ×SbªTé7•øº}.iRi…ñ“¸ƒóáØÿ/7Ðõ )ôTªn’45ÙdC0.·n¦äº† %öŒ†b„ž$šÄc åÖeý‹M‹ƒÔ9 Áq7Ø@6ÓG×P(éÂÆ÷„;5ÈFJ?…(â\öK?¦>p`pJŽpãK?fÝÒ_¾ètWÈÒef¿÷Ó]@t Jj€eçAŸjJšÀ©y|„ýѪùyqÑ Á×PÁÉ)(¾¡9 Ði`ûÚm¤9ÐçéaL›)å9³=„ù_5ŒÓ9pJÌÿæÞ€Nû˜Í“dò»_“l$Ebà”©~Ì)bÐL'In†}½úŠòÍŸøšÇPçhó3«„î }ÓÜ•VÖÚoÚx¤B4åÌ£G$/ãÐ ¤»PLˆ¹&t-üݵ5H…j€YÞ]}õ¬ö÷_õÞjW  ö/ð>&‡endstream endobj 2803 0 obj << /Type /Page /Contents 2804 0 R /Resources 2802 0 R /MediaBox [0 0 612 792] /Parent 2785 0 R /Annots [ 2806 0 R 2807 0 R 2808 0 R 2810 0 R ] >> endobj 2806 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [327.3899 642.1271 362.5776 653.031] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVarray) >> >> endobj 2807 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [365.5664 642.1271 401.86 653.031] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CAarray) >> >> endobj 2808 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.7254 642.1271 465.212 653.031] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1CVAarray) >> >> endobj 2810 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.8347 326.2403 290.3013 337.1442] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2805 0 obj << /D [2803 0 R /XYZ 133.7684 692.1046 null] >> endobj 1338 0 obj << /D [2803 0 R /XYZ 133.7684 567.2908 null] >> endobj 518 0 obj << /D [2803 0 R /XYZ 133.7684 559.5751 null] >> endobj 522 0 obj << /D [2803 0 R /XYZ 133.7684 483.4494 null] >> endobj 2809 0 obj << /D [2803 0 R /XYZ 133.7684 433.2523 null] >> endobj 1385 0 obj << /D [2803 0 R /XYZ 133.7684 269.0284 null] >> endobj 526 0 obj << /D [2803 0 R /XYZ 133.7684 261.3127 null] >> endobj 530 0 obj << /D [2803 0 R /XYZ 133.7684 185.187 null] >> endobj 2811 0 obj << /D [2803 0 R /XYZ 133.7684 134.9898 null] >> endobj 2802 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F22 704 0 R /F57 903 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2814 0 obj << /Length 1559 /Filter /FlateDecode >> stream xÚÝY[ÓF~ϯˆÔ—D"ÃÜ/¡êCY@T½BxTyï®+ÇÙÆŽvù÷=ã±Û±]Q*ZÄŸ9ç̹|ç‹Cæþ’9a )©ù\Šær¾ÝÏðü¾š‘JhÕH­|±ï7³§/¹˜d$•óͯM iovï”#ª—+‚1^<þcZäëõË×›·ïŠ$]¯ŠŠíݯÅñçh/?n~xú’_©Rˆ ÆÁ«í['Úň2"+‰MƒµÀw£*ž§Qž/WT`Ðfè"Þß§Q»•7ñM|\½ˆ³-,JÍ‚`e•Î^lš¨yÁ HaIlÌþœ½ÿˆç;ñ3Œ˜Ñbþ7cè|?c6p½ZIgog¿5*½§åÖ¾\qWFôäŠÒÞ\ G¬<ø»<º×Ë#xQæåBR\¦$P¯â¸xíâ%‹Gû_¼sÑí* 1ex˜¥Ðé2K¢’xñøÌÊ@} %‚5\)$)wgI“¼è«'ˆŠf£¾ëJÀà²Ç‰Åd—~¹þ#Þ•ç#A¤ªç¥BÈeÀ^X1>·-”í~On>`Ï*ÑuäÛ$³ëð<9?¬—PœíšÇ×I¶£îþÅãa×ì¿g¡QÍ·IYíL¨Åþ…+¹8ܸ•â.v [¨8w«Iq—dí¾  B‚!HBK¤ ᮌí£ãm%óÆ+èF~åoètWoÙÉàt¼°¥$kyÑj¦Fj̶1`€„¶£c°à#ÞÇYï\˜ldÜ£¼Ø­×ûè>wŽ„òX5ʪú–q‰m™d„ M}çO&Á®¼‚§›S¶-’CVáW鄽ÈK*îÆ&Î~¦IQ¤•À.9B¡¸ëS÷–Þæ®>lOöD‘5U>kg’ÊøöŒ£K(診¹³ŽjÃQî<öÍ9jeiêN²[·d™8]ÂYÁ’™‘æ‹õÀ¢°U$õY[Ùq”ŠŽ]€+i˜±[KÚÕPi"4[ÏHtwùÐD" ˜im#*¬yûÑò³lé€Pž”0á@à®Pš:¼—jÑ™ßM¡‚b¨^¡Uk€·ŒÃˆä”t&¸§F!ÍY j‡”Ô3œjÐǵ7Ãaf8xË~)¶º¦íXAùbs–+†0…—П{¦SWP ’ëó†a|läWþ† 赎C>H¬ÁÀ#B7ÚYKïj³Æ+ð:dé§ $J\ € ÉîOEM"÷qHTK!¨ªíY])Ž'$œdßÀ$KO»¸Ÿ(£i«Rõ%^ög[—AJ íl•qŒ8ü™Ô¾pÝÃLˆ j2@1-Î-ŒHÕÄWq%i‰¼ÐWq¾=&÷%ˆ_t»¢@æ{ Æ < U5É{Âôê˜÷Àm‘ÆMœ¢îÛn„™åVm&¨ ²µµìÈ…®F•Ƙw@¦¥Q÷kü;øèF†±S@!iA¾ÝH$˜d£•ÆŒDFÑ8ó¤ÐŒAk ‚Ùd4k6LE3ÚŽŒ£YèÆE46ÞÕöEЬƒ__?c@_€ó±óÄ8X#6ÊÁ†í6lÌ®ã`Ù Œ¯’”ÈIè ±0 , ¾½Ÿ_¡˜‰,ì´ï'a£ÿ9F `23cå‹ ÀU<0 [͆©°åo€­À[.q!jq„9'-/:¨UIØîjûw8ô‚­W_£@«H5ÇØ“à0”R˜ê’œÛ÷3†¹VC LMs£cŒZšÿó Ñ¨„Ï|6££eF€ZIcÆ^²ûbXF€P¦ôd,k6LÅ2ÖŽŒbYèÅE,¶ÝÕö¥Xz}Í ŒyÁ£ï,<©þUKÒ¯A£ û1êÈ—os÷Ò1ÉM?2:âòüðâGÛoÃþï_öëÓAkÖ^ÙC¼ ³\×Iù»Ò©ÊóU¼uÒ}PLˆ»"rMèZTw7¶êk^m—w×UÉ_?AaµÖü,Ô°¿iÝp}endstream endobj 2813 0 obj << /Type /Page /Contents 2814 0 R /Resources 2812 0 R /MediaBox [0 0 612 792] /Parent 2785 0 R /Annots [ 2816 0 R 2817 0 R 2819 0 R 2820 0 R 2822 0 R ] >> endobj 2816 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [269.206 583.5848 296.6725 594.4887] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 2817 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6685 469.8744 208.9058 480.7784] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchName) >> >> endobj 2819 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6685 371.3572 208.9058 382.2611] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchName) >> >> endobj 2820 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6685 269.602 205.0404 280.5059] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchNum) >> >> endobj 2822 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6685 171.0847 205.0404 181.9887] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchNum) >> >> endobj 2815 0 obj << /D [2813 0 R /XYZ 133.7684 692.1046 null] >> endobj 1386 0 obj << /D [2813 0 R /XYZ 133.7684 523.4942 null] >> endobj 534 0 obj << /D [2813 0 R /XYZ 133.7684 516.894 null] >> endobj 538 0 obj << /D [2813 0 R /XYZ 133.7684 440.4444 null] >> endobj 2818 0 obj << /D [2813 0 R /XYZ 133.7684 390.2473 null] >> endobj 1387 0 obj << /D [2813 0 R /XYZ 133.7684 323.2218 null] >> endobj 542 0 obj << /D [2813 0 R /XYZ 133.7684 316.6216 null] >> endobj 546 0 obj << /D [2813 0 R /XYZ 133.7684 240.172 null] >> endobj 2821 0 obj << /D [2813 0 R /XYZ 133.7684 189.9749 null] >> endobj 1388 0 obj << /D [2813 0 R /XYZ 133.7684 122.9493 null] >> endobj 2812 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F22 704 0 R /F57 903 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2826 0 obj << /Length 1643 /Filter /FlateDecode >> stream xÚÍXKÛ6¾ûWèE>˜áû±i{h¶  ‡$N{HrPdîZ…,9²ÜÍö×w(J2%Ë–‹$hlDÑ£áÇy|3$™cøGæ„1¤¤æsi("˜Ëy²áù=üøbF¡e'µ Å~YÍž<çbn‘TÎWw¡6¤!t¾Z¿(G /–c={öcZíonž¿\½}W¥ÙÍÍoq•lV Å£Ç]|\½zòœP«0ˆk,‹S÷£é/Œe¤•X(1ˆ0¡Ÿ'U<Ëâý~±¤ƒ6C#»ÝeqeýÌ{gËё͘b˜²ˆ`í”Î~]uf ¬AÂ’8£}ž½ÿˆçk°ñ«FÌh1€Œˆ1t¾1€ÞÌd³·³×Êà×úÓ1gu2K0¼ÁÒ»QáÝcܱRÁ‚ºó+Ø ,¢„8V(0“`W;v¡"ð-×=ß‚Œ´ÖÌ bšÉ¾s«ƒù8%'Þ Ô(¤9ã}÷^RÒú—ê¨Fwô/Ì€¶-k÷žuªë‚W§&« KéhÂ0Š´–>aîyR¥Eh0‰ŠOÚ¤rcU›¸ò³¥­e¾o§OpR!á4æ§û©¼odÞˆ;ùeøÁ)âS½±óù %‘„X Xª“šZWi$YÕßæQœìj¡qaµm’¢,í~Wäë4¿o,TøŸâÜ¿§ùîÐX2Í«2Í÷iÒHv*t°þ’pŽ´$F s^Cø!͓찣-®5š;Ô© "±iÚ´A›1])ßñ=”ˆ3r]ÊÂmÎkX̆¦Ð a©.G¤Iú[[Åif×>mní>)Ó]¹ç MQÆŒÅHHQ®¯B/G\ˆIôBjR£¯Ú4?µ0sôÏÌ Uö¼å¢$·¶¥S…#-´:¡¤3 “Ñ‘”þ|±É©Ñ¶‘¤¹P)%LÒÉP@ša5Á¡Øþ Kjóíù¯Ó|-ÿ…\à¿â‹ü×Gp–ÿ&Öõü×[õ»òß)ãù¢¿Ú¤{×óȨ}îâ²J“C—Ù£Ÿ9ìíÝ!k¤@õÚúq›kÿšøx¯¥$Ê÷U ·™yØ@näâ,kfÝ>ê)Ÿióš[Ðé@‡t]KS·mÈ–ýa·sàÜ8ö¿TÔ¶s¯ªÞ6eG,8ŽÒjãåªz¿N$K˜/rëIÜÌX—Â_ª2®£µþÔŽ¬¥½‰½Ê²Ød½QÆöR#ô æ+îûç°°‰{÷Ÿ½é5«æ€z©ç†Ò0>¤Cr®xñˆ1dÀä¤ã–£>õ­(çRôQ‡ÁÞÀ®›ñu\Åý™ŸüÃ)ü€†?òÔ/ß˨ÝÞímÓð—‡|Y¥[{TãGi~W”Û¸ ˜pÚ߬V/Ý ~fk«M±Þ£1³¯6-â"9lm^š@q³š6%ÇȃóeܼÜÛÜ–>‡ê/}ÕŸÚVY–.â|ú×H1Í|4Œ’9Sp>‚ºIŠíXàSÖÌ<øªã²¿­ohô,Â’DüoÎ" - %øP>z û2‡’žÖ5¾1Jß—ñv@—Å%‰÷òy6£ ò˜Žße œâA' í1ÏP2YC™vw.˜+ZÿŽë[ã!¦žxòrKÌü¶˜½žÍ×7Kw-Á o¬ñSáH(Ì®â%¢¡µ7ZOƒˆ¨&PjZúŠC‘îBN‘ ¦ Å.P á aÚ\)}Õtª®¥šðƒ TÓƒxÕô¡œ¥š ÕôÖÿ¾TsŽ\þûîe>áµC?s©à{èopù†6†t¢á%¸DF1Ý ì•3ß‹þ¾[ËÕwˇfç·6ñép8kÚJ"o½i›Ì;g![v¹áU_ÁÔCƒqµ2bÌ`ÿ™à§endstream endobj 2825 0 obj << /Type /Page /Contents 2826 0 R /Resources 2824 0 R /MediaBox [0 0 612 792] /Parent 2785 0 R /Annots [ 2828 0 R 2830 0 R 2831 0 R 2832 0 R ] >> endobj 2823 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1FITSUtil_1_1UnrecognizedType.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2833 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 186.05000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2834 0 R >>/Font << /R8 2835 0 R >> >> /Length 2836 0 R /Filter /FlateDecode >> stream xœ•QËNÃ@ ¼û+|f½¯lr¤*ˆcéö BÒ5}ÐJ<¾o“”Fô‚¢ÄöjÆ;3Ù£"F•ž¾–-Ü¿d¸<€Â'y—°>°/e‹Q@ “óÎb¬¡#3²!v:CdYç[¸™Lêæx(ŠÇç8_›uQ,6ïU¹]nšïê5~íªÛøÓ3ОŒ²?da{ÖöÊRiÁ)•šu×8á¨àe÷ °| ‘ÈÁRÒÓÂgÿ´Äš Ë mÈ›±#ùN?Ëjwl¶›³‰+²Y9MñÃØ[`—ÒìQ†­À„ÌSžDHD½.l-iý¹R»‹hú1 ù)ƒu—ÁUÊ cÌ@ùU(££„09ÉÏÊ­(ó, m½Ji_œŒ·Ôw’Ï©n„nendstream endobj 2833 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161259) /ModDate (D:20111206161259) >> endobj 2834 0 obj << /Type /ExtGState /OPM 1 >> endobj 2835 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2836 0 obj 294 endobj 2828 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.1443 629.7331 277.6198 640.6371] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2830 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.1443 531.2159 277.6198 542.1198] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2831 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.7667 317.4285 263.8896 328.3324] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchType) >> >> endobj 2832 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.7667 143.8722 263.8896 154.7761] /Subtype /Link /A << /S /GoTo /D (structCCfits_1_1FITSUtil_1_1MatchType) >> >> endobj 2827 0 obj << /D [2825 0 R /XYZ 133.7684 692.1046 null] >> endobj 550 0 obj << /D [2825 0 R /XYZ 133.7684 667.198 null] >> endobj 554 0 obj << /D [2825 0 R /XYZ 133.7684 600.3031 null] >> endobj 2829 0 obj << /D [2825 0 R /XYZ 133.7684 550.106 null] >> endobj 1389 0 obj << /D [2825 0 R /XYZ 133.7684 371.0483 null] >> endobj 558 0 obj << /D [2825 0 R /XYZ 133.7684 364.4481 null] >> endobj 562 0 obj << /D [2825 0 R /XYZ 133.7684 188.9988 null] >> endobj 2824 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F57 903 0 R /F22 704 0 R /F58 909 0 R /F51 914 0 R >> /XObject << /Im19 2823 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2840 0 obj << /Length 1997 /Filter /FlateDecode >> stream xÚÍZÛŽÛF}×WXÀ«Ó÷Ë`±À&'N°AËyqüÀ¡83ÜHÔX¢2ã¿ßjv“j^[€ý°0lµÈú±êTuË$Áð‡$„1¤¤æ‰4Ìe’í8y€›?,ˆ­[Ô:„}»Y|ó†‹Ä #©L6÷¡4¤!4Ùl?,)GŒ®Öc¼üî»?1¦ÕéææÇÛ÷«5pi—žNnù{~ŸWD/ó2Ëá E°XlV7?-¾ß´zRXkΧŇ8Ù‚õ?-0bF‹ä¾`DŒ¡É~Á8à"6REëƒê¶>` õ±RËüX—ǤÁØ m”н§6¯'´@Š+Y[úmzÊ]¥f—¢½?Ý"ÝíúFQÌæL_ÄÔFÙ[Çù=0¯Å¯Ã†æ åZólÈúP "JUÏ€^TZTL-Õˆ֋ʇót ¼Eñr}›V©‹Æû²¨>ºåáî¿yV5RB×^>p(pXÀ]1þ£(³Ýy›;<ðÍ鮌f`¶þsD¢ðöˆˆ«èžHS­п ã鈕SEÃX|[>æÇ¢Jkv¶žm‹ôá˜î{‰ÐIâ›ÉDL×âÑWB$2FXõ„!¦ÁÃÔsd4±1Lò ÊSÀ³´¾®ëÑ<ã/|óvOqr{€Nü$AFI¨’:"£¥„Á6Ž„Âì*f`F!®ˆ™AƒpÉ:导DeÃ]W~~š  KMä„y”"n ‰ðƒ6@4¾naQ¾ÎðuL¯ãëŽZG:}½Þ1ƒ§ºz')¦ÅÇ,Èu°âxù÷Š  »bûýK•—§âPnV/?? X™J(&X$*î sS§”á|ª"˜.m‡@–ÒØÑ„B[ׯ ŠêDãµWŠB~iš´0ëUn¹ë%ËŸ*pjØàeu€Om–w¹ÿþx\q±<<—îzqﮟOùÑ]9®ô¦OçüTÜ='ÖGÈ*#/0­Ü*KýÍòà¯ÔJá¹´¼JðòT[w/f@ë#ˆ*k2-~>0«VgÀ>µ=ØrxÿÖ§¦J÷¬éwœ±a(ÍÚðz ”$`P¾6->¦~ תÿ÷)+ŠÍÊÐez·¦<7¶7«HTÌwµ- Ðè4ƒBƒ†eÔõhð1ý¹õ T”Óþ†„ <⃊éH³úÑtO ¦IÛš„°9Öo`qÖŸÕ{aýˆ^Ïú¡Úëwô^Ãúó 䎰>PÀCn'½IÖW6ip,*tI˜¾ëc;&qc²6Æú’8ևϚ€í÷õá{ÍúðéYV=Ö—@çîRz‘zðO¥”B»ß`åš,N秧ñʷ޴Ï6Úõø…‘Úmå27q‡éÊ€â ,º a3•Ñ¢•1¯·­Œ˜^Wµó•ÑÕ{EeD,ȵ&ürøå¼Ûý±"^ïî<¬ˆ+±“Íl4EDÕ» /.*a(§ÆD ¡…‚ðãð“ˆè?vKç?Oyþ—[åG‡póJoGô—Kulñ|¨ëc{šÉTèyBMB™Àæ2µÅ3uVï%S#z}¦†j#™ÚÑ{M¦Î[0ë2õÝ9{üÙrx¾"^„}'‡ãvl~¡uÊÎ…ÃhèÆ_)e™„=Mì-ìÿ2e¡—Qæ÷ò±½pžÙ ÛCÎ|þz¾[©å®ÈÜIØòý]Ý‚`ýæ\f6 Óe+‰ ¿SÝ( 5uªÚZM4AJñXchaÑr ÎiÌ•„/¶¨qÖ±mä´ÌV…@ÌY¶n@1@êŠsÕ 8ƒW5²m2HèATfN =>bÆPîÔI!Ì×ÄžõÌ:ߢbj!m¤`¬«öÕ±xx¬ d˜0Ì0 ¡—i†Í—J(c†PZXÍЇ§Ïþh×¾žã9«†›¬¶lkeb*„Í•L‹—̬޶CéUÈ(L:Õª­òýÓ.­.g®ø ù*ÄWø©=l˜ FÃÿL®?tæÀÆ*ëþy™Óªq¹™iëøÆùÛ(&Ä­ˆ¼!ôFøo÷¶Œú¿YùÚ÷ÂÛÃË燼ìŒ+ûctŽ‘€ýùŸ6Kendstream endobj 2839 0 obj << /Type /Page /Contents 2840 0 R /Resources 2838 0 R /MediaBox [0 0 612 792] /Parent 2785 0 R /Annots [ 2842 0 R 2844 0 R 2845 0 R 2846 0 R 2847 0 R 2848 0 R 2849 0 R 2850 0 R 2853 0 R 2854 0 R 2855 0 R 2856 0 R 2857 0 R ] >> endobj 2837 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1HDU.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2858 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 189.13000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 2859 0 R >>/Font << /R8 2860 0 R >> >> /Length 2861 0 R /Filter /FlateDecode >> stream xœ¥UÛŽÓ0}÷Wøxf|÷ !±Ë x£lø€¥Úv‹¤ª+Áç3NcÇÙ¤-tUU‰æxαg&;‰@Ó¯.[ñö›—ë½@ù‰ÿk±ÔÈþ±låuÃAA’‡6Èf%d’ ç$9 äH6­xus³Ú<í¯®>üþºù)n±¤ÑDù›™±“™ßK O¨8ƒCà ­Ð*Dˆ¡ Û Á%¤°¦Ha= Y·î$°ÄVÜÉÅÿ¹$R@ÊóS5ryûç©6:±¬eë¼-9½2Ú@ôÙˆF“dÖ),¶F.€×IëºÀZ:Ôt3ξžô¥,_y:êâËa±RX⢰¦HåK–cÌK|9°¨IIG|sJŒ}iï×|oïd#ßwˆÒr]QL%CÖsñ¹‚l â‚ –½‘K&Å:"Hb.¹'ôÀ»ÌúiîlŽûÈM1¸É­4hÌÈà ³¦HíLEe ø—8#´` ÉÄ76vöa¿ÜlÎØËUkaÕTŠGFSµÐÁƒÅ e$èjç¢v"ð>Κ¹Þü:c%÷VÝ„U ÂsäÁ¾ƒ¢ežYIMÁÇÂSx&5òÊh›éË2Ey¥Š`à/€õÝys¥ðˆ¯ñ&«73µéú Q2kmmY2gõSdºÏbäJÖüM¨ˆÝøÉ^ÇhìâœIîb }7œ²)y$V=¢ç,û®Ó¨ÒÐS^QžŽ*Ë9m9§;ôq²ò\Àb§j`ý‹È.FGÆfÊ0-J ƒ¨/"ß1ò®*¢ orªˆ†Ì]åå™ZÈ-ô|:w1#câBüÅuçZendstream endobj 2858 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161257) /ModDate (D:20111206161257) >> endobj 2859 0 obj << /Type /ExtGState /OPM 1 >> endobj 2860 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 2861 0 obj 650 endobj 2842 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.0475 582.5945 226.619 593.4984] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2844 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 354.0294 268.6316 364.9333] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidExtensionType) >> >> endobj 2845 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 328.4498 208.024 338.355] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 2846 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5147 328.4498 250.0399 338.355] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 2847 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [260.5016 328.4498 294.5487 338.355] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 2848 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 315.1751 272.487 326.079] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidImageDataType) >> >> endobj 2849 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 278.3781 234.1012 287.2247] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoNullValue) >> >> endobj 2850 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 248.4254 250.2011 259.3293] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoSuchKeyword) >> >> endobj 2853 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 178.6218 181.2503 189.5257] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9fed5392151d12c459e5be9e955e1587) >> >> endobj 2854 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5874 178.6218 232.1589 189.5257] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2855 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 138.7712 196.2441 149.6752] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2856 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.9837 138.7712 239.5615 149.6752] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) >> >> endobj 2857 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [273.7897 124.1505 295.2033 134.0558] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2841 0 obj << /D [2839 0 R /XYZ 133.7684 692.1046 null] >> endobj 1330 0 obj << /D [2839 0 R /XYZ 133.7684 636.2143 null] >> endobj 566 0 obj << /D [2839 0 R /XYZ 133.7684 629.6141 null] >> endobj 2843 0 obj << /D [2839 0 R /XYZ 133.7684 372.9569 null] >> endobj 2851 0 obj << /D [2839 0 R /XYZ 133.7684 197.6255 null] >> endobj 2852 0 obj << /D [2839 0 R /XYZ 133.7684 197.6255 null] >> endobj 2838 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F58 909 0 R /F11 844 0 R /F51 914 0 R >> /XObject << /Im20 2837 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2865 0 obj << /Length 3804 /Filter /FlateDecode >> stream xÚÍ\mo#·þî_áO… D ß_mä.iš E›sÐIPÈ–|§F¶\K¾;ç×w¨%)îR;³ŽZ (Rë¤G3ÃáÌÃá+qÎáâ\(ÅœõúÜÉ×öüæîŒŸ¿ƒÿt&hVP³öåÕÙç_ksX°Òž_ÝÖÒ ³AÈó«ÅR3%/g‚s~ñúõOœËÝöÕ«oÞüp9“ÞZÏ·Ûîå÷ËÛåã¥ðËû›%|à n.„à—?_}{öÕU1¨Ò#˜ãVDsþ}öãÏü|Ö{Æ™ Þœ„p&BçwgJׄùõÙÛ³¿‘Õ§û¯sCÁÀ+æÁ”³ŒcR]œ%eí,ÙäÖŸXtÖORšf¸F7•;¯õj¼PðrÿY|çñ]úèûÚ:ã™u†6®ƒõlûîRš‹å¥0Ï/¿Ø<.Saâ¥v5uVP­B×VÇœò3 ‚ÔP¯ä s wÔ Oø¡•-˜/•/[”a.|ºfEY <“Þê¡ ¿ÙÜowrk˜fº#2ž2£‘;1"¼^âÞ((""×LxŽGÄÀæ’³º?b,¸Q´ÙÆYPqʵdʺpÌ`acMN·a|[ü`Œ¦’±ç „ùŒñí$ó:ú&â¥7—Ê],ç»eÇŠóîÏÍæá¹{µ¹MÜw——’_|Zmw«ûwM<8Å´ƒÁŒ‡C‚†7R»`PÑ¿Šƒ7û1 ˜™ ñí¬ +wLh£úfÌïÉ=‹ôb·iìÐ@,Z‡©n)xÊ¢Fn´(.uC B„µ¸$¬$*8 qâ µÜÈÀtZn2Œ^n*­ÞŒ"õ¦•¤V»Þ´‘*œ‡A1P;¾’e0 c5Ò8e¡V Á4äfOëb¾Kl½]ÞìV›ä8áóõÇùsò’ìþÜn’wóëõrC‚—º°B:ÃI¨` dM¨Þ z Ôjqè©B¸ÜŽVGé©g¥*X-‚8âa»úuùÏ]Κž.ù4•Œ·Ì{u )T"NÈ(”âP†„°Úöè"~sQ 6,Ý?ü>ÖæbÓýóz¾].~Oã4ãÜ " j’F¦®·¤¥·KƒžZ4 új'¤a@#7Zp½Ú=¬>µ[*Øê+añ¡¡YòH“R \þ‚•ИÕ·'}%‹ú CÃþ@ö»ç‡ôÞ/qcѯ‘XÖ–Á¾ÊQ±\Á°XÎ0:–Q½‡X&ô¦X®Õ~X=îžæëF³‡j×¹¡æñpÎxʆFîÈÒ/¹öµÄÐ ªUÛÛ„JXú¥vjàòcm #ýOxÁoåî7Ž@%mÙ¥!>âÎzFQŠa¿â¼F¤ñ×¾zû%w·ïùKfÏñ)›õ‡!)ì_þ“ƒ±o'O"‡JFVü`‡¾7úñéf „¸ø¬lD»E.±Åêîa½¼[ÞïkcZQŸ®ob[t¹EØbÀHE5!kÆF³ª÷À„ÞĵÚjªÁ{±™±ý»6«¬%ð¥¾)HV%º¯Ä‚÷Ãjó´]§¤Im¯” ×éÝwûu÷º“V<2–:p (¨aHV™¸Þ’”Þ.+zj?Äby³Z«­ a ­÷xʈFn—q"ž¿X¯«>ê¶í}ÃwŒV¸? Š0%6Àdl§õça¼÷Íobi}wpʈ¡Ô±à f­ ÄÐ3ªÕÚ¯1¼f6v8ô)îoOhc[;ÃB옜@µ „* ,ÅPJêùzÝÔËiÃxÛíïr‹{„’Ú$ïàõhê[ŸòšJý †¥~†Ñ©ê=¤>¡7¥~­–Nýžê)©ÑÈÝ7µ–ëån‰xÁšAaqOa„”‚ Ëå`JÒïCám],6›»%~–£µ‡?é,§–…|†|×;Ç9²E<ùe¥¢^¨ÜM ¢¾‚aQŸatÔ£zQOèMQßS»¿!ÿ}l7!ƒ­¹ì&ú-<ÅŒilOŒ§¬mäÌýÛfeüc»jf °ÃÝUP„R9ÆC¦W‰Zr¦¥?é8¡–åA†¡Ubo²»ò0yrÐ"?v àaa–f0(ä@!ቴrãâþ¶=Q°0F¢n¡WqϤ‰IXëÝ\ÿky³+s»›¯î óqŠò°/çÁMuJÁSÆ5rGÊ Ía·¯¸Ã}"€h’jâѦæ.fuªQ`4{U1ö"ô&öªÕnw‹W¯æ«ÇD]¢¾½ aß)ÔQ×ïTrF¢„Iˆ§ûíêÝ}nÄFñg—°IãG>8¢MHÉ”äYØ›PÖ˜3ÆC%ã ·´r£úw°‡{¿¼ùeûtׯ¬gʃÏJAQê¡`öÞêGà HR˜'R£¹PdF¥6ÃÃÓ¾Tp"Ýa€=Þ„w¼éäÅM¬ÄÀŸ±BÜûtÿñ‡ùúi ¯;êLßiî?Å)ãûCE®?$8>®F*rùAÇ<@=+ B§ Ìû/?®vï7O»nøå:MG›ðNvÌÝf±º}N—fb«+ ä`0¾[[Ë:õú›¯^÷ö‡¿|þæ‹«/àïh-‡tì”õÌIuìjBvF’®·¥·#»žÚ±Š¼Ý!OKû– »N˜ÔHÍ<ÓõŠÚæ„Ó°4yÂ!EiwŽ ô`"ÆT…\ÀßÁë“útµ Œ^2ìPåîÚ°K·Û‚q!ìËÄ`È}²„'lnåŽuY ÷@ï¨gE© 6Þjô}µí ²Õ®ßÀ?F©±ƒø'z¦à [¹£Õ¨3P·*Â5Eé…ðVR\ÓU£Åiؼó@µ_kFqFSª÷@q„ÞDqµÚS\Ï’ ‡šÔHM÷Íj»Û<¶+¬Â„? ŠRn!‹TЃy NÂVA˓ڋµ Œá2 a¸÷ÉUé€ Ê¢»ùájÉxqW&¸k<¯3žC+w¬Z’PÆÆ f˜_gE©•rЉ¾Ú߯x±3„Ÿì™Œ§LläŽ1žŽöRã!7+(B¯Ž…Ÿµ}µ$á /ð*Šð*FxFª÷@x„ÞDxµÚŸÂöM™p ‹ÕÊV½!<awGQŠãåmÜ`^°q”Á3ÂI]æZÂ|†v×zÜ÷›Î`2Šȸ u<ç3žW+w¿Ðug¿i±øÄr‡»Ÿ£ÅlbÃIzA¨©vy‘ùZ Dò•ÒÛåkO-yHÔW=áˆ0¢‘Û:¦+¬íÕ+ά³ƒy  å’+¨†½x"c•¯|ˆU±‚)ÒÅ#h§OJÕJ–ª¶o.w£ j|Z†dÆ!ç OYÒÈÛ\EêuÜ¢Þ™¡6Ö®AÈÒ…à±õ4^„ñ±ùNägÃò3ÃèüDõò“Лò³V»jï 'ö½ª¾R$3;8¥}(ÍËx˜kœ!FžQ”¶Z <þ’µS«xJrR>D`é˜Pc g“œÁ Ó·)r:4nËPæX:ÆZ=(ùfV@„J%W°‹¯uR¹¨x¼Mݵ¯aX.f‹¨ÞC.zS.Öj÷‡3wó‡cg3ñ)uî&ŸÍtÍ€ÏÚ_ÉLŒÆþ Æ&ã‰á´r'>+m`B«Õš18|ñtO f³\Kê¹Ô1 A^>¡m7!0㌚ìÊŒ§\ÙÈêS+?ºò—þø£Ì jÎ%îÊ‚"ÌPPòÀÃЕDwE ØÌ8yÒéT-cÊ C÷óívs³šïVòÑóçé‡Ö2>㓵78tW±Ç#iåŽõXâÖǵñ(µfÙð¥Yê±ÜÎû»°ñ¶C|ìfÿh0AÍ £æ £©ÑûÒ_  ŒKü]Ûö’_ À]T~‚°"ÿEÏŒ–ª¸ca¿'ê)E~~"á õ­Ü‰T%u|ÊJÜ E™¡-l¬ÍÀ Ø•¼ÊÄ¿Îïð­X|ŠÇ¨ãl:•Ñj£Ø1F›Ö¥Ú#‡¢ö·ùšÕ$>Ecë¹~‘ðÄ`[¹c¤gö{n‹NÀ¬ (µF2XÍ>¦Ú§"¶C‰×0„Ç Œä1\o)1)½EõÔöÚ§£ÕfÜ%Å;*S«ÍíHµi ?ÀÜÁxÆy'㉑µr§V›°_ÔÞ ÜÁ՚ѯ6¥ƒón0±ÿ“jSIªÁMueÁ®låN­6 ÑPm ®,(Ê +™VA ]9}ƒ.@ÌÅIjMgئ¡fî Ïø¢Wxîß8žJ…^ᙿØpp¼b.Â`p'<1’Vî(ôÄ> endobj 2867 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 654.0823 196.2441 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2868 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.2142 654.0823 236.792 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a64b11dc4b2e2d3e2cf636fbcb8a15fc2) >> >> endobj 2869 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [264.1291 654.0823 302.6945 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2870 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [272.4447 639.538 305.8999 649.4432] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2871 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.7487 639.538 368.1623 649.4432] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2873 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 626.3398 197.4294 637.2438] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a18bd99b5d72ace7e7b353102eb80793a) >> >> endobj 2874 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [288.8171 611.7956 310.2307 621.7008] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2875 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 598.5974 195.9249 609.5013] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e19372a1a01046420c6ba4393bb5674) >> >> endobj 2876 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 570.855 203.1279 581.7589] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 2878 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 543.1126 209.7529 554.0165] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2879 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.7231 543.1126 241.2944 554.0165] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a5d4af8d84676f20b1c79b785f1a22cde) >> >> endobj 2881 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.6269 515.3701 255.7 526.2741] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_aecb532b753cd3460568e49e64df19ee5) >> >> endobj 2882 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 487.6277 231.7505 498.5316] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) >> >> endobj 2883 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.0877 487.6277 282.6592 498.5316] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2884 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 459.8853 219.6658 470.7892] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_aece6e1d7e46ce3370578972a4aeb08ab) >> >> endobj 2886 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.5574 432.5164 235.5157 443.0468] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a37bec2db64600e489eb8efa8a001f73d) >> >> endobj 2887 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [287.0863 417.5986 307.0114 427.5038] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2888 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [385.2134 417.5986 406.627 427.5038] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2889 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [333.1192 404.4004 389.3478 415.3043] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_abdfef60e183bb3f3ae0374fccdbc4e45) >> >> endobj 2890 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.0395 389.8562 368.4531 399.7614] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2891 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 365.6991 275.635 376.603] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a6604d7907f4f0353e2821ac6c2506c73) >> >> endobj 2892 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [273.4669 351.1548 294.8805 361.0601] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2893 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [356.1543 351.1548 376.0794 361.0601] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2894 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 337.9567 262.345 348.8606] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) >> >> endobj 2895 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [307.1081 323.4124 328.5218 333.3177] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2896 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [389.7955 323.4124 409.7207 333.3177] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2898 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.6269 310.2142 246.2953 321.1182] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a7acddc0c108bc9504a3a342b010ec9a1) >> >> endobj 2899 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [327.8738 295.67 373.6036 305.5752] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) >> >> endobj 2901 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 282.8454 201.6637 293.3757] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_ab8bf6e03b7460db9dc81c1e6c4bbb214) >> >> endobj 2902 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.2533 269.6536 218.6669 277.8328] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2904 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [170.6897 255.103 194.6697 265.6333] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a111434a1e35e2453237f86b30b3f4a8d) >> >> endobj 2905 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.3757 241.9112 230.7893 250.0904] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2907 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [231.5706 226.987 270.1359 237.8909] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2908 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [298.5791 226.987 336.5965 237.8909] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a011149805ffb96031218739369863e17) >> >> endobj 2909 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [327.2912 212.4427 348.7048 222.348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2911 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 199.2445 196.2441 210.1485] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2912 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.9837 199.2445 245.0011 210.1485] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_abb274465a32c564e884b69810161078c) >> >> endobj 2913 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [330.2502 184.7003 351.6639 194.6055] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2915 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.919 171.5021 294.4843 182.406] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2916 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [322.9274 171.5021 360.9449 182.406] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a674875a76c3fb745b2b35303b42407cc) >> >> endobj 2917 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [332.0356 156.9579 353.4493 166.8631] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2919 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [181.2003 132.8008 219.7656 143.7047] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 2920 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.5052 132.8008 268.5226 143.7047] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_abd3add56e93046c3a5260f1d227b4892) >> >> endobj 2921 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [330.2502 118.2565 351.6639 128.1618] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2866 0 obj << /D [2864 0 R /XYZ 133.7684 692.1046 null] >> endobj 2872 0 obj << /D [2864 0 R /XYZ 133.7684 643.5231 null] >> endobj 2877 0 obj << /D [2864 0 R /XYZ 133.7684 560.2958 null] >> endobj 2880 0 obj << /D [2864 0 R /XYZ 133.7684 532.5534 null] >> endobj 2885 0 obj << /D [2864 0 R /XYZ 133.7684 449.3261 null] >> endobj 2897 0 obj << /D [2864 0 R /XYZ 133.7684 327.3975 null] >> endobj 2900 0 obj << /D [2864 0 R /XYZ 133.7684 299.655 null] >> endobj 2903 0 obj << /D [2864 0 R /XYZ 133.7684 273.6387 null] >> endobj 2906 0 obj << /D [2864 0 R /XYZ 133.7684 245.8962 null] >> endobj 2910 0 obj << /D [2864 0 R /XYZ 133.7684 216.4278 null] >> endobj 2914 0 obj << /D [2864 0 R /XYZ 133.7684 188.6853 null] >> endobj 2918 0 obj << /D [2864 0 R /XYZ 133.7684 149.984 null] >> endobj 2863 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F14 944 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2932 0 obj << /Length 3149 /Filter /FlateDecode >> stream xÚÝ\ÛrÛF}×Wpó"«"dî¸Ö[eËN²É^jcåe“<Ð$qC‘ Ùñ~ýö3ƒÁ­› ÷akËe“"º=çtÏ_0øÃ\ÊÌš\-L!2ΔYl.Øâ¾üú‚{ÐeD]¦°××_~¥ô¢È #Ìâú6µ¦3Sp±¸¾ùq)T&Åê’3Æ–WW?1&êêÅ‹oÞü°º>Ú­«ª}û}y[W<_–ûM WXÎô’s¾úùúÛ‹·×1 ÄÏ,3Ü…óëÅ?³Å DÿíËd‘ëÅGøe¼(ÄâáB*¸Œ…Ovï.þM&ß6—N¥!bà]–C*¨di› ©UL–i²4Ë3ù"Â\²~BnWKȦ´‹ÔàØo@‘~óÌXÝwûa{¬ŸÖ»v>¬[¶7Ã8³ÏÁJ?÷ÕñÎc¾O"Šx"¢±]ÒÃú—gËòú~[]=å¾dM–sF$&¢¨0l‘IÆÕ`@˜fð—·©ÙöU=–’Á…JdÚòIöp£áýäà Œ2ĘØhbÔ|‘CŒF5ƒgE–«\t®šT\¦>”mŒõ½ÓJÍý»óŸ<¶û$Öâ¿õúÛ@šWÒ.'R-9ÏŒÒÅàgÇ>â‰Ûu7äŠÃ0É3f,šãË¢œm9ŸÙ|•@È"%÷†É=Àh¹£~;¹~½ÜS·ï‡ÝȭͳÜ|àvv„#ž `d×Epx,ëúpüÃË‘¨ N#jìö#Šð.„Ì4ãrvõ¤”A™TLš„ˆ§ÂÙ¡¹°<+xA.¢(·VejùÏÛ»ûúä’Æ5ÔB#Ï*i‰ ¬¤˜‹r»/…†´­?µQ:¾¬¸^:ÎÌ •ž¦tÚ¡0™z­RÌi'RÜ©×hâ—hêó…¢Þ‡VS}¾œÐ§Ì$Lí°ûÜ1d5Ë™ëûi®ç¥) Sp{âÍG8ÃÐê¬.U&Ç;‚Ÿ0!y¤ìù|ž,unAÑœŸ#ËÔ"ËsQþQj ²EN¨2…!²Œ0R—¸ß(LÊo«ÌžÛ¯þ|ýîõº*ë/¿‚ c‡‡ ”y NZ.39žDç™Êí0>díñD¤c».‚Çõä¼².sh hŽ"Šò,AÆV nfÉîµ™U+™Ì¡ãEíK©Þîïzxѱ¥ùéðþ_å¦n-mV|yØ×ëíÞ_%›«YR@A¦óA–fùáxJFVgêž²6S¶ÐØ% cÕÔrEi]Á°É.Œ֌ÖzbÓ:á×k=u;·vMÓØ¢¸F{qƒ§‚Ùm¸Z®o^ívß­„^–®â~ªÆm.”‚㹈(" +$àÁMÏ †XH–Ÿ¥äÄ&åë´¼¾i‹Ízç72·ƒq»£°’Ì%°ùd»@îÁL‰t32Ð5ÇLaÃŒf8ê·cø„_hß–ñÃS·uùð¸[ס›ñ/@û*7¾›ý±Eô,šŒ"´»úÓc¹_?øD^O” žÿ§h°KÍ¥•ÐÆ¤›‚%ŽÖâDB÷3LÉÓU˜\€©0À‚  ŽÅ ×{Á PD‚«Ls­ú!t³ã&ÇïêcÛ:àýçžÜ.´¿Á(|†¡ýöƒ |½Cå« ™n•z†|Sˆ|#¬/_©òåÚ½ØT« ÂïTí^«Çr³u»[åM{…ã_ûÕíq¥ôòðÐþÔhÛ¼¶{VÖíËͶúe´åä6»ù0-ó[^N¤`d5L)G­—³Œ)h¹Ø°\FáVq™q#~Ãæ`“‰½Ïc:3r_lë¦Ûwƒehòœ:/Zq®wO íæwДu’;h) ©šFVMÜo¬šS~ÇU³çöÿ¢jºI Ôúä¢™à‘šP%s¸`êÝ®T› '˶fábGC–Üp¨ï¾îŽ CU #Õ·3¬Ù•/ÚtÄ…’YyrÄ×6òL[›“Á&‡Rá=DÉöèØÀzH€ §€ÆUu¡í²*ëöçv&hû=Ã}1ÑeªÚ^bÂÌ®õ"5Ë›uí´-Ç}Öµœæó{ÿqh9ikoe¢å(]dZ¹×K#²Úóx"gc»³]',ø°¼Œ¨“ÇJŠÌJ!{]§™¬ïý¬½·ogä[RÕt˜j¾»Àt–VPÝ%aÝ%Àèî‚úíº á×w—Ômï8öæðô~WŽ+§Élnô Šù}¤€'âÛuU›õD îÀMDDQŽ¡ÍA[äƒxÆ6’b€=kS4µÑ9ÀF;IéZòõ»«Wy;ZzvÓÙHîYn»Ù¢šÚ=Ma·#Œä6î7r›òÛr»çöyôã8áQ<¢±ÝyvÃ<ŽiôÓ*E9P€s`N€Ý^Þ!®Ã>•h‹•0Ób†çð<µð<š4•õï'xóööà+úöaíàwÍ5Ux\¦j¥G~\÷qi‹^6y¶ûôäÉüEM'^F=ë”Â0M­)Ôo§)¯×Tê–œé÷]Ÿ0Õ'‚Ùmøñôøx,«êÈÉO{‚R@*Kå?¢ˆÌÙ¥Dà(Ôœú\îîvåËúHé ÞXaìYzJl`z °få;p˜çËÛ ’ûõ€Ïh2QZ)€¬[íʪšÙñL§Z¯ÿùöû¿Ÿ¢Úù9—”îü@S;ý) ÓP€ÑBýv"üz ¥ni õ\Ÿ¢!<ˆ‘]ÅÓ#,.Ê«ûróKõô0–Í$xˆð/T‘ÙµÂ^ò©-~éŽö ~Öa]jK€u‰°ûê›·Wß½ûá¯'u øÒ/¯×ä6êéÍ«ëWÑFéXðÛ¶ª«fâ3rÿŒÜ¦žw*'·»R&Ž£ÅúíÄAøõâHÝ6ëíÔV¬ìŒ6ÅÉ[Ш¿èZöÄJži·Çþ4Öz[3¸Ûù©aÀ÷=¶ÛV· sÜÞ~šÓ¤dÆ=‰fðìG…dyû¼ZÔŸ± xÒæ¬MüÔ"Ðk2Õdiå‚™:Æ –wŠåƒø½ÇÁŒíÎ=ÁãxexŽ&è2¢(·îRœî¹}ïïsxx|òÏXíë•ûܱ x䊌ãRÕ~ܺëÖþH§MãCûîã¶¾Øjjße»1’åVÊþ¾<Ô´/{µmr¯k®† d% 'jX CjX„‘5 ÷kå·­a=·dƒï»>¡ÁAŒìº(>·Xç™àŠÈBD÷XÓr}ªÃ mapÅY|¦6°`.°V4ÃmÁ&_ƒ¶ßcuD>g2€ðÖ¬ iß¡0Ö{MzÌiÇyÜ©§|â“f|ê÷£ ­vt?<†–gJkôîwízw¡´ég9+ß´½üìër}kãÔ~ú.É@Lçí2¦60yX̤§|˜´iõGFÍí¡Ç°‚ƒÜ4¹™˜Â0vMoÔoÇo¯'xê–fxÏõ)ǃÙCóÆŸ÷7é­»O@®…2hay'«9“Ngm¦60ºØ4]»õ[•H±>ÄÇh;“îtÉäzðíðLËy‹pŠ~¿­æ‰Ï '$rÇ/…!Ä0’ø¸ßH|ÊoKüž[’ø}×'Ÿbd7ò7°Z>ÇC‰"cŠI< Eøwóm-ù ÷H…¿o£Tøk‚Ç«=·ÄvÞÞ`j‘O„MËç> ý”jÏ È1'·èRFú£IúíHOøõ¤OÝ>çX´ŠǢxïH´Ç G¢xDc»³Ìnþ'¿i,EùuÏJñ|8¿ëD”»ÿ šŸ·ç•ÚÀX`3'¢'Óûè@4/2iÔäþ6Oþ~ÅBªMÆ#é/‘€A²2ïý‰•KtÓÄaþè3x؇§% ± ¹|Sú&oÚÁ¸/‘ܼàâE(˜·ŽR!áR´?½÷íõÍá·Owå~öÙ¨‰„ý6é¡öendstream endobj 2931 0 obj << /Type /Page /Contents 2932 0 R /Resources 2930 0 R /MediaBox [0 0 612 792] /Parent 2922 0 R /Annots [ 2934 0 R 2935 0 R 2937 0 R 2938 0 R 2940 0 R 2941 0 R 2943 0 R 2944 0 R 2945 0 R 2946 0 R 2947 0 R 2948 0 R 2949 0 R 2951 0 R 2952 0 R 2953 0 R 2954 0 R 2955 0 R 2956 0 R 2957 0 R 2958 0 R 2960 0 R 2961 0 R 2963 0 R 2964 0 R ] >> endobj 2934 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 654.4559 277.807 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_af0bbec3fe5f6b41ff4a95feff6600d57) >> >> endobj 2935 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.6497 639.7416 332.0633 649.6469] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2937 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 626.7471 222.0069 637.651] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a0c4fa124e27d002de1044c1832be5942) >> >> endobj 2938 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [249.3441 626.7471 272.9156 637.651] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2940 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 599.4119 224.3082 610.3158] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_ab574045dcdc383c9d2987850c640e0c1) >> >> endobj 2941 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [251.6454 599.4119 275.2169 610.3158] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2943 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [207.4915 572.0767 234.3804 582.9806] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a3b547e893d364ebc570f2998a6b193bd) >> >> endobj 2944 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [457.0621 557.7361 478.4757 567.6413] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2945 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 544.7415 229.6284 555.6455] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) >> >> endobj 2946 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 505.4512 213.021 516.3551] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a8c9d28570c1a7f8fc09cc10398bd6080) >> >> endobj 2947 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [391.1178 491.1106 411.0429 501.0158] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2948 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 455.2019 216.8964 466.1059] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a18f7273134f1a0428f8d565067785619) >> >> endobj 2949 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [458.5506 440.8613 478.4757 450.7666] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2951 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.7902 417.2814 237.6977 427.8118] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_af1ffd58e00cd8f3a903976df8f91bc0a) >> >> endobj 2952 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 389.9463 228.0938 400.4766] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) >> >> endobj 2953 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 362.2375 243.8746 373.1414] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a6bd0d7eb236211267de480c595b5b631) >> >> endobj 2954 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 334.9023 248.2982 345.8063] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a56ce9ed0864e07a7ef380b18e3be7a79) >> >> endobj 2955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.3113 307.5671 307.0069 318.4711] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_adc1a7ba06b6a113010334320e5268dc6) >> >> endobj 2956 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.1445 293.2265 229.5581 303.1317] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2957 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 269.6466 242.2109 280.177] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) >> >> endobj 2958 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 241.9379 239.4512 252.8418] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a05843eda3c863cf9b580a409b3067c55) >> >> endobj 2960 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 214.9763 218.9583 225.5066] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a4c36394bfe734921404a6882e82be4db) >> >> endobj 2961 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 187.2675 230.0366 198.1715] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_ae33b25a2d52e0e75e13d277e3327d03f) >> >> endobj 2963 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.7902 160.3059 234.9283 170.8363] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a23317074fa7362c7522c01f3f1756618) >> >> endobj 2964 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 132.9708 225.3244 143.5011] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) >> >> endobj 2933 0 obj << /D [2931 0 R /XYZ 133.7684 692.1046 null] >> endobj 2936 0 obj << /D [2931 0 R /XYZ 133.7684 643.7267 null] >> endobj 2939 0 obj << /D [2931 0 R /XYZ 133.7684 616.3915 null] >> endobj 2942 0 obj << /D [2931 0 R /XYZ 133.7684 589.0563 null] >> endobj 2950 0 obj << /D [2931 0 R /XYZ 133.7684 433.8875 null] >> endobj 2959 0 obj << /D [2931 0 R /XYZ 133.7684 231.5823 null] >> endobj 2962 0 obj << /D [2931 0 R /XYZ 133.7684 176.9119 null] >> endobj 2930 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2978 0 obj << /Length 3571 /Filter /FlateDecode >> stream xÚ­[YsÛF~ׯÐS–¬„Èœ˜jw«;NœÔnecåÉñDBTвþývÏEÜÔS.—p4º{zz¾>fH¯ ü£×”óD¥Z\§K(éõöpE®àå÷WÔmÕ¦KöííÕ×o„¼Î’,eéõí}—›LÒŒ²ëÛÝû gë %„¬^½úÖ677?¼þu½aí󦱗¿÷E½¦zUTÛ¾P”È¥lýáöÇ«ïnƒB94Q$¥¨ÎŸWï?ëhÿãIx¦åõ3Ü„f»>\qQJý“ýÕ»«ÿ–·æÓ)3š )#©5VÂ$âŸi“¥ ê`1©®5X,å}‹I•0.¹±Ø»6oË-Ø„éÕϧ»µZíýíŠÃØÈ\¿9UÛ¶%i$HM€^ , º ‡r!ÊjÊýâŸõ ¢ÊY²žn˜† UÓ8qbQ³'ŠÉÔ V‹Pƒ€Ç½y{ûîÛ¼)\D$O€í.¤@ÂÄ'BS° Ò<ýkb%\p*äç@l—ÇÄ2ÔkWÜç§}뜳­O&CµúÊè~?—Leà'„†0?=}Dß1ßo`.pÊm¸ T±œPÀi–õÅ6§»-fÁ>~´¹³™‡p{w_¯@ÀaS2ÀäàäB#ú˜¶#¾¨-zî+)€m‰ø¢•UD® àÝ\©¾\¬öE“̤"å2a²%ódq[û—!,¢œƒ°®nK¶h‘aË2„õ ò·C˜ƒL²-”íSùiø´Ê?•ÍW@¹4Ù§!{‰‹³ýý±z˜àÃÐ=D/ß_dóEþɨÕ,4&+P–~@wx,´'³éГ7ŒªÕ½¿Ø:èiK0ƒyR™:âyŒÐø” ư€ÐŽ>¢ð˜ï,BKÈ’_4â&PÅÄf%)žõÅï~Ç2ŽÇÄ9dU&2ü”&2кР>¢Ù˜ïŒA¸¦P’ÊtÙ *&Ö?¸6ï‹í…,0Ãs]ž=¥=ŽâƒÌ)U/³I (7æ;¡ —Êä²QÕÅ«‰R€zY€™N4™}P]²…È¢jYnh¸ÄäÚØÓû±¬ÛS¾Ç•P¥†’çß§ëÐ +c¾ÖîœLà0ÔN‚d†§p€Ud*]6O Š˜‡Qð 1P-ÒüšÛºï3€¿ËcÁU™ÍÌîÏz«¢ÓJóÖÙ’·z²¸·.Ê={kD®óÖ®Øx– h’QÆþž$]ž$ŒÛ†¼Nfc,´ }Ä,c¾(¾ò9Ê8¶‹„pÈÑç$PÅ„CD—Œ„Ç—ˆL¦húYK¤Ãci‰x²¹þàB >Ql âü,9òˆ:#®sƲDeœ.Zh¨bR9ƒY„<¿'v—·¹>&ÞÍÑ—µ”«…hÇa꥾¨!Ö¡]è‡ &˜ÓζRBÝÆÒë¢Í˽oŒ½.šm]>a?l^=ðLŃq‡lf<ϲDS×ß1E‘-QΛ[6³FóíGñÀ"!P-°‰8’§ßt?˜Xq#¾³®ÕcCF®ä¨bb™†õÍVyÿC‘ïŠzÍÈjó:¸Õ¯UÙ~°—.Éž÷(LEiÆu,›“×ý`iò<Ù\9Ýu¡† ŒB“£Š‰Å­>­y_¬<¸s&¡Ü©e …l÷bxú˜2#¾¨Œß¦» $ÅlÙ Ž&"ʨD¦{róº°(J@ÛQjÂRž°ŒóKècÊŒøš†ûd­IA»jOךŽ*&7cØ âÏuyÈëqi‰XN‰ºÔ>¢È˜ï\i ùÓ™Z Š‰…dŽñ¡X·LN`œaœ£ò â¾úKíàéc ø¢Bß}j'L! úpEô²)UD²àÎ(ÕcWéEÕ,E2àfÔéå°Øù` =Y{ ÌÃâ²Ø7gŠM}ŽØl_½1›aûýqÍäêÙu´ÛÃ…‹»â1ÇHó±ï1iʆCš`§²±4mðâþT¸17¡³±³÷e5ÑÎàŠKHŸ.4} Ø`Ìmðö? ùlKcÑþç–Æ¥Ó¥Ó½Íbׇ¨ìLq;O¿é~0!Äåß®5dLwûQêMS¨Ë!U¨1ªULxª±àƒÁŸ»~ž¢è˜/*úM³-ËYSq –%:bª@Ñ€cÍ•e<æ'œ©Di­/µ@ Éñ5)wYÍ?…,X1¿§ŠÉ—’3žbRW˜L}• <  Â#è?Š}ˆ^=îì©.b0¦¨ïñˆIŽßðÑC‰ÈöÑÕåð(ƒwÛ¢q_&Y.õñ©¨[{ôŸÛ­CâÑ .¶ÇÃáXu?ËL b ¢ÓtµÏÍÙ»‡Âz3ž  ¡t§IŠ?Oem+,9uÒÈðáÄœñ0mòûp$Á|âTƒ+«\Õ€Ú¨†/jpáU–OuYmË'³Ð,ñ£ãpÈ«òiÓ××Ö‡§}nê?[ZÜ÷ŽñôÔvKºÚ…2¿t•ÚǵÑçäzºFBBÝÐ§Æ í.ŒÌm¬xƒÝ½„Q½ª‹Ün¸À}ÈûñÆCLÏF~³Á2m¼jXµÔíS3Ác‘ÈÓoºLD¢ßÙÆ:ÇÆ§` Fy£ŠÉ:2©ûrEûxÜùåc"$f]ÿü.Ó2”4Ñ$Ø ÇiÆ¢Û°Ž~Óý`*WòK‘”†àK‡ £”§Š‰Õ4IäÕ=±9xg \ØþÅSA»ú Þ= ºØ\d†ÿðUØÁ5­+Â’ã"D;|^:þ° -&1s2.píõ`€H/6z Œ~Ì7º×³hõsb±ºOŒ˜’ £ví¿?›Ž)eL„sû'ØoŠj›?5ŽLš ,|)  º¦«æxª·Àá ÕDÍEuÄÇ ZêM‡|ªòêóœ³$Wèq¬/{8MDâ€JL¬5l.וּ3`ûòTTù¡°¶¸Úb¸”ö÷nz?sÀ~º{ýbar‰ éì˜16z°î¯Ñ•ù%ÄÍM¾[ƒïÿ´¦Óºz±„è€k@H»ÀÃw-¤Cð都ýÂJU¼kV³‘v ìˆAǯ&4d2 ö»àe"6ÁPÜ[g±¼Æähž±H´ð[\Amõ°×SÊK˜úŒˆðáÝu‚?/Tä|ÈhbÉ{Í`Vã?oé’-Ü/R‚Ùóí[ÌæθžvU˜®ÄlÊéÏ4Íï+ pZBøYR¤zôô›îÕãˆïÜ~,+¦²¡Ã>§§Š‰ìWª/ô¹l]1Ý<Û׃?ÒîäzO•w±ß56PH/ ¡ƒŠëÃ,Ôk¡±wµÙÔkì fB©:ù}jò$ø;9yøÂæJöúw“ýã•õ…ĵTf«·÷ ¼Œ)&*õ8Ôdvýr ÆDì^ìcÃìSÙ˜çbU¶öÅs‰EÒßöÉIm5YãY¶¨@KIùê¿ÇÖñ¶7m4+Ù&6øäplÚ½‹¹MeóKwbl¢\Ìw;—îhü=„ÝöÙ¦ab&Ze“Õ6ê2¹zÛÚO›Çãi¿³×Õ±µßݯ{eŠGxR탙BÞØ}8 õÅ–Ò6xOMA(¢ƒÝñ&xìv¼! ÈCaiHÝ¡ðô›îS§K†|ç.`”Ðt¨Àpázª˜X.0Å@l¨ë]ã 9;¢•\¢¢ÕÎ>Ü{câ±ØþÑœ¦ƒ›‚ß¹çaбâšwÎìf†ç@]g OE6¢x_üì_vÞÞfÝß>BE¢°W?Ö -õ}QõùGD¾q»ÎØÊÃÛëÂý`-µTÝöЦ7”ÝøÌóQÑï!‡¢—ľ>~zy(ªÙrhÂ`ÿ¤²çYendstream endobj 2977 0 obj << /Type /Page /Contents 2978 0 R /Resources 2976 0 R /MediaBox [0 0 612 792] /Parent 2922 0 R /Annots [ 2981 0 R 2982 0 R 2983 0 R 2986 0 R 2987 0 R 2988 0 R 2990 0 R 2991 0 R 2992 0 R 2993 0 R 2995 0 R 2997 0 R 2998 0 R 2999 0 R 3000 0 R 3001 0 R 3002 0 R 3003 0 R 3004 0 R 3005 0 R 3006 0 R 3007 0 R 3008 0 R 3009 0 R 3010 0 R 3011 0 R 3012 0 R 3013 0 R 3015 0 R 3016 0 R ] >> endobj 2981 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.5863 631.5176 335.5496 642.4216] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) >> >> endobj 2982 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.3607 616.9972 405.7394 626.9025] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) >> >> endobj 2983 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.6796 616.9972 473.8832 626.9025] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) >> >> endobj 2986 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 562.0051 181.2503 572.909] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a0938122b95fae87a5d8abd70d2faf664) >> >> endobj 2987 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [278.694 547.4847 300.1076 557.3899] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2988 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [393.7672 547.4847 413.6924 557.3899] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2990 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 534.3104 181.2503 545.2143] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a84de5ab34fba6c478e9365937d826346) >> >> endobj 2991 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [275.3099 519.79 296.7235 529.6952] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2992 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [360.5982 519.79 382.0119 529.6952] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2993 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [458.5506 519.79 478.4757 529.6952] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 2995 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 496.0304 217.4938 506.5607] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_ad660a6aee62165b81eb71b85447ab93e) >> >> endobj 2997 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.4996 467.9621 275.0275 478.866] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2e02db0df89451736c7863963170a081) >> >> endobj 2998 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.3757 453.4417 230.7893 463.347] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2999 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.0475 396.665 226.619 407.569] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3000 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 379.0407 156.3436 389.9446] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3001 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.1497 379.0407 223.6162 389.9446] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 3002 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.2971 379.0407 291.4078 389.9446] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3003 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [328.7145 379.0407 352.286 389.9446] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3004 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [395.9576 379.0407 433.3671 389.9446] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 3005 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 367.0855 156.3436 377.9894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3006 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [437.7488 367.0855 478.4757 377.9894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 3007 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [143.5616 355.1303 167.4419 366.0343] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3008 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [270.5939 355.1303 315.5049 366.0343] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 3009 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [326.7925 355.1303 365.0686 366.0343] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 3010 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [417.5049 295.9713 439.9804 306.8752] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3011 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [155.8962 284.0161 179.4678 294.92] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3012 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 284.0161 478.4757 294.92] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3013 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [350.1928 272.0609 372.6683 282.9649] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3015 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.704 169.5896 270.2756 180.4935] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3016 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.9058 116.0997 234.4774 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 2979 0 obj << /D [2977 0 R /XYZ 133.7684 692.1046 null] >> endobj 2980 0 obj << /D [2977 0 R /XYZ 133.7684 650.3448 null] >> endobj 2984 0 obj << /D [2977 0 R /XYZ 133.7684 580.9084 null] >> endobj 2985 0 obj << /D [2977 0 R /XYZ 133.7684 580.9084 null] >> endobj 2989 0 obj << /D [2977 0 R /XYZ 133.7684 551.4697 null] >> endobj 2994 0 obj << /D [2977 0 R /XYZ 133.7684 512.8161 null] >> endobj 2996 0 obj << /D [2977 0 R /XYZ 133.7684 486.8475 null] >> endobj 570 0 obj << /D [2977 0 R /XYZ 133.7684 439.958 null] >> endobj 574 0 obj << /D [2977 0 R /XYZ 133.7684 246.622 null] >> endobj 2862 0 obj << /D [2977 0 R /XYZ 133.7684 224.2639 null] >> endobj 3014 0 obj << /D [2977 0 R /XYZ 133.7684 224.2639 null] >> endobj 2976 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F14 944 0 R /F73 1481 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3020 0 obj << /Length 3075 /Filter /FlateDecode >> stream xÚíkܶñûýŠýÔj/÷¤C[À‰ëØ Ú¦ÎàøƒvWw'T+]$­Ï—_ß’ÒR¯Õ¥)šb>QÔp8Λ\¶¢ð­˜$Ô‘\é˜F¥^íWtu ¿¾bhÓAm|°/·W_¼–j“Xs½ÚÞøØÑ1ã«íá}À%|½a”Ò૯~¤”7õõõ›WÿZo¸‚®<©kÛ|—Þ¤ÕšEAZìS2ªÆÄúÃö›«¿n;‚¼y ©fHÎOWï?ÐÕ¨ÿæŠGjõ/”°8æ«ã•0ˆ1ÖöäWß_ý³Cé}5C§Ø ÃÈ0Vlà|’ *$\(aØpSV°J©ƒì˜Ü¦ØTAÛµ/óÓ±°ízÍ‚¦:í›S•ä¶ëßkFƒtÍTðø€Í²:Ô/ðSÔ§ýÅ•ÔøË·ÛïÞþðÂvþýåo¿a?l_ÿãÝß 7.möd½4 ^ÖÈ^Xá†1+Å µ €ñ0¸M‹Ô’/Õ)Oq¸àAÖØ®¬¶Ï]Z»ž¦´ÏSºŽ»Èr€G“ëiñäeq›·}dÍCV'G×Ú'Áp[VYêFçYݤ‡þr¬ f…•0D4&Êp¥aÛw[_ª[òÎ×…|ãÁOÈÀ+R1±î¯zËø‘* ÿÙF.9áÕ}âÙ]¦ŒKIÂtÓ§ìæT웬,ˆa°ŽÐÓZ!Ñ0Â}‡„&lA“Võõˆ‘<"a²• %Q ZST ‚ÚÅ"B9€ ƒžÉá@%‡–]SJ°n5*\E°-¬®9¸ÌRÊeGéš± 8£b壳TbdƒGðÈ:†`9X&I ¬š[5NJbÁ£ñ²‡ð G{ëÍ +°rV)Ö±Åj‘"Îe{¨‰fÀÅ{Ø~œ{ðùÿ>í&"BGz8y Ú/ˆŠ´žw vvº:¶ÍÖ\ô rÎØ&œ£$Lÿ7*`Ê“Tæ[†áªCI-Р eE2fñÊGø›/ˆŠc*»eòÃk"¹Ò« —‰†íû¦ÃnÌ›±Å[cÔ¡1aí‡)æ€eÒ|å“ñ[3ç,—NÓ?ëâo­‹ZUL]ÔÅhÕ¡~LòÓeô0>#e®sFýu¢2¾K÷åñ˜‡ÔéÚÖ>þlVW_Ø—CyÚÙÈ^êæp} cïs£±Ÿ__¼f=îBôO¹Ž€VœîO¤G¸LIc)(“f “q­ÂÁýe ‘#1+×2'JûÜW)&¿"Y˜‡¬¹ëAžEÈú÷µ0ƒ½ÎN ñkž—8î¡uz‡¤qøšÇûÔQÛÖ l¥*+§ê (÷uj&g­À³`ß 1¯Ç¤8™Ú ´ëÔä×öEê‚&‚7Ž&üûÉO+ Vo}Wžòƒmï\_‚†IIÕÑ‘4¶•Ý´=f  5ÅÙ‰²ÇVA¹Ù@AY;up=…í¹©Ê£í1«Ç.\|î"!æi?å æá<;b(!˜4E$ìzÈòÜÂíÜðº)«ô`û쌌O!ôH\™§g;$%1ÕáJÆQ\É…BN¿ñŒE|Œõ-2jÌϾ1såÂ>A³EÅËdtš&# ±+µrXŸv{W?Õ‘‘J°W(Ýã *”„cmç‰ÑÙv…&4 ùRXuñq @àÃ]j„šoêØí=vìÜ+õظ±O«^Шz1+ n•¾¹ÒŸi'»×ouÉU´ $ Cöµøe^;[„º<ªQÂc`ƒ†é6 ¿Plá7þ€‰á‘§ëëY?ÉQ°v×§mX½j¡(âBÎïS„´ýCÏÚž}üMYËÊ™àCÚ$Y^“Ùb½„¤+[ÿ9Sõk|੪_‹SAHECu>h ðÏ dïhBÄD ªœDZn÷4$\úZJ…~†bzd„àU‹³w´q} 3 ßbñ1Å?¶ô\]o¤ÂšQ7”2*HwÊóß“Š9R³â[£NܸI”àïab’*Cæ«òìC¨ £aô¶Ö»dç€Ùpº @Êœ»Þ—÷È£Oœç¶™)XSµÀX¾ñá'X;Ä:Ç\ÈÐB f²×-ÍC[ñ¨?)Fî¸ô¤(Á)Wk¥ˆa,x¼jÙiÕoc/ך°HʾçMLýh#„pñ#4Ð*ÕÆ|º/³ÂFðrÌnïÛ„xÀ vû­Ä>¶8  <û#Ò\ÛWSÉ:&÷ñ ”éP=5Fªm¹Ì-Y004’ýÐzÆ& Œ¹ÀàŽG#cÞ#O‚ÁgO®ŠÁÉXoolºüa|:ÕÂ6ՖͰe ñ¦•ä˜ wiÕ–óÎ<1¯ïN+—ßï’:=| ]ÉË»Õ29gž·¦âhg E1+ WcL-Ýêà7þ€‰h~„wÆ r!±h4$`”ÿ;¨¥i!èˆC€Þ´çÚè™ÝÙ¼Ús<%Kjï_P{Ì€( ãžÚË%µßeÍ}öÉWüe-`Ü£èRÝE=à¡ñbA|° zÀÁÂÞ_É~±z¶`>)äÛuûh¡q/c/œ2ï,8¤ÕÛ›wq;+t··㎀¸#>ÛBt8RærPôçd`ÕXÐ"Æ=ûdÂÀ û=²½8ÁD¡ºIvyz¡ØÄA\ ÏyZ±É¾$Žp<ŽöÅQ9qüˆWÎÊì0)’Æ3çÀ»ŠPýä’¸6+pa9A,bì•ÞNSîü<ÓÑSJ>œ*`ÃÒ­aê‚°ò\ª¢^Èã,)÷åÝ™$›øÙêÍJÍËd)i5¥ O½Åȸ†Ð„éÿÍ-F&A^„ˆn1v`¿ð£þó-ÆÏ~Å…†e·XÅs7§$l6D«XÏ’L^wð1>Ÿë£uN_wè­Mµ5ÒÆÈLb‰ñü¸‚ÓÏ<ý ÎùXåå Ø‚ÂNÅT÷Ùz¡HÑÂ/¬xŒw®ÎÈ!±Ññ€¡·PKÓ‚½åM˜?íÃ]Y§s&ßbXŸvÇYz ³×Iž“þ¾¯x‰°é_ÑŽ£¿úÇ<^èÁ(ƒÐÃÿ¹æ:"êEQ vXÚÀãkó‹—¦M)Ë¢½ó ½mò*ÝÛ†¶N™S`¦¯¿îNI1¢mOJÛÐI®‹l^•ŸoÓböî@KšÇ°ÿÌËÒendstream endobj 3019 0 obj << /Type /Page /Contents 3020 0 R /Resources 3018 0 R /MediaBox [0 0 612 792] /Parent 2922 0 R /Annots [ 3022 0 R 3024 0 R 3025 0 R 3027 0 R 3028 0 R 3029 0 R 3030 0 R 3031 0 R 3032 0 R 3034 0 R 3038 0 R ] >> endobj 3022 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6784 630.1719 243.2768 641.0759] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) >> >> endobj 3024 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [439.9104 495.3723 478.4757 506.2762] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3025 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.2947 471.462 234.7288 482.3659] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) >> >> endobj 3027 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.2929 427.2469 282.8582 438.1508] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3028 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [327.3512 427.2469 350.9227 438.1508] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3029 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.1627 409.6225 397.7343 420.5264] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3030 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [309.7048 373.757 348.2701 384.6609] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3031 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [416.4869 373.757 440.0584 384.6609] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3032 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 361.8018 193.474 372.7058] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) >> >> endobj 3034 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [211.9046 299.9624 235.4761 310.8663] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3038 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [303.1944 125.9131 326.7659 139.8608] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3021 0 obj << /D [3019 0 R /XYZ 133.7684 692.1046 null] >> endobj 3023 0 obj << /D [3019 0 R /XYZ 133.7684 599.4374 null] >> endobj 2923 0 obj << /D [3019 0 R /XYZ 342.2643 474.6151 null] >> endobj 3026 0 obj << /D [3019 0 R /XYZ 133.7684 467.9751 null] >> endobj 2924 0 obj << /D [3019 0 R /XYZ 198.0568 364.9549 null] >> endobj 3033 0 obj << /D [3019 0 R /XYZ 133.7684 358.3149 null] >> endobj 2506 0 obj << /D [3019 0 R /XYZ 282.9475 303.1155 null] >> endobj 3035 0 obj << /D [3019 0 R /XYZ 133.7684 296.4755 null] >> endobj 2925 0 obj << /D [3019 0 R /XYZ 162.5898 229.3209 null] >> endobj 3036 0 obj << /D [3019 0 R /XYZ 133.7684 224.7381 null] >> endobj 3037 0 obj << /D [3019 0 R /XYZ 133.7684 151.2182 null] >> endobj 3018 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F51 914 0 R /F11 844 0 R /F14 944 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3042 0 obj << /Length 2626 /Filter /FlateDecode >> stream xÚ¥ZmÛ6þ¾¿ÂŸîl VøNqQÛ$M›×Ë:‚4[»öŶ¶’œíþû›!)‰z³ÜÁF9çå™!e:#ðÎ(ç‘V±˜)Ã"J„š­Wdvƒ?\QO´¬©–!Ù¿WWÏ^ 93‘QLÍVw!7)CÙlµù8g"âl±¤„ùÍÍo„°²¸¾~ýâÝbÉ$tí“¢pÍ·é]š/hîÊmv*Ö9äyRÚ„‡•vÙfw÷´sˆÆÀõ Õ튪Î7¯_Þ¼¹}÷˳ÏWÏá9šgŠh(•¼Ï“‡È2KF…36whÜ âüø?ì«@÷æ<ùó}Z~^oÑè×ÐoXU…sÿ’¸Ç¹ÐeÝ‘ØméUGZÓ]«'N`CеN UDÇ"Œh=ÑÚêÅ¢Ðí „Eêܦ9êJk¯4`ÛûçBÊyáPS¹-q`p“”‰ë>¤‡/VóÐÞfûMá<m)"@oKn ÃÐî:F•qÚ)·S Ÿ½*έÊbsrŒ%iW“0•m.‚÷ø ¼ çÍi ßcï£áP}Yhv8¤Ç²ÐÑA’ÑLO¡fHv5v¥’ÍA¡£öu#âTYÁD 8«†çT¹åé—á„¡r«Ëw˜?]zÕ–§šZVãõGÌÛËÖV²ñ]é5’)¸âH}±fjú û|Ç .ƒ'ã ÕÔTSëBÁª5á­u]ÁUŒFXÜFî•Mº’Vnå^ /ؾËN6[Co}ðYV“üá žä#Dw×JÊôžARqj®O,¿¬Ãwì÷Uê"m(®ÓÇX4â݃ œ_„3!ñœáZG±ŽE gÌßÀ™×»¢Ä4·²“PÃ5É8ñ<Ô„dg Ët­‰ƒš­•òÉGÕû!ñ©{zbõãÍÐSÑ/à Ðã;V‰ &£]ºñUQM,‹·mc¦½ì_ƒ° ˜˜]ª™š~JÄßQè§—\° ÕTTSëÀ&:ªiCÖ Òô0Á7¬†ðЃÝöºÊz’‡;X¸>ˆÄu88â,$xx_ ÝÖÀB4®~ØŠø¨<ËO˜W2–—žgwÇrˆ ^ŠÄì/S¿º{»GWTg‹J¿Äp…Kø™©“0Ý–Ã&"UÞ-£+ÈóqÛ?nÀ¹›JÕ, Gr°F=BÇÓPÜ>nÓŽl.½ý~Úåéf> endobj 3044 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [307.9356 642.1271 393.5339 653.031] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) >> >> endobj 3045 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.6215 630.1719 351.2012 641.0759] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) >> >> endobj 3047 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.541 568.3325 262.0165 579.2364] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3048 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [331.1367 568.3325 353.6122 579.2364] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3050 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [330.4614 524.1174 354.0329 535.0213] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3052 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [247.0424 426.4124 270.6139 437.3164] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3053 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [337.8013 426.4124 360.2768 437.3164] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3055 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [283.296 352.6178 306.8675 363.5217] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3056 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.055 352.6178 396.5305 363.5217] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3058 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [335.6198 278.8232 394.1996 289.7271] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) >> >> endobj 3059 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [411.5743 278.8232 472.2762 289.7271] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) >> >> endobj 3061 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [287.7193 151.5387 311.2909 162.4426] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3043 0 obj << /D [3041 0 R /XYZ 133.7684 692.1046 null] >> endobj 2926 0 obj << /D [3041 0 R /XYZ 355.784 633.325 null] >> endobj 3046 0 obj << /D [3041 0 R /XYZ 133.7684 626.685 null] >> endobj 2927 0 obj << /D [3041 0 R /XYZ 381.9456 571.4856 null] >> endobj 3049 0 obj << /D [3041 0 R /XYZ 133.7684 564.8456 null] >> endobj 2928 0 obj << /D [3041 0 R /XYZ 263.6204 473.7806 null] >> endobj 3051 0 obj << /D [3041 0 R /XYZ 133.7684 469.1979 null] >> endobj 2929 0 obj << /D [3041 0 R /XYZ 169.4642 399.986 null] >> endobj 3054 0 obj << /D [3041 0 R /XYZ 133.7684 395.4033 null] >> endobj 3017 0 obj << /D [3041 0 R /XYZ 151.7607 326.1914 null] >> endobj 3057 0 obj << /D [3041 0 R /XYZ 133.7684 321.6086 null] >> endobj 2246 0 obj << /D [3041 0 R /XYZ 225.7027 198.9069 null] >> endobj 3060 0 obj << /D [3041 0 R /XYZ 133.7684 192.2669 null] >> endobj 3040 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F57 903 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3064 0 obj << /Length 3137 /Filter /FlateDecode >> stream xÚÅZ[Û¸~Ÿ_á§Âb®x§El.»Ùi›Lчl°ÐØšumiV’“L}ÏáE¦.–¦(ŠE01EžëGRt•À?º¢œ­ŒX©”šµÚ¯’Õ=¼üáŠz¢mGµÉ¾¿¹úî­«”¤Š©ÕÍ]ÌM•R¶ºÙZ3A8Ûli’$ëW¯~NÖ6××?¾þÇfË$t²¦qÍù]^o¨Yçå.‡š&rM©Ü|¾ùéêÍM'P4%:QÅùíêÓçdµéºJO\}…‡„Ð4e«ã0ˆRzW¯þÞ±ŒÞÚ¡SjZ¡S9¡Æ&Õ 5a\r«†yq|<äǼló½[oQWÆ’”È”ÓóP+¾ªï=͇H¤Ž~‹4æ‹"­ñæ[‹J£IØHšZ:ª%FÜPrÙ¸2™ý¤„Iœ¦3"¶SK½20µâ}‹pI(Óæì˜,¼óˆ‰uU u˜éûêõugû—‡ÃŸ7”®süï©qt?'2ÙlÁÛ±E//L$r)Â"²9×¢”™8¢hΣ²ÃÁ5ª;÷Û>ä®ñë†&(·tr;ïë“<ˆ?XÑGÂNpóPà ÎÖÇüx 4Ðæë»S¹k‹ªtoPˆÆ½Ì/Û‡¬uï²:w]eå{Žy›¹®}Zw•ŸcWNÇÒs Å1»÷\ŠHÙ¶“š’TJ—xP¶›-9>}}(vÐN¼·•û½ÍácV·®µi)º¡(–#C©°ÏKeéoÿ•ïÚæ3Ùl…Òë—‡¦ò‚€"Ûª~ê‹K­¸Yi™1K¸‡.¡Çi±`vì Cë¼=ÕeîŸnŸ†ÞÈMtjÒ•Ô”#ÕB~éè·ñ€±_ŽùâŠîóöG·^Œ‘©èàR‘B¬öåDGGµ$…4Pô@ŠN9 Î+§Ú AsQpo¯Q«çoÙ®µö.ARŽ ?v«,©d‘¾b³ª}8î°¶åMˆ³Â·¾!LÏ‘ÞE„'°`?F»˜*Ò"ÅJJÈó<KfuÔÛ˜|Bž¸ø‰¥¾ÊZÛq_ÕEÞ\²´Ðh…L"ŽJ¬§ZmÌ­«%°:n×ZösØûªEBâöÉZ]Ng2Š1x±ËJרÊÓï‚lÑÖ§:ˆK$½óìŸýD@_”÷/ðÁ¬÷ÕéöÛ‡C°€õ6”ù»·€<âh2Ü¡˜%Vò?:’ž ÜD’z¨S¼ÊÚ N  5ÃÓýi‰Ñ ¯@A c Ô^~*JogÈÿ"YcBxæ¢+åëÛªB§NäÏ]vjr÷€ž;„’“”1¾’ ä0ûÈ ôÛxÀÀñE±ß¾»ù86‚@J06žji^À…œƒÞ{óújj•Pç;”Æ)j_¹NW¡h·Ú{u3¥õ¾/z…nK®JÅô¸à]ÆS ƒ ÏƒSí š‚œLŒ1´¦¸GSm>޹aì– 5tïÞÖ+'@%”ÙÑWü› ~‚‘Ôдïæ=†)1 ö*Ž ÂyÀpçE Ï!‡ñ„. ¸Î6¼“?¸95õ$a°ò³þê²Å{»š¸`ˆ ™Kh®ýˆ›Ë¼·Ì€0Áû1 +C8Á™ °L"»Œ1ƒT…a$ri/“Í U¡(è^Š©bÞp?Ó¥^Øl ¿Íc¾+Ð@¹áCZwuuô}¾« ºˆƒŸi_4¿Žª¦bD Ðw'äBÝ ôÛxÀDåñ½”‰8˜‘25”`€ÕÒ¼¶7ʰþ¼¨½ƒWK×Ðp8õ‹¶q/X³Ã)÷•”DâijB%åÁ-¹¤ëbÎ5«2÷ ʯ`Z«q}C5äZ«!>øúåŸ ÎØؾÝ__Ï—Jjéý¥Ò kõ‰«ÃòpRÁ6ðÝ[{v9Â0S"|™w·(Ö¢s±ÈPÂÕt¡5H'Š=4 ù@µ$†¾‹áöBà_o ›0¦S±Ðe»KW±5Œ‚¤¦B"ôY‚'>}Žm‰Ó¤i0NvÀDóäfp¾ ½qSÛ}¯ñx|Ž˜&•z®…:úÕŒù¢˜G.€7À ¥š·HGµ0-ÔP"(¤½i÷'¯{Üð¢F2÷øKp™/Euj|üÒœ‰>ÌðIÜÂäÃ-³_xm÷2~Ÿcöö<Êçmê÷ÓØÕ¥(6³È†´¡Óu•V¯#³çiÀ2‚¤I½d5O¾é'Œ6äų́鵈3´a ZP¨Ð}1º¨B…WNGuxk—Ó¢¸àƒnÙ…C0¸™-óËØQ$”’QÏ1ñ zä㌠ŽâÄÿ< > !kiÃgÁcŠ‚ŽÀ#0œBôh”«h_ÀrU=U‚¨3:³¶ž(€NTE@ïg²Å%MLt ­±Øf ÀçZ„Ì/—k@í©ž]­6’vhxÌBÁæ_±ÙuF¦Ö [·3|ðð¹™ÂφÀÆ=?s J0ré¤7&›©é `:Ù;éÕÂ&DøirLš;´‹=¼ »qoÜuq- -·¡uWà³™[‹ó˜qw ½l|qÃ~¤©’çeͧêŽ~˜È’#¾—ww‹Ó—àâ]Ïü¼g3 Hˆ4¡}ÄGòå>>ÙëÎóŠÚ5;ÌÝôOÞ;¬ŸZ =y¾ï6‹6>œàá ´Ý@h=hsûMC ÝS£ÚcJ’ ižU¨bâ¹B•$à †õ+•|Î¥Q)¯‰ÀO­I6z}ȧΠ`ã–©û é”Od$ÆðÆr˜‘€ÈÄÊN wÓè?å¡(ÑJ^Ôí);|¾¨L–|L/œŽÕ“ÍD®=~qy+vàï?¾zù—7 ê]°øÓðÊ‘½{i‚“ˤÉ=…žÕes&‡„h*ÊöMA£Ã˰·(—åb13𩟎“7®Ûy+n6üUU·ió²)ª²A·6:€eÓ] ßï]®ÄN§GÈÉN&¿{ñl;½Q¤·íÔÓY™<1v#„¿þVË„\.å/® w#ø&ànû¶s°œØØÊîæÎÂR|¾;A¾óã»»1 «ëì ›ÚV³ï¾ÖEkðÿÝç“zÍ®.nm]͹mœiÂ%$<ÀvÅ5^»­‚Îúð` mLО^¿Âñî¯îᘕ¸vFc3ƒ™²ÛƒÑ7cdÅ £R›Šƒ¿•Œ(ïÉTÆÿçËïß½ÿá}¥=K`©òCGp(h͊ң•þ—¤0"$Y<ºÇc{®×Ûp¤,]‘ŸÈ¾°·L?ç•$küÜ徨eîóÉ^N¥rêˆ_@ÐË¿gÐ}ÕÒ¹Z ߯ôE~ȼ-ÚÇâÛÅk'Å1wË$Ãj¨–P €5HP{oÝv'JžOåýžËW}vÎ^(é ×çó;‡“tê† Ûahü;¯+÷¶—í}ñmQfÁÑØúxr7”á’†ÜzÚæ„×ànâÌ¿ëD°³î§ÙãA‘úr:Øýµÿv*ì…´pç„Ò¾}¬\J…—Þï„«„>ïAÿÉ]"àËÏê—ð…‘cö—û¼ý¥8ÞO&Š_P*{–fõ‡‚Bû,éz|cŸ·y}ôjì @ÑÝÞƒ¦€ªÄ]ìv§Ú¦s¬ D±È]n·lÀˆácôÀ¨¨T†‰•)ÜÚ™Ã@¿LÔä_[ØŠ¶yóm—?N]0ÓT‘„Ãή/ʪ%FÜ¢û[øJám\uÿ»Ï§0ÿJų?ŸŠÌ|>Õ‘õ?ŸúÛÔÇS `,&õ¾,Ã;Æ@µ$ÁˆÛg7 ±ÏÕD _’cÄ·¯‰wXžÞ|›Âý öâB‹™ žˆqªföû4µîkôOo%1:MçUÞQ-,uÌmþ{5Šß–i?éäÖ#Áý,1‰š<€?Ÿ þç¯#p[RذÄßkÂFYsÓƒæ`T®„;þ!/ó:ë‚,€—›MÊÖw¿Îw®¡ÜK(u-ª®)»–þÉ"¸ƒ“ô¿ly]}{ºÏË‹»ô Z¤°ÿ‡² Âendstream endobj 3063 0 obj << /Type /Page /Contents 3064 0 R /Resources 3062 0 R /MediaBox [0 0 612 792] /Parent 2922 0 R /Annots [ 3066 0 R 3068 0 R 3069 0 R 3070 0 R 3072 0 R 3073 0 R 3074 0 R 3075 0 R 3077 0 R 3079 0 R 3080 0 R 3081 0 R 3082 0 R ] >> endobj 3066 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 654.0823 277.0194 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a16730a075858cd50bfa3daad60c0a1c0) >> >> endobj 3068 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [306.8027 568.3325 357.4919 579.2364] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) >> >> endobj 3069 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.5438 556.3773 473.1421 567.2812] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) >> >> endobj 3070 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [252.926 526.7978 275.4016 537.7017] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3072 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [361.6475 458.6723 384.123 469.5763] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3073 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 429.0928 171.3374 439.9967] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3074 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [383.1403 429.0928 406.7119 439.9967] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3075 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.7288 417.1376 411.2941 428.0416] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3077 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 349.0122 478.4757 359.9162] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3079 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5947 204.1034 464.4747 215.1169] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 3080 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.6861 156.2827 197.0303 167.1866] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 3081 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 138.6583 268.7205 149.5622] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a75f86db856e2cc7772a97d9ded3a633c) >> >> endobj 3082 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [288.586 138.6583 386.8761 149.5622] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_ad0531bb4a797027e6ff77517d2e09cc6) >> >> endobj 3065 0 obj << /D [3063 0 R /XYZ 133.7684 692.1046 null] >> endobj 2965 0 obj << /D [3063 0 R /XYZ 133.7684 655.0785 null] >> endobj 3067 0 obj << /D [3063 0 R /XYZ 133.7684 650.5953 null] >> endobj 2966 0 obj << /D [3063 0 R /XYZ 154.8491 517.9957 null] >> endobj 3071 0 obj << /D [3063 0 R /XYZ 133.7684 513.413 null] >> endobj 2967 0 obj << /D [3063 0 R /XYZ 202.2908 408.3356 null] >> endobj 3076 0 obj << /D [3063 0 R /XYZ 133.7684 401.6956 null] >> endobj 2968 0 obj << /D [3063 0 R /XYZ 446.6421 322.5858 null] >> endobj 3078 0 obj << /D [3063 0 R /XYZ 133.7684 315.9458 null] >> endobj 2969 0 obj << /D [3063 0 R /XYZ 133.7684 139.6546 null] >> endobj 3083 0 obj << /D [3063 0 R /XYZ 133.7684 135.1714 null] >> endobj 3062 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F51 914 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3088 0 obj << /Length 2477 /Filter /FlateDecode >> stream xÚ¥YmoÛFþî_!äÃU¬Í¾p_h\Hœ¤us½àb\[´DÛD%Q%©¸¾_3;KjIS’{Ãàp9;»;/Ï̬Ąß˜¥˜5.™˜T2Á3Y¬Ïøä>~w&Ó¼ãšÇlooÎ^Hô$e©‘frsKÓ̤BNn–?Me”œÍç|zyù3粩/.¾÷e6—†VY]ù9¿Ë«™pÓ|³Èa†\O…0³_n~8{Óm(ZG0ËÀíü~öÓ/|²„ÝÿpÆ™Jž< g"Måd}¦˜$„hGVg×gÿìDF_ýÔ15$ֲĦzD ÚN¨Á¨¾´eRiµWƒy&èâëL&Ó²XÂÙ¥ëkæâ¢Þm·U^×׋lUlî‰çg®ùlžh3½-Ëjåõ«â•SŸHpǸdSÞÏŸÞ¯ršÿ-MÑ.²™‚k.ÛÕ.Lñ‰¤eiê\`‚mˆÃ&ÑšI—ÚSޱy J9êHJ3!­£Ííª 9Jy7“zzG/Å:»Ï‰¬;mÁK•Ï„žÞÏô4«–«¼u²2Lk¤·×—oþþžèl³ ƒÿ~ÿù‘¿¡½¬§G$Ë*ð|ÅMd«]^£6à„à±ÌÈ$ñ»ý€3Ê*hSħ³Œë¤SyémÔʳ÷”!ãHbÿv6WÊyCið EƒÖ+¨¦ï†ð%hÉNCørÛóïv05pTy¶|ýXMDÝ>µê¼iºÉ¨?<6ø#˜È88½`©†“â6qìuŠÄòªDÊà™ýˆ`¼Çc¦¼Õ¶ù¢)ð_Q•ùêifô”AX3½jˆmYúmõO7D¬Ëeq÷D´72ÊmÜÛÐÛyg8¿uÂ+²<ªeÄò5¬¯­˜^ÝÖi–J?aX“¸Ø°` äÏVµ·®Nà àC«Q é@ù¢,V+¢nÃ$PhSVy˜Ù„y…PãJõuñßg¡@ÛDÚÔC“Ñ£€3T­S¦Oúj_©»í2kòˇ|çù­Þ­cT…luØ4€¹I”8l1Û`Ó r‰”©?ílK—ß¿¿üxýåÇ—‚Ðy@°Öaà»77o:~úEÝÔ°+ÂÀ¢¬*ˆ¹14ûW•m·9Â…HnAÎ Ä凫›ë«Oáón[nèlð+ñ×Å*þ‚œï† ˜`Ùr½ÝæÀ;y8ˆFÂ4„¶…o>èõ±hˆêø½†¶aƒþCæÁÄíY:µHô[†gPâ‘kñ`¿GíQéH 2ã¶D.³Í7X54ð”74¥3nkÚ |Þ”áÃn;oÊ9jÚÇîê°ƒè±k'Ò0À2  \sÎׯOÕ}àù×?-ÿ<žðÜÉŸËE]øôæ$ÔK(¢—¶¯2ŒO›Ã8´ KA¡’8*À©Ñ0l™æ×HZÇ”IM' Þ{­Ô ÙMÝ@"ë*€rT'\EªyìÏx¤×l¸a%sZ¸þ†*·c?¾õgR}©Q4õûª¢b£·0'MrTiÓ‰•ØT´½•É/ù6ÒÜ=!]­òeÐÚCî¿zĨBÆ‘R1ÚAÆi±hSŽ ØA,6ô|ã\i,!zb4ƒè^”Ÿbæ#ù)IRæ,”ü.䧺Y^\l³"T…".¬‚2ª-þ:R„§Ì‚åC±iÎ)}5" –†màþÛ)qƒTù5¯ „:™*ýØ¢„P9¬ãZ'ÓY3f;’5hD¬ÈÀ=SUXùZOî Ò>h€DêöaÇ?'ŒÈPn@¸g@ÄΩ¿¡Z®S˦ŽIclÙÛp~Ê ”úCeGãQkz¥¬¯¬çϪÀïÕ·&ŠrfOåØÜ&aIêqûåÇ×§BuÐ&©AaÁU(,€™XE…—qaŸBa±wƒ¨¸0;ˆ€l˜µÛ I¢$®:BY¾4†1Hì3ɧ£½füê[«tªÅœ$€0Ouj§·ü÷õ½ *ƶä¶©A…—´e›MéÐV§œë‰r†AtžÊè-û<âIèC©¼½» é­~ðåèš]Ì+ˆ5iC¥ìíæäs»ÁÚŸä;@䛦¨½·†r{kà—ÐC9i¼Îó”½ÂË:ÛÀL¢ÉY‘ØU˜ÖÆüe™7Y±ª-ÙXY*`ŽÝuÛ½c‰JcÇÒE*˜ÑFôóEOƒ O£|q S@VBõ3Eßê4¨ˆãÑgð~½Œ{ü“m8 š¥ªCUÝÆŸ®óõ-…ºóí.<0>} §Ǧ^m¯’AeXCà]ßùÙøüô‘ÝJB:kù<’ý?…J(ì#¡‚>¼á9t5 µ?ÝH`X¦vÊÇì_ /›W0¡îYu ˜|>hÑæ"° Æ Ã{ Ã£Zªé5x‡K"h¹˜HÔ‹*¢ˆ÷HA$!g« {ú’†Ý7 ÿs¿.SŽ;Õ¯ÇlGPHZèiŒ% :˜Èow`^Jì8ÿlk_íÈe{“'Ueì¶üç}oDœ³ÔB‘äÏ€ã`ˆÊõ* b 2¼müàuCÕ4ÒùuFªÚ†H±À±Ÿfæü‡cSسæ«ïò 䣮Ö#)¯F:<Á5³Ü&/ùÙF8ëÛÏã`qÁJaÀÝyøÑ&BŬËXtnÿ‹×ÙhmôsmBWâ»Nq:¾Ãï}.\F"Q; ³Ç3»~HØÐÚp¯KéLŒ3Éš¯B£‹bKzî꼪‰g‘YˆÈƪ€í*[äåj™‡Ã»‘7e?m²Žï¡zE;¹\æ‡CG(ÎŒsòpèÀæî?~ÿËÿïßTcÇá¸bü«1¸ˆU®ç7.eÊ$”b½]²®®iÕq3Kåt×¢Y¾ ÂÐCrª$a.„¼ÐáÍÿÖ¡]mz» pö®üãéãPCÓn-RØ kŽ6endstream endobj 3087 0 obj << /Type /Page /Contents 3088 0 R /Resources 3086 0 R /MediaBox [0 0 612 792] /Parent 3101 0 R /Annots [ 3091 0 R 3092 0 R 3093 0 R 3095 0 R 3096 0 R 3098 0 R ] >> endobj 3091 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.5748 492.7351 478.4757 503.639] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) >> >> endobj 3092 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 480.7799 176.8265 491.6838] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) >> >> endobj 3093 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [317.8556 480.7799 355.8227 491.6838] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 3095 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.3236 424.6096 196.8951 435.5136] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3096 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [454.9042 383.0749 478.4757 393.9789] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3098 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.1877 244.5525 282.7593 254.7392] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3089 0 obj << /D [3087 0 R /XYZ 133.7684 692.1046 null] >> endobj 2970 0 obj << /D [3087 0 R /XYZ 201.5538 581.6379 null] >> endobj 3090 0 obj << /D [3087 0 R /XYZ 133.7684 574.9979 null] >> endobj 2971 0 obj << /D [3087 0 R /XYZ 300.5918 471.9778 null] >> endobj 3094 0 obj << /D [3087 0 R /XYZ 133.7684 465.3378 null] >> endobj 2972 0 obj << /D [3087 0 R /XYZ 431.748 320.783 null] >> endobj 3097 0 obj << /D [3087 0 R /XYZ 133.7684 314.143 null] >> endobj 2973 0 obj << /D [3087 0 R /XYZ 133.7684 223.078 null] >> endobj 3099 0 obj << /D [3087 0 R /XYZ 133.7684 218.5949 null] >> endobj 2974 0 obj << /D [3087 0 R /XYZ 317.816 137.3282 null] >> endobj 3100 0 obj << /D [3087 0 R /XYZ 133.7684 130.6882 null] >> endobj 3086 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3105 0 obj << /Length 2397 /Filter /FlateDecode >> stream xÚ¥Y[Û6~÷¯0º@!1CR¤(¶ 4Í¥S ·‰ l‹ kKINfúë÷’’u³•ÅÎ<˜"?ž;I¶¤ðÏ–, ‰Šb±Œ4'ŒŠh¹=.èòß-˜'Z·Të.Ù«Íâå[!—šèˆGËÍ®ËM’H3¾Ü¤\0\­¥4øá‡?)åuusóãëÞÜÜæ+AƒÏ+Fƒä¥ožj“WY‘oVJÏfµæ&’ªrÍ;³3åŠÅÉ·0ª‹ÆÔêÃæ§Å›M‹¸„E#†x?-þø@—)lï§%¡Žåò |P´æËã"0‰1Öôï¿·,;£vꔜ„RD(-'ä$Õ29Ea_NRʰ•'ðϼ°>¯¸Š,]­C¦‡¢ûRfµù1«ê¢\­ãàÙýI%]­£0¶E^ÕØïë2ËÁ·(ª—oUØÃ™",’68öž)(ÅsýÎM’qG×k¦B"D¤¡Åˆ–’ÙÉß¼3¹)³-€€8|ÏîÃÁøÆóêÉC("%•l‚]Ö(è!Ô<ž3Ô™U瓆ÊCÂvºV¤ÎÎ÷³oðãGeñD«ÁþIÄ…SÝ÷ '¡‚Ôì¬)Ÿµë J°ì“ÁÏ8Ø¡X±¿ÞרÕÀhV¹¾‡ gSH°r×…j=K{ZÉâL/Y+7Ƕp¿§Ê”•£Ù&ž×ãɃKÚXý9g}<$[³/)¸™Ýõ69\«.üï>óÞ¸;åÛÜÕ}ey3n²fr‘rQ•2Ž`áÐ:'%\¢6ñgR¡]â+%#"–QߣøÈ£8‡õúFŽÀy“Q§û• fÂ}8±Lxë…5¨ÓùØÐ9÷1¤gçÏb6ÊbOôG–²Ü¼p>ô9+ëSrøpY¦‘&RÇ|Æ=ºdWÜC MB[ •©[ýºÆ«¿¹ûÕ5ÿƒvoPtÏ_°Y”©èx€µ˜Â[FvLŒ7#se<…ž”¹u‹‹SŠ]cs (È<ÏÞ),ò·V¥Ñ4 KàƒŽÃ4 @ï•ëNòÔ5ì*nÔî§IIh€Sî­)¿dèH˜¤~2î¤Yèô˜&µÃd‰¬ØpÀ‹ ›Sbë9¥ ªÖ³´ð’×2Ø›TÊ€€}Š0Ø4#¹Aqô ²ÚÉ>\¤IvH³3ÛÚìNõ©ôóýö±;)ËäÙ5KXï¥ •gQ¹ÔTÛ2»7éT,q¢‘i£D¢\ïë¤N\×{ˆ1^ÝÊkV5V^úövóþöW×{Lr0Øt†g½Zúäþ`\³¯7Ç¥ Zê´&§Ec`y3.Dû}÷Ëí/ïnœ(n°ŽÎÊiE(1 ×I¬—÷k%ëÆÀ‘zYÕæTª`]»Êæ§(#;·çŸJ¥yx#4ñzÉò4Û‚Ù¥Óý³ëFlƒˆ!ÀÇ¥†_ƒ 8R>x’»niãÉ×]úqäqE€÷Yý˜=!Ì©Ì."¨#TT}$ÃÒª¡šEDp6@PšµU$˜ '‘䪯v0kü®é ×ç-‘w|K² £õý6v`ã/Sn´ö8ØÁñ>Ë“Æ xp"*[ç4«úC0pr]ïÞ7RS›òèňúÁ0@•s@ÑÖ%À Ê I6p@Ûí©´ñ[4Ú¢.ä&˜;6 D«ç )'£Ä+(‰b.Àò)”þ˜¹ìG-ýº;a"øÚL–ÕÕ›§­ylXŠŽ @Ö Õ€7àâá:‚š Î.ý4{g²ããÁMîâ+  9Ÿ ÆIÌb5#¯–~Ý0†;æ‹ÎÞoêGX"(Ü0¨÷± ÖRÍ!qC/üy"OG«Ç€8_+‰†~Ljo_·˜žà¤íò DÊóT( •PM!û÷‰Ìµ)Yä)6àj¯Üªm–mV1hàþ0²NΡh¡àXWwßRÍàÒ‹ï!€l1\4E›úÚý·ôsëøâú¯²üòþ#œñ™ý7Ts븵yvt+F„i(z¥áß²|{8¥f¢^€h«ð"ªWsôxâím.§Û„2`Ã5‰¡èÖƒM¬5ƒ“¡ê—·ùÞ”YØ×[dÉC™Á…g > ¤ ˆ&—3<'“g\|2`”ãå$ ÞSÙCÌðh–Ÿ0‡hM#;ØmÛWfŽïxy{älùºXü¾XžŸ7ÖZª±Zò›ˆg!Å×ÝØ2HŒ4”|æÆ/B£î þ›»fÅ[nL@?›ã½½ˆ†ö[^»o‘SÈA,ÓØÁ‰¡L3yŠ1 ;ºøpÐ-Ùl±ÑexM×â¤/5fÁ9²¶9[E!‰‚¿«¸×-Õ $.ðuÓ“•Ô¿OV\û[t@hº/ ÿôPe(Õ¿«Ë“¹ú8á)Œ„ž6€æÿ?v­…¢ÉQÖ}ˆVxï´ãÂÍ¿ëšÃÇf¥yÐ\“¿6[׈ܬÀ\‹E7ŒßHÿe/r‡AÊ Ï¿Z½.žžá´2ºukž*'Dö_|áØendstream endobj 3104 0 obj << /Type /Page /Contents 3105 0 R /Resources 3103 0 R /MediaBox [0 0 612 792] /Parent 3101 0 R /Annots [ 3108 0 R 3109 0 R 3110 0 R 3111 0 R 3112 0 R 3113 0 R 3114 0 R 3116 0 R ] >> endobj 3102 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1HDU_1_1InvalidExtensionType.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3117 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 189.57000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3118 0 R >>/Font << /R8 3119 0 R >> >> /Length 3120 0 R /Filter /FlateDecode >> stream xœ•PINÃ@¼÷+úšÙz f9ÌPÈb›D‰ üžöÅ"—ÈwÏLUOUmQ‘FÕ|}Upûp¹…²–°Ý°/³ ï E´†'ƒÅ:²FmÉrЍ#¥åª‚«ÉdQîwYötÿ–eÏõ÷ûºüÈûy½+¿êâw3¿.>!/` ÆSÐd\ [†öºšR+Õ4ë®aëÈ e 㾬ÀEïÉ%Q¨QSÁ+N/4¤%/Õ0±ç‘¡ùç‡Ù|³#Ggtkå#y7¨¶½í•¡Ä­îQ„­ÀÆÉq#ƒIdtNÚ´£äõïMÃ'áôÛ¨4¹`e^›ÂYJ‡ ¥“0PNŽ\‹pŠTÀä5…v®qœ(ÙÓù]ÜH@`„Xendstream endobj 3117 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161257) /ModDate (D:20111206161257) >> endobj 3118 0 obj << /Type /ExtGState /OPM 1 >> endobj 3119 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3120 0 obj 296 endobj 3108 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5947 475.1107 464.4747 486.1243] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 3109 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.6861 427.29 197.0303 438.1939] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 3110 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.5968 409.6656 268.7205 420.5696] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_abcc25c1d318581d9b650a784b799285d) >> >> endobj 3111 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [288.586 409.6656 386.8761 420.5696] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_aa6d47bd83e9538694ee7d4f4d70ef33b) >> >> endobj 3112 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 285.9948 173.499 296.8987] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 3113 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.4878 285.9948 221.3988 296.8987] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 3114 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.6864 285.9948 270.9625 296.8987] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 3116 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 116.0997 246.774 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidExtensionType_a3a2ca4ecaf262c22bbe5e75dde9e4c0d) >> >> endobj 3106 0 obj << /D [3104 0 R /XYZ 133.7684 692.1046 null] >> endobj 2975 0 obj << /D [3104 0 R /XYZ 317.816 593.5931 null] >> endobj 3107 0 obj << /D [3104 0 R /XYZ 133.7684 586.9531 null] >> endobj 1390 0 obj << /D [3104 0 R /XYZ 133.7684 353.1413 null] >> endobj 578 0 obj << /D [3104 0 R /XYZ 133.7684 344.9695 null] >> endobj 3115 0 obj << /D [3104 0 R /XYZ 133.7684 134.5965 null] >> endobj 3103 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F11 844 0 R >> /XObject << /Im21 3102 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3127 0 obj << /Length 2108 /Filter /FlateDecode >> stream xÚíÛnãÆõÝ_Al€ ¬fç~šM¼N @ºQž’<Èm D¯Hu½ßsf†ôˆ"EºZ°†œÃs›s–Qøc‚me¦'ŒJ­vW4{€Í®XšuP³ì»ÅÕû©2Gœæ:[ܧØÑŽñl±þ-ç’YÌ¥4ÿþûß)åM=Ÿÿýú×ùüv_Hšÿ³`4_n7ëÛÝò¡¼^6ËEadþå©,f\ÁGÛe]‡åÇò¾<Ìæå~»ZÃ’1[ü±øñêâã8a„C5C~?]ýöÍÖ ÞW”gUö(aÎñlw%$|Äkßl¯~¹úG‡2ÙõŸéIpM”t¸’Ä‚®† ˜&NhëAUk_jªV†p¡d§jÅ2 ªÖÒ«Úpb¥åY†ªþð¼*ŸšMµm9“¯š ”ÅXþ®˜ êò§C!L^â<—¨Qgóæ± ÀusØìÂúÍM!U¾i"̇ßY>/f’* Ô”ûº£ÔXÜ}ÞÞ•÷U Ù§õT®6ÈÆ O$ë NYç¥Ø•u½D›xÀeÁTNÆO˜;b †K¸B…âϰù&ÀA§&èTœš/“„Zf;ó„E¾.›åf[®Aná©^6A㣠2p'Õ”g%`ž5·< tDŒàƳæUóräBм©à—;P}|~ø°õ¶‹^'¯¯«ÕqWî›åÅx†„$3C ƒ8®‰áÒ¾N0a¡Hà|J0Î Á “ Ö…ãózBp¬'”¯'º$µ(¤õéi¢@£Ë…C&Ó:_¡îÂË.AÂú-ªçý Ç‚2G`fGV×›ÃÞÐáP$ÃE„¼«ªí¾·¤U”Æ ;ªPNÕ~öM8±o#n›£;°:â†.‡0Ä9k#ˆËÆÏ›¨xŸÈ_)Ø…Ø,­!̰~µâs "”ƒX¬Àa<B¡‚G…ÅŠà±€@Øö,pýæÆ*¸…JuÀD›´BA( b…»oÚ4 Jđۡê$Ñ¿¯NÊsïæ– ¢IÐÖzˆ X;2K(‡ã¿ä% ‡•T”PÆÆœ$‚µPÈàÏ—ùò°Ü• ÖÊ,¯s£"K?B©³ÀKÂíy~„¢L~““rTd¤ e/ˆ gõ1X G‹J¿8£Ë± bhÇÒAµì±¤ˆsºÔ×D3ÐáH©ßîWù§Ûÿu²3K„¶ºO< Â"€Öã=O N³]»líû”¡øÁ ¶÷—„ùnE ~-Òf%-PôEp”-TÏŒZLå˜Ë”_]NàÉ9ÈÁ­œl$Ì9M$W:ëÀ|)z×$¬øgPÀþª›M|Ž¥¯i¿…â"%ýµòbŒÑ½ÿï€_Û¹ ÈÔPh ÖÔ‚%¥Ä¨&(ÿDØtÄSA±ëEÃjè]X>AÑœ:žøüXB!pÖºÈFš:sª”ñÖ¥ƒŸà÷/ò{s»øe>÷Ujy¸«êò§j}„ƒäK­î±Ô·Új‚Iý ‰žââÜ­.£®|¯ |ßOÆ#ÕŸÈpþ#•´€ÒJ4>æˆRLTåÂAùÆYHÌ‹Çè ë“~пºoÏ¿ylMcõ2ýì¹ñá¡Ü—‡eãGeøå¡ÚµŸ–-²í6 §B_¯0=nËz>Ú(%¤žS'PRCÑË©¶.ßq®Îˆ* ¹L´š" Í®Q'4¡e%ã’*G¨ñêDÔì’¬-Ø´°é¾H;A7Š›’EyWÏÏãKœšS÷ªéA Ü6FŒ£\Ï´¹"àêWé`àv·, §3›Ç‰n>b{#Ëå=–!1*DJ­:Ëì’·B¨vØm Ì€¹µ~Ìm˜ûçdŒÏ>Âo˜#äË ߯åò[¡—û»Ù…\™l… 1núq0¾ªOOÕ!x?<Þ}j¥Wá6˜cPßj.CTúf³_më8Ì`iq6iœåq˜ñ—\%˜ =u»¼°¦…úk€89™çÅqd`,ÀíÊ…M³ôRm]Ýw/`ŽÜ|qÕ¿ùjÇc¶Ä…+gnÈ–E[w84ÄÑÚ L"¾e2dìfRª÷›éÚgè—Äí_¼¿Ý^®+ÈHÙKRš9ð4Žã*¯±± ¡¿[y3Œ4í*'„L2HwÁL~>Þ;n}OÞùS¹»+ãxóæ¸_¡Y_H "î„áœsˆet*÷0H¹\q;;°É€œ"<Ä® ¿Hˆáx’¹vÂÛ”¥žÖ¥#Z@›z‰ïY5ÁìÆE__TÑv2‹Õi;™…õ[t¿XãûÁj€ðηXÿ_vZ­tÃІ®ÿø.9µ ¶Ë)K/Ô5q$NM¼å …ÿá´°jK³Eáx~Œ1躌C~€ +¦çŒÏU|ºÇc퇨¨¼/Uõüj¹óbß(øÕÊþ†õ—endstream endobj 3126 0 obj << /Type /Page /Contents 3127 0 R /Resources 3125 0 R /MediaBox [0 0 612 792] /Parent 3101 0 R /Annots [ 3129 0 R 3130 0 R 3131 0 R 3134 0 R 3136 0 R ] >> endobj 3124 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1HDU_1_1InvalidImageDataType.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3137 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 185.19000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3138 0 R >>/Font << /R8 3139 0 R >> >> /Length 3140 0 R /Filter /FlateDecode >> stream xœ•PIRÃ@ ¼ë:1šÍcIä0p…,¦âW\,¿Gã%ÄE.”k¬eZšî®Q£Š_—Ü>%¸9‚Â9¨[öaYá]. €†I§Ác¾†n˜‘ )«> endobj 3138 0 obj << /Type /ExtGState /OPM 1 >> endobj 3139 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3140 0 obj 298 endobj 3129 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 574.6244 173.499 585.5283] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 3130 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.4878 574.6244 221.3988 585.5283] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1AsciiTable) >> >> endobj 3131 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.6864 574.6244 270.9625 585.5283] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1BinTable) >> >> endobj 3134 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 419.2365 398.7049 433.1842] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 3136 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 116.0997 250.6294 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1InvalidImageDataType_a3096f43465037a2be30e2c99ee9289a4) >> >> endobj 3128 0 obj << /D [3126 0 R /XYZ 133.7684 692.1046 null] >> endobj 582 0 obj << /D [3126 0 R /XYZ 133.7684 629.8725 null] >> endobj 586 0 obj << /D [3126 0 R /XYZ 133.7684 561.0504 null] >> endobj 3123 0 obj << /D [3126 0 R /XYZ 133.7684 538.6923 null] >> endobj 3132 0 obj << /D [3126 0 R /XYZ 133.7684 538.6923 null] >> endobj 3133 0 obj << /D [3126 0 R /XYZ 133.7684 456.8953 null] >> endobj 1392 0 obj << /D [3126 0 R /XYZ 133.7684 353.119 null] >> endobj 590 0 obj << /D [3126 0 R /XYZ 133.7684 344.8609 null] >> endobj 3135 0 obj << /D [3126 0 R /XYZ 133.7684 134.5686 null] >> endobj 3125 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im22 3124 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3145 0 obj << /Length 1951 /Filter /FlateDecode >> stream xÚí[oãÄú=¿ÂieK›Ù¹_"@:‡n¡H X/ÀCšN»Iܵ¶ý÷|3ãqÆŽôáè,Ò9ªTíÏßý’aø#a )©y& Es™­w3œ=ÀËof¤šwPóìßËÙ›k.2ƒŒ¤2[Þ§Ø’†Ðly÷[N9b¢˜Œqþõ׿cL›z±øöê—Åâ‡ò‡Ãvûkah¾Úl1§`¶«ºÇwöÞVѹݯ­Ca”È 1ÅËïfo—‡ a‚–Äñ÷aöÛ8»q¾›aÄŒÙG¸ÁˆC³ÝŒqøˆŸlg?Ï~êP&oý§czaT"Á;q¤A7cPD"ä€ó¨j¥‚/¥Õ …(¼S­ ™ÕJîU«(Ò\Ó¬sª}û´¶Í¦Üƒº´Î×M Ú"$ ÷FçUÁTnÊŸl`š÷6ê¦ÚìÂù³ë‚‹|Ó´0o«ÊÝ—Õ¢˜3-ó›}Áqþ×j»¹ W«fNËBñüùÑã4ù=Ð÷ov«‚àüÁýké}.·Ö9¶œA `Ud„6^ ÀX¾~´ëc|îw¶®S”DähÚ ¨AZÑà̈ §twwé8è]½³¾Kް&ºsiŽHëÔW¶Ym¶Ö醂nl½®6Á*“ #ÃÅ¥hKÀwÖ'`}2Å:$‡M9mZ!$ ¥^dÚøŒiHhšš–Æ|Uî!N>°¼u_uFî=¾*ׇÝ7«³fw„8QcVMH¤(¡`LC~¥ì’`”@®`*¬óÚA*†g4ÿËy‹sÀ ‚m¹×Eû²àÚÅù‹^Lþ;¸˜saòµÓdxØe8¿rÊzs­XÂ?ÃP=089öŒßmBà¿ =QA@¢i!oËr;‚iMÀ™¨sºô‹ºÔâ\hT<Ö€Ôá¼ÜeI$ èp¢ËŠoǬþëÿ:Ù¹FLj9$ž$mIBÊév3PÇÙ.£¿÷j?8bÉÐpøF‘3 ¡ÏÒ>1IŠ@K ¦ŒPi=qNèæ…!&KP~r9'c0ïä$™ÐHÄ©Yæ$ý×x÷ xØ—u³é'–¡>¸ü EJúS+äèŒmxÿ??uR†4ôå¼)‚%ÝÆd&(ÿA8t"SAý0!æ¦×áø=FÓ<óñ½…F *…A5’0é÷•â_U-Ì»ÔY"ü~Oñ:~¯o–?/¾µÕmYÛïË»“ÄÀ _¬å€¥¡×F¨ Œpì-ÄŠkwµmuå[)¸Â …¦3Õ?Èqþ3×€Rsç|Ä Í8»Ð¸3ˆ.óBa^ÆuÇ]o~ôî£ý›÷Ñ5ÖÇÍØGWÐWí̓ÝÛj†k÷eUîâ§6"ÛnÃÌÚ}xäÊãÖÖ‹É…I\Lu…ÝÀ’‚È m/ÅR±ùA‰RqBW0˜iaX=O7B]¤ ²}²0è¢÷Óòj… ¿$ovNÞvYÞ³tò^ ÛÊ›’uò®Ÿž¦%faFÄ‹v)pFJ˜ƒCÂ_¼ûå:î~a»_8¾³÷…‚œìW¿“1àéÒP‚‰Mj”xAFi.œÊp½µ1¼’EšËØû˜ÂíŸádÝ ]úÏn…ùìø¬îj4²À~0“”k~¾Ù¯·‡»v AÒžÃÝhÚ®!¾Á•‰ã¸'éâ`€ÆmBµŠP_ˆžªæ†@ÍW}ÆnöPÅ7ÍÊïèc» Cñ@ì û»}µs€éDtÆztv&Ø BÜì,¤[‰™h ƒ³†Ðð™<ûà|LýËôì+å±€úonv0—_•P²Ÿƒaœ`BA1NGS«=€ ³ÅÔ·¤v{„ ¨Ò*$¶·+[?Þ@è|ow·¶ÝL^ökçÁõ¤z&-5›àB‹ªÄ¥¬H ¡­úÏdÅìbVLŽÚ±«È“ả™ `=Þ†Þ9ä“B“äËø9>çÔ¨Ûİ¡z°Àqkê’J\ÕÁù•‹°¶»öKÏágŒ/]ç}v©!JnÆíš¿ÿÀh©s`‚M3”È8yS‡Ž\9Ñ¿é741¯.Ý…ñgÂ+Ûó2\(&$œˆ\ºíݽËÐÃÔªî¹EU>=CuÚd+¶SØßPûjÝendstream endobj 3144 0 obj << /Type /Page /Contents 3145 0 R /Resources 3143 0 R /MediaBox [0 0 612 792] /Parent 3101 0 R /Annots [ 3149 0 R 3151 0 R ] >> endobj 3142 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1HDU_1_1NoNullValue.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3152 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 245.40000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3153 0 R >>/Font << /R8 3154 0 R >> >> /Length 3155 0 R /Filter /FlateDecode >> stream xœ•OKOÃ0 ¾ûWøÈ8˜8qí‘1à4 ÜQÕNE鯨&øù¤kAâ2E‰åïaÙ¢"FÕŸ±V\=z\í@á]¾+Ø8–ªÃë˜E…ÉhöÌŒì)#µ+1;¸˜Ï›v¿+Ëû›ç²\n–‡”^^Ó¡žÅ7XDx#$F~æ1-ôƒ¬R ]ä ÆžÎKá òÖdÇþ¤¸Íï⫪ß÷ífý!»Œ÷dŠV’OÛ × -+cH ¦¬<~øãÜ0áÇE=o™œEÖ¦èk-Èœ SK‚æ2‡ý{:]endstream endobj 3152 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161258) /ModDate (D:20111206161258) >> endobj 3153 0 obj << /Type /ExtGState /OPM 1 >> endobj 3154 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3155 0 obj 233 endobj 3149 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 419.2365 398.7049 433.1842] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 3151 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 120.1398 212.2436 131.0437] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoNullValue_a13c08a23ed54e9e1ef3d16fbbff61301) >> >> endobj 3146 0 obj << /D [3144 0 R /XYZ 133.7684 692.1046 null] >> endobj 594 0 obj << /D [3144 0 R /XYZ 133.7684 629.8725 null] >> endobj 598 0 obj << /D [3144 0 R /XYZ 133.7684 563.1076 null] >> endobj 3141 0 obj << /D [3144 0 R /XYZ 133.7684 538.6923 null] >> endobj 3147 0 obj << /D [3144 0 R /XYZ 133.7684 538.6923 null] >> endobj 3148 0 obj << /D [3144 0 R /XYZ 133.7684 456.8953 null] >> endobj 1393 0 obj << /D [3144 0 R /XYZ 133.7684 345.6317 null] >> endobj 602 0 obj << /D [3144 0 R /XYZ 133.7684 339.0315 null] >> endobj 3150 0 obj << /D [3144 0 R /XYZ 133.7684 139.1435 null] >> endobj 3143 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im23 3142 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3160 0 obj << /Length 2045 /Filter /FlateDecode >> stream xÚíYY7~ׯh8@Ð,š÷!lØÍxÇˆáØ“¼$yÐHÔŒI=iIñøß§xt‹}©»Al`hØìêb‹E’aø#a )©y& Es™-wœÝÁËo&$ÍjªYJöï›É‹k.2ƒŒ¤2»Y§Ü’†ÐìfõsN9br:#ãüë¯Á˜óù·W?ÎçoŠ÷§åýë)¹ýøaJp^”«éŒ  Ü.‡0|g×¶œÛýÒNg†™Ч¿Þ|7yyS‹™¬NÂ’8!Ÿüü+ÎV ÓwŒ˜Ñ"ûch¶›0Bª™íäý䇚eòÖÚgF%ܸG ÔGE$2L ÷ÚW*øR°¯Pˆ2Ákû ’i°¯äÞ¾Š"Í5Íj2gß—KûpÜ{°ÖùòX€±ÉŸÃ3‘ùC9e*·ÎîÖY«üxoñáXnöwaòÙõ”‹|s<„W/ËÒ=åžµÉßìÍi» o7v&ò+.¶§Šïƒ]nÜ’vÖ ”ój·p~¾s?Ö¹L±ŒÐÆ«ó,8ýÖºOœäá9ˆ ƒšõ2<ïìá²$"GáA ÒŠ†0GT8O¸ýÁžg¨à Ö vÂÖD×Á.‰á~e‹ÍÖÛ€jx:,ËMpÕ €Ìp1–‡ ™Ò¾<›"Ũò¢yÓ$±âŒZTÆ®Œ\.?Ä÷ÝÁÚßÂÈ–eQƼ >…Áoµåë$> û@(†0âI>H‰/ø@@B–º€VˆSì!ÈO>+¼¾¬Ñ˜¾*–§ÝÝãÖaŠöæ8ıDŠrý4ÅF’+>¦ ˆŽ©5«Ã«ƒ¦.7šrí3±3ý t¯ZVcšxÕ´šUÞEšwií—.”ƒæuœ”ÒC²S(^•à#©F B¡˜Ñ¼¬ÉFñ2exÉJÆ -G… d Ùô-0¥ 1®ØEg5Õˆ,Ôå"ƒ\l \u«EÒ)…ñ—.ébî›ÍŸC¾rÕyo'ÜaÔþ®iHÅwg—ò¸pgW“µÛÄš5ïì íÞÙM(r`PkãôÎÓ;;Ø"ó×SæÜÇ0¸/ܦ­ahÀ`]œö+O-}çWóæÍ[cá;ë»±ûϯã´}“›þÄ õù_p‹›f)&( =ؾÁÉÊ]­»R9ݾiÖœÕNw3/"ì_Ù¨» ÿ(&$Œˆœ:ñií’©½+ÄÈýY¡Ì힃•}ûüsú`endstream endobj 3159 0 obj << /Type /Page /Contents 3160 0 R /Resources 3158 0 R /MediaBox [0 0 612 792] /Parent 3101 0 R /Annots [ 3164 0 R 3165 0 R 3167 0 R ] >> endobj 3157 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1HDU_1_1NoSuchKeyword.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3168 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 213.90000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3169 0 R >>/Font << /R8 3170 0 R >> >> /Length 3171 0 R /Filter /FlateDecode >> stream xœ•OËNÃ0¼ïWì8,^ÛëÄ9Ò é¤I "¤/Tø{6MSZ‰KeÙkïÌŽgVhˆÑtëP‹n_\lÀàƒî¬€÷<”¢Á»\I)º@ÁKÀ¼‚~˜‘…lˆ‚–É%A¡®F£ªÞn²ìq<˲çvúU¼=•?»v=¿Îßa’à 8CâRÜ©N ’c0°¡DR\—0½ÌFÔ8â²w$6žÙ¸×sò]”ËmÝ~è”UÓbÿùº¥î¬œ@MÿŒˆ]‚JükxðAöˆ÷B©Š‘ö Ö‹'Žg½Åx¢RݨÛ_ǹ^Lendstream endobj 3168 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161258) /ModDate (D:20111206161258) >> endobj 3169 0 obj << /Type /ExtGState /OPM 1 >> endobj 3170 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3171 0 obj 238 endobj 3164 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [381.2534 455.5005 404.8249 469.4482] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3165 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 443.1469 398.7049 457.0946] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 3167 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 144.0501 228.3435 154.954] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_1_1NoSuchKeyword_a8f012eff5e0635b5762fe6e13efc3ab5) >> >> endobj 3161 0 obj << /D [3159 0 R /XYZ 133.7684 692.1046 null] >> endobj 606 0 obj << /D [3159 0 R /XYZ 133.7684 629.8725 null] >> endobj 610 0 obj << /D [3159 0 R /XYZ 133.7684 573.0055 null] >> endobj 3156 0 obj << /D [3159 0 R /XYZ 133.7684 550.6474 null] >> endobj 3162 0 obj << /D [3159 0 R /XYZ 133.7684 550.6474 null] >> endobj 3163 0 obj << /D [3159 0 R /XYZ 133.7684 480.8056 null] >> endobj 1394 0 obj << /D [3159 0 R /XYZ 133.7684 369.5421 null] >> endobj 614 0 obj << /D [3159 0 R /XYZ 133.7684 362.9419 null] >> endobj 3166 0 obj << /D [3159 0 R /XYZ 133.7684 163.0538 null] >> endobj 3158 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R >> /XObject << /Im24 3157 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3176 0 obj << /Length 2164 /Filter /FlateDecode >> stream xÚíÛnÛFö]_Aô! €h2÷‹°»À6ŽÛ´è¢M¼Omdil •D‡¤ûï÷ ‡¤†×ñ"EQ`âçðÜïI0ü# a )©y" Es™l œÜÃå7 R­Z¨UöõÍâÍ5‰AFR™ÜÜ…Ø’†Ðäf÷sJ9bj¹"ãôíÛ_0¦e±^¿?nîí»§rùëÍwo® Ñ`…$ ˆ»÷ÿæAº”0¢Œˆâf‰Aä‚âQo›¢X®¨À€ÍÐÔ›Òú'ìÍ—D§ö´…GšR•JÒÅ»›VOø),‰ÓÒ§ÅÏ¿âdJýn3Z$ŸáFÄšŒÃKX¯Ÿ?µ(ƒÛêÕ1ë´0+дÁÒÛQáÝŸqKJukHЕÝHÖ5¤P %ÁZCJDjS^Ùr³?بˆjøTlóýc¹ÏNÓj1®c.vª£tÔÃEZKïavIDú´µž|e²2óok–y¶¤"ý\ß7p…µ¿ù“Íó,¯]à.Ëýá·%ÁýógwÌò]¦$ aÈË ÏYcJ2°m‚);e~Þ–·`„W­-:¯²íùhOåfÞ:@HP1j ì"EkÛÅ$†!c‚ %ÁΔ‡‚µÎuÉß^ý{½þWöñ¼]ªôáû%!Τ²‡{¸ÿwqÐSé/XàåŠ+™n³%IA}î¹NA_ûÓ½?¿ò¹B±€i* ‚š:Yìöç ÷¯=hG>J Û5Yå6Ë#èä7e T@jFþ^cÔϯ¨ÔˆƒîW„ #©Þ Û1ò £uäÎRBRÄ1‘x ÁfRpЍ2ª¢û.FÂÒÊ9N_;ÄécnuŸœaláAÊë­)àüÕõ¾¬ïß¹è\Ãró÷.»AéNYéwÙù´« Iú•tk!¨mŸØ£Ýî/[§%çæ^Å>­mQ@‘Æ;ÕHiE®ÂFñ1 2äò5ÑSÊgÆ"¥(œˆÌ¤ä®s,þ¸¤<Ý䛣-]…"i1`VQ$fIˆ~`n*ÆÆ¹XÀðÀ'Ô&àu†33)¶£Š £#é¢OÀ}¨s³ðaèàÜÜHOy¤g¼ÄJÙ–M•Øæv¢ºv®ÿt²+ ™QË>ñ 3'jºÙðäqrlެä\¢ËQýB€n$+pD$X`šššÎÚéà$`Í,L›…¦ ¡IB¤³Âê?VØ ¯¶ŒÁ|DØn 4q*dWØ.WLÊ0ÃÀgátpÊŠr¿õ÷uŽÌÈŒHÏÅys8<{Ð*K9˜„·?ew½«‘þÄ_äv5–Ò>¡7°»AJã äqíÔ_Ë—((ÃÅÿC?4CBKñ_X¢ñ…QKTØd,ð¥DF±‰¸‡¡BH þTCýÍdÐ_ÎI)ÿ )/ß“r"à)÷wõ }Ùk|„N¦ôÇ:Ìý‡Ï8ïk„¹¶Ú‰ŽFª›ü¾ùºI>Ïì«cöúýÍÇõú÷ªËo³Âþíì€õkÙå§ï¬ Ð<W¦a]•Í Vk©™º ›ÉP¹DjÝöüd'®¥æ•ÛA´h 8tãØ›‡:v™´;t—gl/[™ª¼mê÷ödóMY-Ü›yvl^µ ²ÃÁü~š€G® l±žˆ8Q›¨Ø‚"‘[@§‹¥¾`«1JÅ€®`0Ù3¡Û@Eéj$aðì…á=LÊ[Å®""o6#o •wžn+oŒ®—·CÖÉ»}zš–X3(cêekŒ¸™Ç@¹J˜®ƒ3ÉÜ8Ïç—KïJ§gÛš¹u$ä*XwéÙ#Iâ” ¶ž…4g¼»öœCÒì=©|\{OxòÁÞÛ6¯Öž“:•1"TÌ‹°™lÁ˜A _ ÞŸ LîËMµu­²tÏ0ìöòÅË–ÊP6(L­]ýv™¨6Ârf©¬‘PJwµÛA¾Èq³&šÎ4¬r6ZR úÓ>´af:@}`Ä5á>U'Ÿ|B×¼º ÏU)¼TÈêÁ›÷Gðü« RòS8k¤ ‡‚^I¥&Ö„#®¡v¼$(kMc A‘LE¹~<ß‚ëܘä<ñ{¼µõ:óú|ÚºªQLª×a"RÓ Þ)Þ8,QIÍ"Y¯Š&½ÝL΋õ)/¤ùû>/afÕ ¥zd'{É|À8WÀ@«ß12‹„0.C6)s©“šYí´@óÚ¡î» Îd9G— `?à ga¦fÔ\ ´=ѹYGW#Qˆ£™‰*ÿæ~B!'ƒ3¶`Õ.ä²£ŸôbhÄŒT±ýl6ç¨ XÜSgé^\5B·öÕlÔY;”_â­ó< ðÎú"È}e9+~4¤Ü©\lÉéeç{L¨„l ™ÛàSn^ªß>¢ß!^ÇÁöÝÕg:¢Ý*FXÃn8ï95ĺl¿ÞvDO\@Ѭ§§þœêêióXe?ˆ¸¯Ú¦“£ˆN¾(‰8æ’HÆSÍâãsÀl,¹Å–Æfl.¹4`ñä2K÷’\"tëä’õ&ò …rç¶0ým›<ß<Ä•b+n¢í ø’v°Þ¯Q¡tx”õ´2˜ |D?C¼ÕºÅ%¾ FÀ8å¼aZ¨ah¼´"=Âmž ¥Æã4´ÿ’›ñέ™s¾øg¡‡c˜Khðm5Iµ`Òæ´áËÉóMwûÐì/ªßœëIåÊnýAú?@¡–ŸÈ5¡ëFwÎKûƒLýÓ…:œ¯²§ç{{.Äâʈ1•ý©«ÁGendstream endobj 3175 0 obj << /Type /Page /Contents 3176 0 R /Resources 3174 0 R /MediaBox [0 0 612 792] /Parent 3101 0 R /Annots [ 3180 0 R 3183 0 R 3185 0 R 3186 0 R 3188 0 R ] >> endobj 3173 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1ImageExt.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3189 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 425.53000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3190 0 R >>/Font << /R8 3191 0 R >> >> /Length 3192 0 R /Filter /FlateDecode >> stream xœ’ËN1 E÷ù /…‰ótbA©€eaø„è1‹ª•àóq¦I'/F£ØÑ}nœ5h$Ðù+ëS¯Nï",6Jõü µV4 ,O=\v"bp -Ý\í>†‘5èzu4™ÌWÛÍÙÙmÿ¸xž¾oÏ¡ƒ‹ãîEM;5S޼wð&5Vj µRÉK¯¼Ö9xÝl,’ö’ÆY°T.&‡&cFèÕ=Ìþæ‚¥€O(YtöÀ„ðß\=ìé¿à¥àªÔ5-ìÆégÞ6eâ€|DG¹½CûDŒÞ3X/wà̓_ð­I&›.ø5-øŽÈ£L+#·ñ([*Ëär,Íå5˜Â?¼ŒeΟšß µ¤dÄ{Rp0ÿ呪©éþ ‡~íVVÂhú$"ã,çwÒ)5…æ'ß´®£«)‹Uæi«¦¤ãíiÇ«¯´–LD¦†¶ÝÙÑŽ…„v¦>ËyÅNendstream endobj 3189 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161258) /ModDate (D:20111206161258) >> endobj 3190 0 obj << /Type /ExtGState /OPM 1 >> endobj 3191 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3192 0 obj 364 endobj 3180 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 462.3901 398.7049 476.3378] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 3183 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 171.5299 234.6492 182.4338] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_a036e9a9301d0a8c5cfb2045168bf752e) >> >> endobj 3185 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 143.8148 226.9083 154.7187] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt) >> >> endobj 3186 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.4286 143.8148 285 154.7187] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_a50f37e2cb14259f534b6bd88bc853da7) >> >> endobj 3188 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [270.036 116.0997 296.3769 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_ace83a5e81e20d8210bf04ab2fd03aaa4) >> >> endobj 3177 0 obj << /D [3175 0 R /XYZ 133.7684 692.1046 null] >> endobj 618 0 obj << /D [3175 0 R /XYZ 133.7684 667.198 null] >> endobj 622 0 obj << /D [3175 0 R /XYZ 133.7684 616.1591 null] >> endobj 3172 0 obj << /D [3175 0 R /XYZ 133.7684 593.801 null] >> endobj 3178 0 obj << /D [3175 0 R /XYZ 133.7684 593.801 null] >> endobj 3179 0 obj << /D [3175 0 R /XYZ 133.7684 512.004 null] >> endobj 1391 0 obj << /D [3175 0 R /XYZ 133.7684 390.0474 null] >> endobj 626 0 obj << /D [3175 0 R /XYZ 133.7684 383.1678 null] >> endobj 3181 0 obj << /D [3175 0 R /XYZ 133.7684 190.4434 null] >> endobj 3182 0 obj << /D [3175 0 R /XYZ 133.7684 190.4434 null] >> endobj 3184 0 obj << /D [3175 0 R /XYZ 133.7684 162.7104 null] >> endobj 3187 0 obj << /D [3175 0 R /XYZ 133.7684 133.2693 null] >> endobj 3174 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F57 903 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F51 914 0 R /F14 944 0 R >> /XObject << /Im25 3173 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3195 0 obj << /Length 2830 /Filter /FlateDecode >> stream xÚí[[ÛÆ~ß_¡§€¢ñÜ/‹º@³ö¦R´µ·/uüÀ•(YˆVÚR”×›_ß3œjx®³ma‹Ï9sæ\¿¡É Ã2#Œ!%5ŸICÁ\Ζwx¶›ß_O´h¨1Ùw7/®¹˜d$•³›uÌM iݬÞg”#¦æ ‚1ή®~˜VÇËË7wù¦xý¹š¸ùáÅ5!1¬dBpûüI[F”á)n˜DÎ,þ8Éâj—ó¸šw÷»¼*Ü/o‹uQΉΊý~Ò”ªŒPj™^¼¾iì-Ÿ …%±Vú×Åûx¶£þp3ZÌà FÄ:»»`" ºÿewñîâï ËènýèÐî0*‘àÆ^q¤a‡†¨ˆD†I»ÚÁ – ž”6X(0‹àÍ 2Ó`3Ék›)Š4×tÖYÛ•s¦²¢:•{g®ê£·Ûö.Ÿœmì?þ§U^åãvãQÍÌ”FdµŽ”Æû*`c±ÔgnVÇŸ(=¹‚—25!7PMÊÕH*Ñûi[V§|ÞopöiNqvØ®ºzP,ÑŠtô°·Ê§yiÔÐOhÔç[ïV‘¯^ ìåNLÚ Õ”lp\Íxw°À·‡ƒ·‡Õäz—o^®­ƒä»cñ-8 ¦Ùò°?VŽæX­./?͉Ȋeu(‡²… ˆ ÌÚÙ¢¥ŒtÂB.xW•Ûýf€„„µSFŸößüìÜT{<¾=ö °†I5Xˆ€©„pIpb |VËÄ\¶’OXƒæ&±…Ça v;à/±ûÁ!c`J¢ƒ VV‰x¤²J ;g•|åòÆ›~*)l8}®Šýq{Ø÷¼¼BL;êÇT ŸÐµÏ×êúçWÿè) ÂÜ)e¿EC5%V1pNjÚbÓÉsÄãSÉ4"K%Ó@6L“rÏÉtB®O¦±Ø&™ÚÝO¦  \Úz$’©§ŸÐ¨Ïתt\滢§U›XûÁ­TS‚©ABÛèhm„îêpºÝ9¤ÐS‘Œe¡ âÚðçÄrÌ#Ë Ym¦¢ê´ß½»úӯݵO¤ g‡:ì}в r—k¸Ñï)|Çfq,<åC^îmrœ~ì°ö÷öA»Çûaû…h Z-¦'B*¢JDT š ¨¤Ð&ž&„ºpŠe¶¢É»RבÁ'”–¢­Âx(ò´2=®ãÄ€“´Ý¢ © &CIÛî¾:#¸¶c4v¤ÍüÏ 3‹Täxªdkýñ3êÌœ‚Ó©‘/&K¹s ›öç¤Ü³COÈõ‹ý²ÑÖã "­QŸ¯Ué—¢<ôëLÄÔîtÊ Õ”\ÛóÝÝ_W˜µ¾–ÏròˆGÊËÙH}øçë·ý¿+C{­èTDEd©ˆ dÓ•”{ލ ¹>¢b±_T$ZZ<¥J$õéó'°¬a4m†@4%ª ‡Ö¬cý/©0ukÌž…ÂÄkrŒ´Ð\sœáÒ‚ÚŽ-øu® ß-t6‚Â*;¸J©n >I`°¶Ñ’4Öux÷8Ì´d²­ŽÉÒWà œÉÌj¡ ”™i¤OÁF-K¯kEhKcÞúÂ’»ãévyF¡Úô "¤ƒfES†§_Ä ¤¸_«iÅ0 º:tsk š’l`äÅ\´%WóªI¬ùûcS“71jÜ*Ê6R\¯x†Æ khË|:žŒþˆ8ýÌP¤ˆˆsõ¹ë/ÅÝmQºh»>í—uÚryì°<ݰÀd&³¬7úù™Œi(T©µH˜„„­¥ÉĉÌ& Ô*ÎEfct8³Q¸T:‘Ù@"Q!˜ ¡å¡½ïžì@•U:Dö“Žœ”;*’Lv‘ð‘d'§sXßåeƒÃױƪËj|¼~Z±èiI‘d4À:w=«ƒaC”¤ ;¿ôzè–¢DРèÚÂîâ(¬We¿X°ð~PÇö0yÀ~ ç†ÔÃ…”I; Óǹ¤°¤µ[|¾X!ô"?{ß-aÈh”á@Ÿ^¤°¬z¬²Œ.’¥EŽòišÔ¾1 CÛC à彃„'ÈW¨ZF`»÷~ø0ž³ tÁ÷§Žíb²Dýf”"Æ}cXÆ›ø‡Íþ).ÚφÏDÕ ô‹ø¡1»Ëw ø‡ej£» ôÎÑ<Õ”X.Ó`´–ØüÛí$HRl7VÁw%õ*ß¹þY›ìö±·qí&Мr[N¦úŠ@¾ˆé6°ËÕ*rýææ]O¼±Ç’¼#¾ë6žhJ¨Ñ#P[Rë¸ä8³Ç‰ÆdûCåL“|±_øá.6ž(ë!¾œŽ‚DLevŸ—P°ª¢<º;¶;)žìãÁ*îËÝiù1°ªŽnc `Ã;éøì·}¶Õ6ßm©Û‚~C¡KµG¸îÜÉ  [-fD#LizFƒ¶Æ$W,$ Øc½§kȬî³7˜dNHvìû¸íêbö}χ®r7¨)ÜÛ~Èl„Y¯†F‘óÑU[¡v¬×ýe÷foÈ/ÔzTüDO.¬œÙ•+Äm‹\suL-Ïé—9$’¬8ò2G¸;üGûöÿ\ìÂ6‚>]E£î“!¡¥«ÅIdz»p|¿­àÌm hp[j ˜jÖBcÌÊv˜βøä8nÚ ž2ÄÌbæ_}É ”1˜,¹“ñ,@³G{ÉMb‰_¾éOÛ0>•}¸†})ISf9{§÷ß#òkG$g(*ÇíxTQ`äiêÖú 9ŽÇaÃò7…íeŽÄàyy8giÞòiáǺÉïœ,Do=ØËCéƒØNÊž¶:¸Ï[ËçH_—‡»sÌwƒËŒm;Þâ5ÔÉewyŽ4ÀÜ3ÕÝ©Ý̼~ßé÷óUR ר¾F¤ì¹ŒäœOMe¬«…2U½ßËê·€š!†mHú‰Ù"Ð/âôèñmC;#è%7ÐÎõ´ébžjB‡>7«Ã8òh_¿¤Ä BëbâZG´Ey> endobj 3197 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 641.1308 242.9382 652.0348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_a0f74472174c571dea4e7faa0cb23eae8) >> >> endobj 3198 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.594 614.5549 272.0076 624.4602] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3199 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 601.6539 228.0938 612.1842] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_ad0531bb4a797027e6ff77517d2e09cc6) >> >> endobj 3201 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.7902 573.7585 237.6977 584.2888] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_a1eb7b465140aa151e2f7272c977846cd) >> >> endobj 3202 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 545.8631 225.3244 556.3934] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_aa6d47bd83e9538694ee7d4f4d70ef33b) >> >> endobj 3204 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.7902 517.9677 234.9283 528.498] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ImageExt_a53d36df4ae92f58771a25559120bacb9) >> >> endobj 3206 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [258.1006 421.7572 295.5102 432.6612] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 3209 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.323 319.1955 243.8945 330.0995] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3210 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.5047 301.5712 196.9802 312.4751] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3212 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [423.4624 238.8471 447.0339 252.7948] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3213 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.3057 208.7048 250.7282 219.6087] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) >> >> endobj 3196 0 obj << /D [3194 0 R /XYZ 133.7684 692.1046 null] >> endobj 3200 0 obj << /D [3194 0 R /XYZ 133.7684 590.6446 null] >> endobj 3203 0 obj << /D [3194 0 R /XYZ 133.7684 534.8538 null] >> endobj 630 0 obj << /D [3194 0 R /XYZ 133.7684 489.3993 null] >> endobj 3205 0 obj << /D [3194 0 R /XYZ 133.7684 440.5891 null] >> endobj 634 0 obj << /D [3194 0 R /XYZ 133.7684 408.1832 null] >> endobj 3207 0 obj << /D [3194 0 R /XYZ 133.7684 385.8251 null] >> endobj 3208 0 obj << /D [3194 0 R /XYZ 133.7684 385.8251 null] >> endobj 3211 0 obj << /D [3194 0 R /XYZ 133.7684 276.5059 null] >> endobj 3085 0 obj << /D [3194 0 R /XYZ 133.7684 209.701 null] >> endobj 3214 0 obj << /D [3194 0 R /XYZ 133.7684 205.2179 null] >> endobj 3193 0 obj << /Font << /F45 711 0 R /F11 844 0 R /F51 914 0 R /F22 704 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3218 0 obj << /Length 2392 /Filter /FlateDecode >> stream xÚÝZmoä¶þî_±@@ t¾Š’ÑHÎç‹4I}. ôr8hµÜµÚ]É‘´g;¿¾C‘ÔR/+m›O=9Sâóp8/ÏÈ& ÿ‘a É0â‹0¦ˆ`.ÒÃ^ì`òݱB«Vjå‹}ûpõõ-‹Å! [7˜ÐÅÃæC@9bÑrE0ÆÁ›7¿`Lëêúú‡%z}^åf¹¢¦÷IU™á½ÚªrI¢@婂ՂØP¶üøðýÕÛ‡œ§“ ‰C¢¡ýzõá#^là$ß_aÄâH,žá#Çtq¸bBÜ›ýÕû«¿µ[z³ÍÒ1“p)—±1 ¥£&Q&Xc’*-³µÒ‡Ždåæg¥Ò:+ìGÒ n’:1£÷i²Ïòy(¶úgÔʼxs{÷ðþî'ópHòc²G˧$¸]&63u²ÞÛJ¿©U^ÖÊN?f•¶0rEŠ… àí1wààn6…²·”°"ß¡vD!å¼Yóoî¼ûñÝ5HÆ"¸Ó€ãІÙ!ÙÙaZäu’åæ¾Kq@q›ë=³¼V;ð &ƒUýúd×o´šµÛKdLÝÒ_°ÀIeuç›,MêæÓúÕ¼ÖØzîÅáþDL!…“ gÐ3åΊÜûnaÅW¾üÐ+»j€ë¬~Ê^4LøŸ €„ ¼±‹¤ï–Nj@"ð‚R­š‹\1Fá-•Î L ×Dzq|ÖÁ›ìJ#ý£yg.¹Ò³Ïú€§'{û>É7fð›* 3Ûîc&Òâ°ÎòÄ9 Ǫ¶›µY²¶²Õ1}tŠ;×Bh´nÆyc‰ÇÉ<ǽÅ#8û¯Ç¬Tf.1ï W±àä»ÕS®g&­ß5ó7Ó¼?VÊŽê% íV§¸„/ŒÌö ?íTý);ìV]¸ÆäŸ4*m¤ÏN+jmÚÁFÕªÔ‰¿·>¨)N¹mü6õÚÞ)aˆRh}[½Óé¡•_ù †çî«Ïc¾òxm…=<=«:¡9gÊ.ˆbý/`ÈmI„‰X7Õþ!ËÓýq3ö DBƒÙkšý=;Ÿ~P¯Ïph£[±n÷Ü9ÔF“¼ ï.TºY°ù¨a¡bøË•Æì7-Åíè&$D1ýst="“µ_ƺ0”ÑþŽ)Îâ¡pJ)0½(+øÂŸx(†-"`¢ZõÏæËB–š(ÿ«:¬UiÆ·–¦TçÑaý["6ê˜X×O°‚˜KDÂýÁ?3i¼›Mãþ†i|N¯Iãµö#È@³æ)Rö5ŸgbN~ˆpÃ`_Ót1<çP$p`ÄcÐ7i®VjÆ\®SÇ~éxߥï" T› %UÝDa¨clô!‹EaëÑiãôÄ8=7ßþ(ЏæÄü{´U Ë1­‡¡õQ¢s,¤ð9OöĦ<Ù‰Í{ò¤Þ“'Ï赞ì«õäŽæK> endobj 3220 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5947 624.5027 464.4747 635.5163] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 3221 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.6861 576.682 197.0303 587.586] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 3222 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 559.0577 274.7977 569.9616] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) >> >> endobj 3224 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5947 431.7732 464.4747 442.7868] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 3225 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.6861 383.9525 197.0303 394.8564] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 3226 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 366.3281 274.7977 377.2321] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) >> >> endobj 3227 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [312.227 264.573 350.7923 275.4769] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 174.4646 232.4876 185.3685] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a627a4ffc2199b90952dd7adf9b1ec956) >> >> endobj 3232 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 146.5692 224.7468 157.4731] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3233 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [232.7169 146.5692 256.2882 157.4731] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_ac92a807de0401fa32f6cdbfe96dd3083) >> >> endobj 3235 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 118.6738 257.3638 129.5777] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_ac0e829b447ad71bb4405d196a693a8c6) >> >> endobj 3219 0 obj << /D [3217 0 R /XYZ 133.7684 692.1046 null] >> endobj 3122 0 obj << /D [3217 0 R /XYZ 133.7684 560.0539 null] >> endobj 3223 0 obj << /D [3217 0 R /XYZ 133.7684 555.5708 null] >> endobj 1395 0 obj << /D [3217 0 R /XYZ 133.7684 316.1354 null] >> endobj 638 0 obj << /D [3217 0 R /XYZ 133.7684 309.5353 null] >> endobj 3228 0 obj << /D [3217 0 R /XYZ 133.7684 193.4683 null] >> endobj 3229 0 obj << /D [3217 0 R /XYZ 133.7684 193.4683 null] >> endobj 3231 0 obj << /D [3217 0 R /XYZ 133.7684 165.555 null] >> endobj 3234 0 obj << /D [3217 0 R /XYZ 133.7684 135.9335 null] >> endobj 3216 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F58 909 0 R /F14 944 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3238 0 obj << /Length 3111 /Filter /FlateDecode >> stream xÚÍ\KsãÆ¾ëW0>lQUæxÞUœªÄ›µãT*Ž­äbû@QÌ„"eÚµþ}zÌp€¦¡ð’r­Å?tèéîén –-(üÇLb´• í8aTêÅæéŠ.á˯¯XZEÔ*…ýéöê‹R-qšëÅíC*Mí_ÜÞÿ¸ä’{½b”ÒåW_ýD)¯O77½æjY½~ºfty8Þ_¯¸‚¯wëÓ©ýø}õP¯™]VûMW+ Ÿ—×?ß~{õçÛH.ÑɈ¡šyj¿^ýø3]ÜÃ|{E‰pV->Á_(aÎñÅÓ•pc,üfwõÃÕ?¢ÈäÛæÒ1“®‰’Î’Ä‚YÆPL'´‚Ï£VÕ®Ô¬ª áBÉhUŬªecUÉ•–/"Ì[õx-̲ª_ŽûÖ^õ/Uûasxzªöuûoíj×Y÷ð0€þÇ¿ºtùúéмŸ6¯„e¤\`’Àš[á0™\à ‘TPÔEÆÑ ¢TÆÑu|ì0ß§lc›É=Óýî°Ý×*¼P1‡,SD!¸0„2ʆ…?,¸ÙþTç«FÁã)ÐàŽ£õEQ‘È(EE€EźýñÜY­uÿÃ9 †fT’Håø€ÿäŠFÛû±Ü¢ý†-5lmœ#~•^0ž[úr=‹SUŸgZy ωܨ C* vÄq¡úÎ ¦³p;MØW>â?¹·HéO;vQ¨%2J±`žüÓá~ûð:h¬?6¦ìwÖ]ó]ù5ÿm{ªýØ$Ë_Ò׉Û™N¨0Ïå¶ U(¤É`9N/ZwQ Á,ž÷¥”Æzß=•ûtÜÖѶuþ„">ÆÛUÓiÌ öì6A•’X‡ÂsXIé9…åJG2X¢óÿ;µkw;1øc‰¥“b!¡¢–:4uøUzÁXÊíÒ¨M^ÌA-Å%ÐȺ¸…(÷c}Á gõ”ûäÌЙ]0J¤R—U‰ŒRÊ 0Où±™îÕ3ž'Él*äô¶ŠsŽÄ\ +]„¡QWÖÃÓÛÆ]OíÇí±†ª»ù‰-Ú÷ÔÌ‚”>b¯ÞàF¹\O©MYåoˆVJ•MQ˜bA¡xÒ|°a¼=åÃÂr¢|ë{§2 >ažØ®zèxÛm¬‡î±ö/°¹ŽÛMXÂvü½>A,~|~Û®9U»ûÃS7 ¯ªûSß¹ ‡×»]Õ…Ã]·Ù¿œ|] "¦CCû}±Û4 WÞþÇx€$àÖ¦5‚è(`xèÎÛÉÁwMa¨«Mݰãvù·êé®y¾Ÿ?¼ì7õn{š¡¼r;ZÔQï;D)ƒMöx˜1 kä# íDà¥ãAŒ\ÿ)··ŒKT“ñ Â"Œû&šl»¹$ʤ¬‘Ôð\îܶ[3Ë,ÊÖˆ(Œ†¾ûﳘ1#óC8+õE @*£”‰¬}úüšìöÇ—M©ÑæÎùgHH%¨BDP¥o'„Y‹J‰½%šŠÆ‰ÁT¦Åœál`œsƒ)¤‹Ï¬…´ËwÉ _#žµ@Tª„ê“›>ãàeš™Ôy'K„ÔýeÙ"¡ ¡è·Vô( ŒäÖ°ÆŸ·s­à•¡Ô‰óN’Zß²ˆâíGP¦³wªQú‘…bà(íáÆ¿$ó E„0b™;\臜à€Ò &=ïºÃ¨_~öY1‰qh³¨ào?"07ŽC [¥š ©.ÂfN 88¶`ЕîdQ HsP@ÉÔ£‘æY1ÓGÔ¸¦„:‡U0)¬”o O¸E½±9ÁôvÙ4U‹Ž ûªgŒ ™Ü9çÊ(0\•íQ…f¸¨Ørz>¬TÄXªç!âQC¹3 2É0;ƾÕ>†¡ðé(—Š0#.jÓR¥Œ`Ýl™.4þŽTbÁaç§Ø)…V âø¨÷ĈÞ.ˆSµãc!ho™ooûz§#8à1™Ü‰ÝÕ!…ò_•o<¢rµý· us­ùÀà#op&|ûÃçÞxÄ#7žËm¶ïõqä(7°LBb÷P˜f ­WÙ½Ï?*È™ig—Äk"£¯öÖצÆÃºe¡uë߯ôŠ<Â9—;åÊVJ¹)ÚqQ˜ÚLZù`<§°Š¼;+‚Í}RpaîÃ,dUÑÉo^$#¬{•ì}U¯·»0z_6Çí³ŸûLdV€[:¬ Ma#y%Jó§å¬iþï 4[oº¬·>… Úù…¶ûÊ?ÅyÓ¢ñ±¿Q¬7Õy¨—=“VXg½Hð«ô‚±Ã9C¹sÏA#e àïóÉš²„‘P0¬6}‡»W›ú4íqL Â|‰„lç¥M.(-m€Ííä?ÈÉø€ÐÐà £á_÷i´Æßwf¹9VëÆÓ›¿ù¡.ôÿËýáø´Þí^Ûß>ƒOÁ/||4 ýi{?ÒXûG“v®!¹LêÔËNBCÈÃ÷E³¦¬kÒ}­IÏtj ‘G–ŒXž­Þ¤"a”Ë v¸¹̼HßÍZ[6GDaÚ3i^ûçÓ±l9µóCéŒ/ER‡ê6¬öÆ“ˆÊgb’pd«G'›‰u „ÄPVk€•®yúžÕcJ[ØîæY"ÂË$2©Ñëû’!¸QDøìZ°CÀ  •UÎõ×â!<#!×+$þþR?¿ø±gM>~+Í Í¯³U2HîFó™‹ð2ßLêL‹ùcPÒ8U4YÍõ_ÿÒ⣅£-##]¨x˜ç®ÃÞîð«ô‚1WÊØ™nnÊÇš ’¤þ~Ÿ_öÈ¢C!¬riåÑ:"´tãOÝÂùŠ‹ßÞOs”?ºÀÓ«zèzKXyî_W{à4<ó<ìÃÙÇ—ádÓûjÓ~ÐíNY×Û0}ÃøMètüꄇ³áß=è?K}øíõ±ÚOzòˆÁþ 6eãendstream endobj 3237 0 obj << /Type /Page /Contents 3238 0 R /Resources 3236 0 R /MediaBox [0 0 612 792] /Parent 3215 0 R /Annots [ 3241 0 R 3242 0 R 3243 0 R 3245 0 R 3246 0 R 3248 0 R 3250 0 R 3251 0 R 3253 0 R 3254 0 R 3255 0 R 3257 0 R 3258 0 R 3259 0 R 3260 0 R 3261 0 R 3262 0 R 3265 0 R 3266 0 R 3267 0 R 3268 0 R 3269 0 R 3270 0 R 3272 0 R 3273 0 R 3275 0 R 3276 0 R 3277 0 R 3278 0 R 3279 0 R 3280 0 R 3281 0 R 3282 0 R 3283 0 R 3284 0 R 3285 0 R ] >> endobj 3241 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.5574 641.5228 235.5157 652.0531] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a92d1b379da32e959be3b2fb2fb93548e) >> >> endobj 3242 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.463 626.5468 273.3881 636.452] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3243 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [365.9541 626.5468 387.3677 636.452] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3245 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 613.2904 202.0321 624.1944] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 3246 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [202.5303 613.2904 235.8153 624.1944] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a818711c7e71c3d867bb8e9445ddf1335) >> >> endobj 3248 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [218.2907 585.4317 241.8621 596.3357] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_ae0f6c4a86159817d3b0cde818d329a25) >> >> endobj 3250 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 557.573 222.0069 568.4769] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_abe80f519c298067a52c0792482048d53) >> >> endobj 3251 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [249.3441 557.573 287.9094 568.4769] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3253 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 529.7143 196.2441 540.6182] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3254 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.9837 529.7143 247.7902 540.6182] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a96af1f6a8a73dc4d8ec3e2ad159bb23e) >> >> endobj 3255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [275.1274 529.7143 313.6927 540.6182] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3257 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 501.8556 224.3082 512.7595] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_ae9278cc3de41df8efd54e44009dd50b8) >> >> endobj 3258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [251.6454 501.8556 290.2107 512.7595] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3259 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 462.4153 213.4291 472.9456] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) >> >> endobj 3260 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [283.7422 447.4393 317.1974 457.3445] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3261 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.498 422.6014 199.8204 433.1317] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) >> >> endobj 3262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 394.7427 228.6518 405.273] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_aebeab56157e11d0344076602bd10594d) >> >> endobj 3265 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 324.6186 196.2441 335.5226] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_afbcc174e856a3f0be7d77d1634ab0075) >> >> endobj 3266 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.5812 324.6186 262.1466 335.5226] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3267 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 296.7599 196.2441 307.6639] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a775cd61e991612a512d62fa722b7e64a) >> >> endobj 3268 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [303.0572 296.7599 347.4107 307.6639] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 3269 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.395 296.7599 409.9665 307.6639] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3270 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 270.2023 205.3072 280.1076] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3272 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 256.946 210.9687 267.85] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_ab8dbaacd101e7b1bc3ebf5aa62493823) >> >> endobj 3273 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [214.7844 256.946 259.1378 267.85] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) >> >> endobj 3275 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [181.2003 229.0873 204.7718 239.9912] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3276 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [212.7419 229.0873 239.6308 239.9912] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_aee44ef253c61cbcb4ef77e3645439583) >> >> endobj 3277 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [265.5854 214.4849 286.999 224.0853] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3278 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [312.227 157.6344 350.7923 168.5383] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3279 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 140.01 171.3374 150.914] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3280 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.4518 140.01 369.9273 150.914] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3281 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [430.825 140.01 475.9851 150.914] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) >> >> endobj 3282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 128.0549 195.2274 138.9588] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a8c9d28570c1a7f8fc09cc10398bd6080) >> >> endobj 3283 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [216.6965 128.0549 276.3923 138.9588] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) >> >> endobj 3284 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [418.7799 128.0549 478.4757 138.9588] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) >> >> endobj 3285 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.2199 116.0997 267.0772 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) >> >> endobj 3239 0 obj << /D [3237 0 R /XYZ 133.7684 692.1046 null] >> endobj 3240 0 obj << /D [3237 0 R /XYZ 133.7684 658.3905 null] >> endobj 3244 0 obj << /D [3237 0 R /XYZ 133.7684 630.5318 null] >> endobj 3247 0 obj << /D [3237 0 R /XYZ 133.7684 602.6731 null] >> endobj 3249 0 obj << /D [3237 0 R /XYZ 133.7684 574.8144 null] >> endobj 3252 0 obj << /D [3237 0 R /XYZ 133.7684 546.9557 null] >> endobj 3256 0 obj << /D [3237 0 R /XYZ 133.7684 519.0969 null] >> endobj 3263 0 obj << /D [3237 0 R /XYZ 133.7684 343.604 null] >> endobj 3264 0 obj << /D [3237 0 R /XYZ 133.7684 343.604 null] >> endobj 3271 0 obj << /D [3237 0 R /XYZ 133.7684 274.1874 null] >> endobj 3274 0 obj << /D [3237 0 R /XYZ 133.7684 246.3287 null] >> endobj 642 0 obj << /D [3237 0 R /XYZ 133.7684 200.9274 null] >> endobj 3236 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F14 944 0 R /F11 844 0 R /F57 903 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3291 0 obj << /Length 2976 /Filter /FlateDecode >> stream xÚí[ÝãÆ ß¿ÂÈÃÁΓùþX$Ú\“"E‹6ÙKÒ{ÐÚÚ]'¶µ•älö¿/©™‘G_¶/ z‹æpÀI–8’Ãù‘jÙŒÂ?6cB£­œiÇ £RÏV»+:»‡—_]±@´l©–)ÙŸn®>ýRª™#Ns=»¹K¹)¢ã³›õ÷s.‰°‹%£”οøâß”òºº¾þë‚«yþü´`t^”ëÅ’+x½ÍªÊß~“ßåå‚Ùy¾_å0ZI¸g\-ÞÝ|}õç›V¸dNF Õ EûÏÕ÷ïèl š|}E‰pVÍžà%Ì9>Û] ƒcñÉöêÛ«¶,“·ÍÐ1“Hcˆ4N˜„óQ“(C¸P¢1‰W~ÁÔ¼5¨-(›¯Š}µ©êæ<¿óO3ÿsŸíò×pË„Âæ?!£l{ÈÝ~í)³Èm·Ë÷µ†–Ï·k²XJÍç_ûU™×a`ï·Y‡áÕáv‰†]—Œ§kä^áúäÕk¿D‰o²:ß~ f;j¯ ÑJI`ƒ£?óûb$uàfŒ¡Ö°@ð‡s‚dÙ‚S0Cùš'™¿¬QÎæn—ïnÁÁšûú!«ÃÀb»®âÃ04±1þÄ5Áë¸pÝ5$Í–ÖÎ¥Óú\Ê ›¥óçÇÍ*ÛnŸZ¡¨Bh?ßÞÁâeuQ>ãO7ƾò„wEéI2¹ß €^Ù}{®‰ü7ka½7ã«ò>Ð|“øuK¿L ýzÈ•üË›·¤!Žé¾½íÔR›V1ðgºÓÖÏy0I¬¹/jÿ¤“6n ³Ê?+nÈWµËÙ,‡Åœ‰èðüȹ8Jm´›i¦q¨>cÒ–~™Šß ¨ÈÇ%¥#PÄ#Õ91ÜÂÆ’ÔÎoq_ÐtÆxsÂu³¯Ë ÀÖ ê°ÇðZ¯¼ÑŽÎo†‚%­¹Ô-ý †|/4¤ÐŽ0ÎÔiC¶TçÄ0œX#UWŒ‡M^fåêaróUÞn‡ªñS´[á¯ï÷0)F·ÃWdY·›<„ÑÍ0b—Õ›bO&㥲†PfE£#á ÕÄËhÜO‰M•™YÐT‹NS†¥¨=Æ}Âcä‡ÀV—‡UèŹ¿ò—7y÷ñ›buÀ˜ÕH?-iHÉNÀ”¤¬i}:´+Ö›»çËÊ·lï¯n?CÉ¡¢'3×­T¨ã,§1¶¥_¦†Òù^ˆ²Üi,DO ž[ªsb8È)51š3´ÌS¹©ƒÑ6¡<ÆÄ´c\tÆí°Bâ<Ø`B͈—RsbLi“'ø¼õé!n}|kG æÍ¡tÀI§=¢Ïyž? wa`ʼnðøv¢pï¼þŸO»×V÷'O" ¤¤VëéSA?;íâm Ä]€#·ì’~;A…¨ f¨ÄSY§Î‡ÀÇðŠdeà¥e»U>8ªƒ»ä§m:à:±®××ÇøÐwH_§1ù<±Ä-Ñiq°1ΙŽ8MÔzå-¤ð1,±&á–ûØOˆ 6(¸³`ã:Ûl+‰9%}‡¨ðoCÿ þó•/›VSóó6¯Afx, ´èO›u§¢Ž  * áÞv–í˜ÎÞŒe—‡¼»ñ—ÏûÏ߾޾8Ü?ôê»Q³²× ÅíBƶ_Y¡ÂÙÉÓf» Uß¶ %Ìm[…ûõ6__OÖ«Ü:¢©’'¢ô±OüËÏ#ç/1­åÁ,8ùD”LfµdIK·ã"Pu •œ’Ò»²ØùÕØûðèacG èaO|S>xBYaꌙL`)5]3½5“¶Â$f‚­;è )3ç µÝ>3ÿP}fqi›ù¦óUÖmæ¦Ìë1Ÿj,3pÄVÇæ|#ÛŽ}Hø hçCš†§o_OVê¼ùü\g9%;ÑYæ”iµ?·¹ÏëÞIÄÈ÷¹ýÆÅTWOþ¹r¿MW”MŠs]Ñ–ì=»¢)û]ÑÿŸ®(SDIfÞèÖzÄ(Ð'ìND{(ù‰”bª/ ®æ,,xKÖ€„ˆÑNhÊ爛ö·ÕÓžé…ôï…vôLz¡ÌÙù¿ð$³É}Ys|ë¯Íç[l81gæO›úÁ?oP oFQ _´¨„™µþ+ŒñêOF;ÌîÚ¯ºðW™×‡r?öµZË› PÛjþÂVê¸O€ÊI*~_à  DWËÇ¿¼‹ û«ÿŠ*‰¸ BirþŸÄCŠí”$ÞZwüÒð«¦{Ñ~-YìcËÀñyü"àM¾ò7Ú_ ^‡ï˜¾fü:~Up‡Þ¿ˆyMè„oÅÞ??ßÿv¦ý¯(Zb°ÿ~Tþ endstream endobj 3290 0 obj << /Type /Page /Contents 3291 0 R /Resources 3289 0 R /MediaBox [0 0 612 792] /Parent 3215 0 R /Annots [ 3293 0 R 3294 0 R 3295 0 R 3297 0 R 3299 0 R 3301 0 R 3302 0 R 3303 0 R 3304 0 R 3305 0 R ] >> endobj 3293 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.3411 624.5027 348.9127 635.4067] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3294 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [153.6806 612.5476 192.2459 623.4515] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3295 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [331.5525 612.5476 370.1178 623.4515] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3297 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 509.9859 171.3374 520.8898] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3299 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.1072 401.755 297.6725 412.6589] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3301 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.2854 361.2825 322.8508 375.2302] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3302 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [473.1657 331.1402 478.4757 342.1537] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 319.185 171.3374 330.1986] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3304 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [357.5292 319.185 422.9634 330.1986] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) >> >> endobj 3305 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [334.0471 276.2555 372.6125 290.2032] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3292 0 obj << /D [3290 0 R /XYZ 133.7684 692.1046 null] >> endobj 646 0 obj << /D [3290 0 R /XYZ 133.7684 587.0183 null] >> endobj 3288 0 obj << /D [3290 0 R /XYZ 133.7684 564.6602 null] >> endobj 3296 0 obj << /D [3290 0 R /XYZ 133.7684 564.6602 null] >> endobj 650 0 obj << /D [3290 0 R /XYZ 133.7684 468.8896 null] >> endobj 3286 0 obj << /D [3290 0 R /XYZ 133.7684 444.4742 null] >> endobj 3298 0 obj << /D [3290 0 R /XYZ 133.7684 444.4742 null] >> endobj 3300 0 obj << /D [3290 0 R /XYZ 133.7684 386.5876 null] >> endobj 3039 0 obj << /D [3290 0 R /XYZ 133.7684 241.3863 null] >> endobj 3306 0 obj << /D [3290 0 R /XYZ 133.7684 236.9031 null] >> endobj 3307 0 obj << /D [3290 0 R /XYZ 133.7684 183.1656 null] >> endobj 3289 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F57 903 0 R /F73 1481 0 R /F14 944 0 R /F58 909 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3311 0 obj << /Length 2781 /Filter /FlateDecode >> stream xÚÕÙŽãÆñ}¾B@"«v߇H¼Ygm8X¯µyÙø#qf˜P☤vvþ>ÕÅS”#;Á£f³X]U]w7Y`ø# ÂRRó…4Ìåbw¸Á‹{xùÍ @ëjÝûËöæ«7\, 2’ÊÅö®M i]l÷—”#fVk‚1^~ýõ?1¦uµÙ¼ûÛë«50—'Uå‡ïÓ»´\½L»>‘Üð%¡rõÓöÛ›¿nŠZ ¤°$–žŸo>þ„{ ÿÛ Kj±x‚Œˆ1tq¸a>"„Ä™üæÇ›”­·îÓ19p¥WF\/¡e‚99ü9Ï‹Á˧t¿Z3—[ÿS??¦Õ¦Ï"% iṀ£È¾*ïÌûm üºý£ÒmC¼–¶¸/*˜ALˆ>=¹4PskƒŒ Ǫ»vUeZyYüÛ (]±|~²Ã¢ ²ú´¢b™ä§XÜ…#e–üDvô¿IxŸó¤Ž"¯N·;§nÀ'è5ºe0"ÈA=€º¯n\ .™XHPéÌ^4ðëöCy ñÚõ¿³¬ödÐ'HS„™d=‚úf¡æÈ`³d¼²‹ö["º ØÏt>¿Nêă‚ñœA™Ñ`ÿ0‚L!ű FP(°Ó¸ØŸüûÝhµš-ÿ^”‡$ÏŸa»9q:ÁA'*ÿX¥µ<=¤G?*ÓdŸïýCýö%ͱDÆ€ƒ¹rëø™ñ^¹õlHHm.o}5G2¤ ]2² œ»²8xKaà5ˆ‘:ZЇ³òZ3¦—Öyäé+x`yǽŸub‡ß<;dÞá¡.¯õzîX‡O÷ÅéÖãüB ;ÞÜEÞÇ¿+À¶´>hÕ q£UW§x`ER`"GŸÓDÓÒDÅŸÀ[¯PV~"ëÉÏÓ¾K묑SnœÌì¯×P;rB¶ÁñTAltSI€Úú:ÉÚ'7Øï›9ÿé1µŠõÔ×%nXrþ˜ĤÑ3ÊÝÀ¯Û µjˆ÷Jåf†#J”èÔSîjŽ c…o;dœ*gï^bëbAp2×J¤Ÿ!eˆ×’)Ðf»µöJB†ÐlÓ‹v8j‰m—ì J.$2N@à£a B­Û`#a@€Ï€×glvù»ÓqgÕÓŸ–Þ5«ŸÙîÁÁ “*õ“VUîéÝ?Ôä!YQÉåÄ÷cºË¬Ûp~& ø¸ h‚k€ïŠ0÷=?Þ®làbøWdûÕ RŠu-ÍºŠ ògg ÓeZ–EYY¦€&ïÇ`Ö›˜UÅ)ßûñ}zLËTà±.ã ð¿ea9û”íšEÇÁ.p¥IpŸ’|Ä^–Ƙçr»ŽÏq`´õ?ìÏx4Hr$æ}7]œî¼'°Rþ$ IwUÂŒuÞ'e·YžÕÏ~úüIR5Xüà®°I­õ-Þ¨`j"æq³Ë $>J"–ðTyºßLfõBájÙ°ú ÿÏës’þë²þ¾‘J vòþñ5Á:´”ÓkzüxqˆÃ¸ÝB#|pÆ6RnqD¤§"¤B†ˆ‰*ƒÃ:¦"”ÝëíˆVD˜M˜Ø*®ÝˆT;Ëê{b ©)Ð"áKËÅÒ¤)£3ra€_c¬:rù0*©™jÉ%æ;A@†$8ì¶ .„È> ±šúX¯ Ô€d—š¾œ"Ð Z eÅÙ¦¡¸ýט:ØÊƒózIÚ –PÒ§é·jÌ,òP˜\øtˆªêH„C³q‰´Ð]rB€T§²‘³çˆ`½xÜ´p^äUÿ¶¼ê9gp‘×à t—W_hĨ'ðS–çþ)/ª0ÿXBŠbã—5ˆWç 2 O®p±w.Ì;3¾w » ±®”™4ª—%ØFµÊpÌ^ªa9ß þ·ñÒx̘3«ÖRµI«j¡|Aö"£g›2:m(qô‹Lã%Içÿ$à|‰<•b„ gsvÁ‚“œ6оd¹<EË_©ù/I_Róχ.‚HD°™êb7Õ#f AåÛ߱ꜬKI¨soc•úgŸ&t ÞS}š¬†iü.)³*­Ðd…ËD8ó’¤^”TŒºµßB-4ð-Y‡o®1ì&Í¡T´ˆ…ƒ7(õ¸k‘¬)Õ­c¸ïV„Øšƒ¸šC@Íaÿï7›§2«Sm¤ÕÚºŒ¥ ;m {Ž¢b‡ô㧬¬OIþÓ4ûÊ€rS=sÚØ»°á\h¤•„Åóô®îîë!¹¾Cfš²]R½2M*ЂWq›†Hšï¡l¶4nsÑUÀ“Çý¾}>÷h«&%THRÎ}]î±²t‚uc¾ 6v&aK}Ææ:”ŠÁº‚Ù65³n„š]W#©DwÙåDÓüƒíj&çnÔ´Á.ñÁæù¿¸î™ÿ™uÿíeÇøß}þ<-ᛘ9œ¡.ñ æÙ¿´è™ûË‹æ[kŽð¾])¾¼¤P»rBÙU9^8æx#%L7×a„ƒ› Wܬ²i^0x¾OïV \¾»X5I1 W‚Íšl ìBZÑI¼ÜÜÙ÷”éc™Và­_Òø™Ç2;$å XR!ྔ3w¡"üºýÁˆ¿à Ñ{dÀë2Õ'`eÔܲ¨ªLwÙÆa'ò˜@ý¬Íµì7ð3t ñZ:Þ¼Ýþ8 €àŒ˜Ëü7Psë‚Þ ãκ>  ‘ò2 ¨*§Ýè÷»ì¸ËOûtäÆع2šv¯~tpvnlX‹ñ†Ü¿Ä¥¿Mj§o~¬ T§ö"` ÍGŠ·Ç‡ÒüÄÝbt:KîËäÐ Í]›¥”CMØhÓß {Xº.Áïx¾>0øM˜/´?Ûrüu/Ûc×Q87ÜÄWoÀñë ÷Åm¯ ‘° ºuɉ6káPÁs•+´Õ$ǚ͔»6sRšy÷üît î ò%ïí¾O·®Íã7!«&Åk1IZ5N;ÏÌÉ\'RF1Y«Æ8րͲ6 ‘ln]Ê:ˆò|x©P!¢Tåéï–È(¦;©²,|ÓÍécU°]º<§ô:Ýùô?âGDn݈ðtgsŸ¾Ïêö=^ŸŸ¡ŒkfºÞ݈Àþ®$/Iendstream endobj 3310 0 obj << /Type /Page /Contents 3311 0 R /Resources 3309 0 R /MediaBox [0 0 612 792] /Parent 3215 0 R /Annots [ 3313 0 R 3314 0 R 3315 0 R 3316 0 R 3317 0 R 3318 0 R 3319 0 R 3321 0 R 3322 0 R 3323 0 R 3324 0 R 3325 0 R 3327 0 R ] >> endobj 3308 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1PHDU.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3328 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 425.53000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3329 0 R >>/Font << /R8 3330 0 R >> >> /Length 3331 0 R /Filter /FlateDecode >> stream xœ•N»NA ìýS c{Ÿ—2AÉcù‚ˆ‹‚rE¿/9ÄE¢A«•åyxæa…Œoš›nž ¶GÜûßÒô$À46VÍE%r ÉÐz:›AYC KMh]­×ýîó¸\>>ܾ.Ú;Ý5z¢l¬j_nÝÑhN"~Á¢±%|¼ÑËÿ’“r¶argÝEò> endobj 3329 0 obj << /Type /ExtGState /OPM 1 >> endobj 3330 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3331 0 obj 208 endobj 3313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [212.8856 654.0823 240.3522 665.0958] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 3314 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [144.4672 642.1271 183.0325 653.1407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3315 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [405.9998 642.1271 444.5652 653.1407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3316 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [356.6485 618.2168 395.2138 629.1207] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3317 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [431.6617 618.2168 478.4757 629.1207] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) >> >> endobj 3318 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 606.2616 150.9639 617.1655] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) >> >> endobj 3319 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.6635 563.3321 384.2288 577.2798] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3321 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.6964 438.0951 234.2617 448.9991] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword) >> >> endobj 3322 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [402.6036 438.0951 462.2994 448.9991] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) >> >> endobj 3323 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [195.2272 426.14 273.0845 437.0439] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) >> >> endobj 3324 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.062 287.45 278.6335 298.354] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3325 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [300.1526 287.45 322.6282 298.354] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3327 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 116.4733 223.033 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_aebb0d9bac5b961e7de036ad10f1a02c2) >> >> endobj 3312 0 obj << /D [3310 0 R /XYZ 133.7684 692.1046 null] >> endobj 3287 0 obj << /D [3310 0 R /XYZ 391.3999 503.0877 null] >> endobj 3320 0 obj << /D [3310 0 R /XYZ 133.7684 496.4477 null] >> endobj 1191 0 obj << /D [3310 0 R /XYZ 133.7684 339.4273 null] >> endobj 654 0 obj << /D [3310 0 R /XYZ 133.7684 332.4123 null] >> endobj 3326 0 obj << /D [3310 0 R /XYZ 133.7684 134.9696 null] >> endobj 3309 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F57 903 0 R /F58 909 0 R /F14 944 0 R >> /XObject << /Im26 3308 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3335 0 obj << /Length 2708 /Filter /FlateDecode >> stream xÚí[moÇþ®_ÁO.˜Û}êµ%§ ÚÀ±Ô¢@’'ò¤ ¥H…<ÙÖ¿ïìÝír÷^vO¡‹ÚE$bÈçæ™Ý›yfvoÌ0üCf„1¤¤æ3i("˜ËÙòþÏnáÇoOH ZxÔ"„½¾:ùã[.fIåìê&´&4„ήV?Í)GÌœ.ÆxþæÍÏÓjvöî/ç?]Pß­‹ý¾ùø¾¼)w§DÏËͲ„K$7|N¨:ýåêû“‹+ïQ@DÂ’X~=ùé<[ûߟ` Ôböþ#b ÝŸ0BÜ7ë“Ë“½Éà×úÒ¡y`T"ÁýÄ‘†¹B‰ “>N¥Tp¥40•B!Ê÷S)ÈLÃTJ^O¥¢HsMgf§rUî«Ýã²ÚîÆg„sD53¹ÀjvJÃ)0¢Xêƒ5Ëþ3¥¢Ç+Üi¦2¼•åÕH*Ó~¸ÛUźǬ"Ju™íO»Ûó>ôÁás>ôìZ'êpíx@ ŒÐé±{TŸ—ð€—Bà(-;ƒ‡ta=^È(*´˜:rÏŒ¼o×z°\o7eÏ.fŠe†îP9b®£Ýhÿýîêòu±¯é;Ó¦¥€üÀÑ4u sd4\Õ`À"itf¹Ýì«æã+Üi Œ!•¨AŒ•ãÞB*ÃPê­“O»mÞƒDÍ_6_WÛæïuÙü½»X—÷å¦*Wí›æïþñziE¶Ü£qÝ€11="|n°”n8X^7’¼ÝÈð¶ºÒ^o·}ÑPi ÓŽ‹†ÃçèÙµ”§DÌ?UåfÕË,@Òƒo1fŠÈ–)‡äé†ûh˜c‚8.ý“=°‘ u³>¾/«Çݦ­üÕ¿Ú þP¬ÛÛ›Îoïvw÷Åîé§bºùêâŸW?œ7Ÿÿ}J0Ì9Ãó§)LÍWãñ.´FÜ0’‰÷–ˆwËÆ{š×Çû¯BFaÆ{D[•ÿEåÄ’xª`Úµl…ðO^) =U- zz(7Å};ë—™AƒP7øo¤w¡Â\PAFˆÆÇ§îëÝj(/¥2f&´XLOH˾ðÃYYµ.ìÊ¢Oýª¦BÄôÝ›ã@RÅŒ@K’Ú|ÜW«³3˜1/ÖÅnW<ùy=\, Q6½˜‡ˆcD´ˆËajtâÖ4&\4¼€œº-Û’µþ¶ùdûôݾê}¿¹hj̾–—1M’ aŽª‰„¢8T}gmÊÛ»[;Zl\U,¬.Ü6âÐÔÃrYÝm]q¬Š]uç†W´mAÑþøP.ïìT¸’úp÷©\‹ 42’ÓÜ**„¥DÅÁò¢’ä=ˆÊ„´_¶¨Ð´¨hŒ¸dr&˜DR+ž]!´øExÁÐ ¡kw\W’Ö‰±=aiQ^ ÕSk&bÞÏ(-a"hBZ Ò„¨”´D&¼´pÅ[ áÔÒ便þ…y¶ŸH0¨ð„¾Ÿµ˜Íãz½° h© `´`qüü£nªmß‘Ö4l ÓÒì(Q l¤TÍÁú²öj·G ¡ƒX°-(ănÕð°;åb¾]–û½W=;EAû•X&p#aI'uFáBXBá<,«pi^¯pC¼}…‹h¿î¶ ÂÚ‘kÊ™™k›ø"ĵM«ãòŽ2¢Ãß“·•£…äÔ”³˜÷yò¦Óä¾LvNJ3’îœ^Þ$T»¥ÀÀÉÖ]H¼ÒmÕuˆ戒\ŸPÕ"Ù·CtØ™àñAz­ÏÎ*£‚h#\ÅÂ8­×ãÜJòºÚH袇ý—Ú½õvYÐnówýsmÕãúKÅŠ‘Ü3„¥ÄÒÁòb™ä=ˆåï€X†´_u;èd &+a&‹e€Oˆ¥CåÅ2âË4­Ë÷w±ü_ˆ%‰ÅòeÒa÷* •ÕÏl^'ö§C‚©ái²6R:ì`_\Ê C <#¹!,!¹–•Ü4¯—Ü!Þ¾äF´_·äBð(© ¢ Ó ûz5~^0¼±ÛM©.¡±ª[£r¼x1ˆmÄûY7÷•<©ºŒržÖ°ÀÄasO+ÿÔKãIªËìcP=ÙÛqÕåÆLw¸ÝFóÊ]Õìþ4G´ì¿‰Cˆ¹ Œæ¨ÓY¡”h9ØÀ®Nsòª•Úž‚t¼LœDmñ—úv­KCGp!#”m)SÓ´ð¨-äÑV½BÚÕ@¾T“Á$cMsªÀRªé`yÕLòT3ÃÛªfHAWM…ˆ+± Õlñúv­KûeÑÊBaƒMèýà­w¨14å ”´s GWÛÇëué§CLè3 zµäÇõTÊ:X=M®wð&__¾ùó_/FOGöN\ÞÀýcïN„ÁR¥l‘‹ÝÆ÷ÉËÜ6044­w°”œ?ŸSî ¨x.§X*§,ŸSIÞCNexÛœ i£œjª÷2A{ü?öb<£>ãOßîxF1€b’¹•#fÆn Î xÆÁdb Ó—ú¨¡DyØ¡ôÙÃÉ¿=ÆbÄ a¢rÏ'BX"¶=,Ûi^Û9Þ&¶#Úä1û˜vÂ1ûŒ=»u0×/> 5öÚ±äÈ(ÃkË’aFu&ü9± ‰;êDh#ËöÙÙ_~÷·w‰¸G‡v<רT¬·¨|¨§H‘Þ'ío¦†œ_û^*ô4ÖG6˜òùXãáÃùÛµ^|ÜÝU}4 »±»ÐÛLmQbбò˜×æã³V¯R#‘[¼êôv–|òÒ58YËíæø«õ7:@0¸OîÃ4„A34š#Â>öáqÔñ¼eI‰ƒÐT3aÄ3ÞÖ›°¯çDÄ$ (> endobj 3338 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 641.1308 215.2921 652.0348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3339 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.2622 641.1308 246.8336 652.0348] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a6cefe66318d6014ef2d489e7a779f299) >> >> endobj 3341 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 613.609 206.2862 624.1394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a09e704e18acc242d5b829ebcbcdd6d2b) >> >> endobj 3343 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 573.3849 196.8217 584.2888] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a9b26ccfa93476dbbbc13588e5bf14d09) >> >> endobj 3344 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.4673 533.5343 198.6054 544.4382] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a3e9208c7f75550dc939e33488d02bbd6) >> >> endobj 3346 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.4377 481.7286 197.5758 492.6325] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_ad97d754f99c2948469638a05c2024207) >> >> endobj 3347 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.4377 429.9229 197.5758 440.8268] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a52bbbb9cba81940c51133e17394cbe9f) >> >> endobj 3349 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.9785 378.1171 197.1166 389.0211] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a8fcefeadd0901595b5aec1ecfc730915) >> >> endobj 3350 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.9785 326.3114 197.1166 337.2153] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a2afad9d6722f87abc19e5eb819e77383) >> >> endobj 3351 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.9909 274.5057 242.9382 285.4096] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a496d7e092054cb21565f4b1bf3d977f4) >> >> endobj 3352 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [221.3279 247.9298 242.7415 257.835] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3353 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 235.0287 228.0938 245.559] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a75f86db856e2cc7772a97d9ded3a633c) >> >> endobj 3355 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.7902 207.1333 237.6977 217.6637] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a0205708df85524ee37eddb7485604591) >> >> endobj 3357 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8829 178.8643 206.4453 189.7683] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a07a22e72dfba4443dccd614bd5cc2216) >> >> endobj 3358 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.0859 139.0138 199.5513 149.9177] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) >> >> endobj 3336 0 obj << /D [3334 0 R /XYZ 133.7684 692.1046 null] >> endobj 3337 0 obj << /D [3334 0 R /XYZ 133.7684 660.1166 null] >> endobj 3340 0 obj << /D [3334 0 R /XYZ 133.7684 630.4951 null] >> endobj 3342 0 obj << /D [3334 0 R /XYZ 133.7684 602.5997 null] >> endobj 3345 0 obj << /D [3334 0 R /XYZ 133.7684 510.9435 null] >> endobj 3348 0 obj << /D [3334 0 R /XYZ 133.7684 407.332 null] >> endobj 3354 0 obj << /D [3334 0 R /XYZ 133.7684 224.0194 null] >> endobj 3356 0 obj << /D [3334 0 R /XYZ 133.7684 196.124 null] >> endobj 3333 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F14 944 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3366 0 obj << /Length 2988 /Filter /FlateDecode >> stream xÚÕ[Yo#Ç~ׯàÓ‚ÌvßÇ" {½Ž qv•ˆí‡5ÚeB erh‰þõ©ž>Øsus-çÁX`9Ç×U5ÕU_W" ÿÈ‚0†”Ô|! Es¹X?\áÅxùõñ UD­RØ7WŸ¿åba‘T.nîSiICèâæîû%则ëÁ/¿üòŒi{xýú»¿¼ùÇõŠ x¶­wù®¾¯÷×D/ëf]CÉ _ª¯¼ùöê«›hQ¢ˆ …%±öütõýxqæ{…A¥‹'¸ÁˆCWŒC#BHx²½zõ÷(2yÛ5ò£ nìG|1…"&\OºR*h) ¸R(D™àÑ•‚,4¸RòΕŠ"Í5]D˜uå¿ö›¶¶®ÒËÊþ¨å¡nÝýîÞ=xÜ<×Ûƒ{Öîܳªq÷›‡êšàåû_í^Õ×/ŸÛº9lvõ´i?úö=ÊvÚÞ¶:xmoÁc½ÞX@}çÞÝžúZ›U{|ÜÖ¶ùg¶#Á ÈmºzÜ_s±Ü­ëÃaÓ|pplîj+³qBñò®j+4pÁ¨(ïÕ9œÒ4vFKeYÓ~ TŒ” ±ÍT^iM)UÈ(LœR¤=mý𸭠›Aïço! ÏpªçZ‚ üƒCôJmª< ==ÖMõP;¾ŸÈ â˜ÿSxvËJ1„¹ ðIºL¸”þÙFÍns7òÒHS!’ĤÑÎ9öÕþƒÇ¼KÝð«´ÁDçŒäZ+žºlš` ¢ÆÆDÏ„aÿTA1ÅðÕŒ«¾â°ÀÛ]«R¸ä8´ŸÙ;½ Ïù²ùj[?ÔM{èÞ˜åz×té¯íÝë×àD±¬¶Õ~_bß$߬"T{;W)E=âý„ˆ,Ó¿NñˆW6Íü‡qfe!”Høç5.¸áù.È8Ù€(æ a8â «—0n*#øvޱef uM ÇNî¶#W6&Uxuh«}ë¸ î<ŸZ ®EŸ1áy`S iü³j»Ý=yzÀ‡ðÚvTj‡YÞÖr­ïfùS(Œ„ļ@ ),àV¤Ð¼ÞÈ¡SzÇ$ÚSû{gQ¬A€°_†½€E;ü*m0Í¢}¹ÕHØí›0bQ*(¦[—÷õZõ”H ” V¯ÛÝ~‚Ë$™`"ÇÁ@ª= #â Z†ŒŸï¬ž”W »cêÙÝÚÛcwx3þ”<»K™ÍÔ׬Pœ÷£fšæ1Œfyš§ .¥ù<ݲs]ý«é6‘‘£ÛKé2-¥[SN…»{Gkþ]¿Åý’³{bIxwl3Õ¥»£³„I4R‚«a&°aX™0³zÏ„9¡w‚0Sµ¿w”ʘ…ÀÁ¯¸€0;ü*m0M˜}¹Ù²“ª&L”ª Ø–’×õ'e'86!&¸;?ï܇²S\HL¦ëTŠ|Ù™É,™ß`Ò4 5/á£TF†"ì7ä£8]†î9>ÜÚ5(zÿ?ÔÄ!h æ¤@M),CMV¤¦¼ÞHMSzÇÔÔSûû¦&ƒƒÉ‡ßp¨ÊKÔäñ«´Á5 åÎR“­¾`¦&& z(¢ Š)fˆqHžâ¤˜cL\RÌÙ2ŒæH†ØZ•ç‹9˜”cÁ³DÓ‰aƒjÎM:ë=8 l|†DdB-?éèæŒËâ'° >AäâY9ÒöLp¯¶ÕÔwP¢#ã“KªjB"<[Tk«îù¢ZÛ.WT'R^Úý殞57?@a…(‹E“§Æ'%>á›[ž(Œxfzõüâá)‘‘žl8<ù¡çxë—„q—”nY¢©ÝصÝüâá‡ífíV\º[·zœŽ6ní‡5`Y½çѧ ×>©ÚŸ7ûöXùÑ{Žæ)%Ñ ¥oÇ,ÍG|Á¢±\kÒ/õ~7²Àn³P 9ODTI/•H=쨻Ýñv[GoˆòÒÇ~Ãå%É‘ÈÈ%G€YkcÄþâß_½û›»ü¯ c†—§'àE¦–¾ÞúÙ~/êàÅ8ôçä:ÔùTí›s-˜kmÓã $™t_Ȧï *dT ËdT„3*¯7fTI¯Ë¨žÚ^FùxF3†ÒR ¬˜Ï§€/Ø3–;›OàYqŸuC•´2‰8ŒYïCØ‚s9Ä Âfú%9”ÊÈäP„Y»Ì¨Ûã¾ùÕ©4×B mŒ«FÖpû3Ý ØÙ®œí¬·ïÌ8ä?öùÿ]7æíZ¨|ºÉÕË¿ÖÝä«»~{lÖí¼>o!HÃÄLŽêØr)J”Ö̱S^é"¬œ—‰À¡Þ¸õR˜dø¬,ç“7µ­Û·Ú¦R]²dl[ETI­Öˆj6ôIœaŒ¨Âî“Q3Pž¡ /˜1–;÷ù”SÈj’ÿú*iå)€ôµ¾Úo>|l³£,ÃŽ0»yC$2r `Ö´õîñ”0Øþæ“)E5L[¹. f),“4VLšœÞOMš’qÖ³-›4yŸÄ¤)¨ IÓ÷ $ÍÛonÞQê‰í\.š}Âvîãgƒòåöqó<|ÖTÏ›ùÕÇÜ\:–и_=¿ö( sjœ\¾þX=wf²FGóÁ©ŒL†EX8ô‹ËïöPUîOãj›=#çI0à åZ‹¦8Pp„™2Y/­"ª¤VHD•á}µ)Á$ë§ëj» «¥·§ž›¼¡]x$n†)´1j°÷Ö3@Ú«°jx3!ƒ»£ ½ëI0‚:,1¬í·ùãKTHDV*%RXŽ¬ÌŠ½ŸÌŠã<+¦¶åY1ë“3+æÕFVìùä7gÅ?âVPëq±/#¾ðMc¹³Qfì&º¦y_FTI¯ÑHg<ùô±nf\ÁŒbéBWD|Á¤±Ü9WpÈ ®ŒÈ»"¢Ja)™[† Àº„³œ#]XÁoµö'x»¿¬Ø4þic§­'wód—a«ÓµPÞ@Λå7÷æ~šÚn×<¹›³•¬÷µQ+î|*Eº-÷'?0Èó†„ýBÙíc¸«{7·ïN"'Ö®4ËPÔûkîÿdxZÂÀ(žö䕸à´D‡_¥ ¦OKôåZ‹Â#K"¸ÔC+F&<ª ¦Àæf FÝãC·)i?Vm¸òNŠý×›Û¹ß[û\áåÑGo]áÍîùô¡nfiaÂaÿÕ^Jendstream endobj 3365 0 obj << /Type /Page /Contents 3366 0 R /Resources 3364 0 R /MediaBox [0 0 612 792] /Parent 3391 0 R /Annots [ 3368 0 R 3370 0 R 3372 0 R 3373 0 R 3374 0 R 3376 0 R 3378 0 R 3379 0 R 3380 0 R 3381 0 R 3382 0 R 3383 0 R 3384 0 R 3385 0 R 3386 0 R 3387 0 R 3388 0 R 3389 0 R 3390 0 R ] >> endobj 3368 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8293 618.2168 200.2947 629.1207] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a74015a1d158ef9f04f875dca9818f5ea) >> >> endobj 3370 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.0859 555.4521 199.5513 566.3561] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a683d99bb3a29bf887bfd3d988202dddf) >> >> endobj 3372 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 503.6464 200.1491 514.5503] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a0025ef99428d619903a15d23e1eeed2a) >> >> endobj 3373 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.5345 463.7958 200.9999 474.6998] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a20f16c9a8d60de748ed7697afbc91863) >> >> endobj 3374 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 412.3637 225.3244 422.894] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_abcc25c1d318581d9b650a784b799285d) >> >> endobj 3376 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.7902 384.4683 234.9283 394.9986] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a04b7249f250f651a96b6423930c6e4e2) >> >> endobj 3378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 314.2911 186.7894 325.195] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_abd7c1f8131fa1acd2c638a9b9372e55a) >> >> endobj 3379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [214.1266 314.2911 243.2373 325.195] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 286.3957 186.7894 297.2996] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a567c35924aaecf4841e2a467667f2e76) >> >> endobj 3381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [233.6205 271.775 255.0341 281.6802] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3382 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 258.5003 186.7894 269.4043] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a6edaf40ab3bc6b1450d41ba3f55485d1) >> >> endobj 3383 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.1044 243.8796 257.518 253.7848] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3384 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 230.9785 241.9417 241.5089] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_a04e290b1a4d638db9dee0e6a03d30ede) >> >> endobj 3385 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [255.062 174.0611 278.6335 184.9651] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3386 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [300.1526 174.0611 322.6282 184.9651] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3387 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [142.5769 156.4368 171.6876 167.3407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3388 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.7189 156.4368 397.1945 167.3407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3389 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [456.0002 156.4368 478.4757 167.3407] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3390 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.9982 133.2437 206.4648 143.4304] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 3367 0 obj << /D [3365 0 R /XYZ 133.7684 692.1046 null] >> endobj 3369 0 obj << /D [3365 0 R /XYZ 133.7684 584.667 null] >> endobj 3371 0 obj << /D [3365 0 R /XYZ 133.7684 532.8613 null] >> endobj 3375 0 obj << /D [3365 0 R /XYZ 133.7684 401.3544 null] >> endobj 3377 0 obj << /D [3365 0 R /XYZ 133.7684 333.2948 null] >> endobj 658 0 obj << /D [3365 0 R /XYZ 133.7684 217.4045 null] >> endobj 3364 0 obj << /Font << /F45 711 0 R /F51 914 0 R /F22 704 0 R /F11 844 0 R /F14 944 0 R /F57 903 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3400 0 obj << /Length 2689 /Filter /FlateDecode >> stream xÚ­ÙnãFòÝ_¡§@¢N߇v7g²`ìÄ‹}ðÌ-µmb)R¡¨xœ¯ßjv7Õ<$jÀ€ytuUuÝUY`ø# ÂRRó…4Ìåb³»Á‹gXü醠UµJÁ~¸¿ùî= ƒŒ¤rqÿ”bHB÷Û‡%则ÛÁ/ß½û„1mëõ/ÿ¼ûÏíŠ xWd‡ƒ¿ýhŸl}KôÒ– [$7|I¨¹ý|ÿóÍ÷G !‚–ÄñóÛÍÃg¼Øû?ß` ©Åâ0"ÆÐÅî†qØD‰oŠ›_oþÝ¡LVÛ­SràJ!®Œ˜¥“r Q&X+‡íq·{ƒsJ±|±Ù*ÄŽf4ÒF™ÓÞ–·T?˜©n"ü*Ý0ÁÓ¯ã©Õ€J%ÂdÚç` ‹j†.¥IadŸn^š t|ðòÈjë¸øî½ ÉVÁQÌ=·¥*‹748RÆ´©mÖØ­Çúø6<ãqÎÙµÂíàg9Æë˜yÿáþ×R"C»,ÜjŽ®4H(¬út7MUÐíŠ ¹üPzY4/ÖÝÈ¥ó¿úÐø·µ-lv°þ¡z:ïf\ ª1³ÅSœH6\òæØŽ±aÄ…0ˆr:äb£"Ôí6Gû[¼”àæ—:ßeõ›ØdeY5þþ1l^²ò¹54x¨Úhåî¶vS€1oÑyQRþ ôõ¢L6\e;çÖDb¤µ†bŒPst%C‚ éfåvDVc0QyýÁ#ü#¼Ž¿4Sd ã—ÞAÍP¦"_ëQÞ×Õ-Ëßómp´ÎãÙ®½Sõ[?ݼÌ6ªò××:oòòÙ?€í=ÛÃ<˜ÓåîX4ù¾(<÷ÏÖE•m[oY¬4GZIH„ #„7jpèUѪ¥Y6v·/B|„÷ÎJÖkˆ˜[¿<¡=ª"ÂŽÂXÎh¯ƒ_¥&d8ÂÍv½v¢°£¸ Uxë‘aÜŒP3ä$/#/¤ä«½­³&¯Êƒ—Ï@¥fùTÕ~å8ƒÄ¿?)ÖòÝÊë„…†&Q)ĻȳCÆÌr›5™»ÓËÃÞnrûZÅÀR^úkX/»G[ûW­NáúÚZÑÛÁC<¼[eu½ÝBw¡Œ“å¡Ù®×ÞP\>¸åx°B!íí®ÏZ¹õØ^óæ%2âÏ‚û†µ?B4„jYT›V`þ©w÷p{ÍKOVø‡}þ¥åªpìÀ!"P¹jŽ`æî-̤8j8„Ü#°¨6ðñðlKÐ]‘ÿa·S Š|c?ÿÍ$­ò½òˆ¡Kgÿ­òˆ!Þóü{¯w78H0ßåÀGñæ×·×ë×½·ïª}0(÷þ@³€h¨ §À󹎹K“Ôö¯Ê!éÆ e{ædvëØßVãtÌ!Lju†›QZÐcFiÙè> ZÙ-Cê}:–›èm®ÎÂBV•“᫬-¹M²±õ™4»ïÓìîU~VäL Aýîxî2-ål{@¡Ú…Ö2Åè©7B4vGp¸¦>¶þ ¶^~ã/w¶ÿú®ÚÝñ¼ïeJc­•šŠ”à)ôu#É$53'ãÆSÎÒ“!2Ùù­×¾”'<±èå´á<”òŸ0á)H©)¤8Ö&4‘ çÔ·+h9—­gû}:AÎ9TèÐõù¿çusÌŠÏg¥Ç!zk¢fúáêBmÆKFúBa{RfŒTPFP8·[½ë­Ns&bÐÊ]¥ºø’êàFC·ÝS=£º¡Ô9ôgº^ìýØÂ)„aÈ´¸W˜ø`p©£r¾ñÐþ¤jg‚F€:~i&ЀgAe¯:š4‚!-è’|©Ån/˜ƒTÙ|ΰKƉI Zµjïyl4ÿïÙ†®íoǼŽM‡/FÜ®¢*}õ1 m ì,__lixŠnǰÆbÐÅ*©ÌpüÎ5Ç|•ÀOÔZC¬g[cE™0òà /Í…tÂæ=¢ÎŠ {8Ÿ_™Vˆ=Ï9V{Á¯˜¢SÁ{~Åfü G¿‚šÍ ê×¢Ã%Q@ó/;sÇlÂqœ¸:—Ø;á5à‚@ F™ÀÒ:Š¡ùj¸)LŠz&éW`*³/ùa44´cÊG—V4¾d²ÑG@&½‘‘›‡Dþ>× ExD Žó<„´šrý~ËT¸ZQ£‘R€¯_üq¾gÓ±‹ FþêØÅ„FDûÔ}!v¥`bcʽT-ùÿv]O20ör:dÝΙþ1Â¯Ò ýã¯ãhr˜É '!£af€š#K„xbúdÓ°Ú¬vjT1V?¾õ¤Ô%Á¾Ùq8‘ºo½=úmñ¢÷8$º³ÿï§Æ¥Ñ‰éxãFïÈ·«LC3Õ¯Gú%©&Ëã¡=”¦!Á«vèê-žJëkñÑ$jHNôÞ`énr47Ið«tÃÔ$aˆ÷ÜŒaWe¸œÐã`˜`"Ô ]†Â’Ñ>]¸sdoÌO: tl,ÝëfÔ\1‚r­”:ø9nGxÏea]¦”\–R5CwŒ-F7äE‡*ˆ¥:>6̳¨y™ê·ñÙÁÏǶÖÑŽEã§b›ž•º™[îG²°nèßeí—¥ç¶s ˆ^²[H)~J⡨å2tçG{p~­@—/ùæ%b S¼=¸‘ÿê º‰žë6ÏEej &¢×Ï€ø Ñ9B …DĸPõëh†¦PH3Ý#9¨^ÏÜÅmq]‰•_¨±¨‚ºŠâ^CøWô.35–ür‰¥\‰Ë…½Çþ©ìM‘V"– xºÃRþÕ5…"<2S¤`—¬Ìhõ­âÇ8<»Xp„'§s5@€_¥¦j€!Þ³5€@Ò¬ÏÀ¨Psd)”JBSljüñ³îbÍ ñ^7H©¢K©"¶išŸ¦’îµ\ÁÍ~Z ‚$•ÐQÆ‘ÐznJßÁ¯Ò Yc„÷Œ„ÓæzÈÀ0µF¨9² 4¡Áè{dŸêj祕þj]܆þ!¦V:<—}aå®j?/`Y5/¡ßõ%¦!.Â¥©ÅãÚØ}˜†‘uþ‡ å\ЧcDÐQ]Ψêÿ…€Uiûu_·åp|Üœ~îp±„ìè?MÌ”ƒúÏ”ƒ½‚ò|c Ѩv® Û ð…°M †p£U¶ccü/>x@ }¦¾_3ùt¨!š™K“ÏëÆgD3$¸¦sg‘NÒF¦gé&ŸPAðe•oý † ÉÚGÿ îš1&‘q)ù(üƒ™JGln®I$GÓ¹aV v!@Œ 4ê]2Hgêímø©‹Ô—aý¸‡"8„þ~zUµŸHôfSÕ.§Ï"Ãq)x«Ï|‘ÖX÷É”L·^½È<) Js#ÐI£‰]üŸþQ*cˆDŒ¦ßd¤ûÁ‹îI8råNûSû•«9ýìÀ_Û/5Ç Î;»ñ7Ò_ ÜGäšÐµOONdq„Øýô¢'²»êËÛ³¹Y÷+¨ ýëgÓendstream endobj 3399 0 obj << /Type /Page /Contents 3400 0 R /Resources 3398 0 R /MediaBox [0 0 612 792] /Parent 3391 0 R /Annots [ 3402 0 R 3403 0 R 3404 0 R 3405 0 R 3406 0 R 3407 0 R 3408 0 R 3411 0 R 3413 0 R 3414 0 R 3415 0 R 3416 0 R 3418 0 R 3419 0 R ] >> endobj 3402 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.9017 654.0823 227.0123 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3403 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.448 654.0823 367.9235 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3404 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 642.1271 160.2387 653.031] /Subtype /Link /A << /S /GoTo /D (namespaceCCfits) >> >> endobj 3405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 624.5027 161.8828 635.4067] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3406 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5802 624.5027 216.9897 635.4067] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 3407 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [270.1544 612.5476 325.277 623.4515] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) >> >> endobj 3408 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 551.1324 155.9949 560.1086] /Subtype /Link /A << /S /GoTo /D (todo__todo000006) >> >> endobj 3411 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [335.4805 390.9799 357.956 401.8838] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3413 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [200.846 334.8096 224.4175 345.7136] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3414 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [272.146 317.1853 301.2567 328.0892] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU) >> >> endobj 3415 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.5428 317.1853 420.0184 328.0892] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3416 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 295.3322 156.3436 303.9098] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3418 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.0578 249.0598 226.6293 259.9638] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3419 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.2735 231.4355 333.845 242.3394] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3401 0 obj << /D [3399 0 R /XYZ 133.7684 692.1046 null] >> endobj 662 0 obj << /D [3399 0 R /XYZ 133.7684 535.521 null] >> endobj 3332 0 obj << /D [3399 0 R /XYZ 133.7684 513.1629 null] >> endobj 3409 0 obj << /D [3399 0 R /XYZ 133.7684 513.1629 null] >> endobj 3394 0 obj << /D [3399 0 R /XYZ 178.3108 455.9724 null] >> endobj 3410 0 obj << /D [3399 0 R /XYZ 133.7684 451.3897 null] >> endobj 3395 0 obj << /D [3399 0 R /XYZ 381.6368 394.133 null] >> endobj 3412 0 obj << /D [3399 0 R /XYZ 133.7684 387.493 null] >> endobj 3396 0 obj << /D [3399 0 R /XYZ 205.1501 296.428 null] >> endobj 3417 0 obj << /D [3399 0 R /XYZ 133.7684 291.8453 null] >> endobj 666 0 obj << /D [3399 0 R /XYZ 133.7684 205.9063 null] >> endobj 3397 0 obj << /D [3399 0 R /XYZ 133.7684 183.5482 null] >> endobj 3420 0 obj << /D [3399 0 R /XYZ 133.7684 183.5482 null] >> endobj 3398 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F57 903 0 R /F14 944 0 R /F58 909 0 R /F73 1481 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3423 0 obj << /Length 2787 /Filter /FlateDecode >> stream xÚíÙ’ÛÆñ}¿‚O1X%ŽçÆÌ–¬*E‡'ÇÚ8²°$v%`ÐòæëÓs8 V•8ÚØ[[L£§»§ï†?² Œ¡T*¾š"‚¹\¬wxq ƒß^´ê V}°¿^]|ý–‹…FZR¹¸ºécHjBW›÷ åˆéåŠ`Œ“W¯~Á˜¶Íååß½þûrE<ÛfMã.ÊoòzIT’—ë^‘\ó„0¼üpõÃÅ›«Ž¢ÞD¥XCÏ?/ÞÀ‹ ÿÆ)•X|‚ŒˆÖt±»`^"„„'Û‹wëPöFí«19ð4E<Õ""J£r)¢L0+‡ïwûm¾Ë˶9aG1Ä0ÑGx;»ªo=ÌOýõð«þ :Nð:Žk`–`D @!¥ùˆ’‘ÐÌô'¸Ììhz-FBû)fVóWİY¤ 3K6\ ÐT1D½2¶9¬HÖæ†¢¯ßÂÒI—)É9Ìj^|î S¤(åX{€ö~Ÿ—ÙT–¼‹ í"Sÿ"‚Pƒ"·à×%åIUl¡Õ\^ÖyfGTò x¹âL%M»¹¼üuID’m³ºÎÌÕ}„Â$R‚žál@HŒ@ %y(+q)Jz€bÄâäÖ¬J’ÛÿŸEÒ1¦ƒÄ·UyA¼¢J!!1]!H á\_m$Ò´1ÔV[ÉÔ$Ä|bV1ƒÜ€9Ó“l›Y‘fTò=†'`‚ÔXjÿ“‰u¬ƒåZºy‘CjpΧMIbœH›ÂhtîÑðÿ|Ú•BL*9ž<‚2$ šMçnv¼Ø…ËW†ùŽØ"n•#"Aþ+ÊÈ9í©ê @KÚ”òE6’6F޵²Q¡!ÏëcþâüQZcáwG´Dܺ¿WwÞµÕù:/Œûµ àÓÛ¬(Ád9£sœ6 ¢! ºH ®°5ÅHr̓ÉIú¨$wÔ^ïž,öK[,Å5™°Øܰàé¢ëåœF'§íµ‡÷Ùë˜Û {ísÛÙ«e»ñ™À¾øÍ&^>‡»©«]ÈJ  {Vc )ä{oÕ6#f¦-ùÉôÉ’%cHØ–Ì¡¤€¼tÑ j½i;îa}Dv<æuÂŽû¼vv\v×¶úépÇ,b±“öøˆdódgí‘$8I?c!(ÈÑ”GÑ…è¡;c‘\ ęʆLÑEf-ÒvBTl¡5Ë>ê³,«ÿ.ËjÆ0OXŽæ€å—Ë£4ÙWEiŠU¸a!¶‰±´QÕ t†êž¥{ìÇ0»ÞzPcÃæÑuÞálŠ dË÷èȳ߳#ÏùTG^âô|G^3rÚ| yñ y¥?£!„ûéÏg‰±’"¬¹| 'ñ~<׊|^?~E%,)cjèŒÿ0Ù? [ùºÛ?%Zh$MÁ}v#ÂÄèqW~(½AWþÅ–8óLPzl}>íôw 8\ðÏm ÷ÁÎìpbv$! ù2{n ò¥O_³ëʬ´Ûè7Ò×ù¾=†­©þ5h â<ÈLÿš=¨ÍRìö–Ï÷¯;°Ïì_÷ÑÏõ¯Ùú×ü©}ýçMÙ™ú83í°ì¡í°>ÞÇ”¯ŸðÏ×üfcåËD£¦|´?@=Hi¦# µËAˆ‘"Ý~|ïë¼€äÊ ÑøZ†uR®ÚÃÞÖðð¶×t7÷®v¨uUÕ›bI’µÆ=³†2w%XéajÐóåÁÍ·çÛ†h²Lx\ªòT&<¸L`l¨|¦LmB’2(øS™ðG+8›/ÒTðól“4u’RÏ­âËóŠ«Ó2áç¥ÉMwÃ(¦Í£™>øzÈqüûÿçìo³ó  •ª?V™Ø´u±9sV |gé\Y§P։ߧ¬£Ê¾>]ÖõÁΔuTRŒŽÊºH×®›Ü‡ù¢ §;öö•Ï(ôbgÂÜ^†RÝü*=Îo7îÙ&÷=L÷øúÞ=n?‘Wî¡?@ÖëÜ¿••>ó˜½JXÌå¦Xg.ò¨%_-m ´„ü 8úÊV7±¾ªK¸H:Øu1÷-ä^•»¼ö ûbýÑž Ù¸{›Áož­ïÌ•L6Å.œ3&þdî2Ðm®¿qÀf”<3!«F+Õå.ÏÊÆA˜ ]jhf±™¢Ð}ì`[8uÙ"UxôžêÈ|æDóé.ujÜàQÂØPjJé3ó×Q YN Ôv”ðñŒ0^œk7zìšG–£ðºìDj;ÙÖé#ÍsH}ód.3êŸÉŒˆ¿@ÄðH³ð™Q/ÿ`8yšIA^»s† ‡4Dè亪¶±V–”HÍ»Ú!ۼ݆¸o0|ãÝê—5æ}×M¶mòjjZiiHÄb^¼™)~‡“á ‘ÎpÖº;à J P PÝqþ"Ú4G2êÉlèøhcå}ã‚_L~°¨w‰Øyn¥€Z»«þžG°Ù|WÍqkŽêK1jª5ŠâËXQ%œÉQ!ƒ’T ¨z¿?Ô`×Ò(pQ·‡lûaÒ¤Lwþ±™ÀÕ;¸ˆ€_°“³Ë5„ çˆßi@Ĥ<¾6÷†‡_õ_ˆ}§1Ækȉ}µ±ý1ãv^€š™–‚Þ Åô`Z{ Ùñ©Ù¸OÕ0¨¾Ê¶[)µ‰”'ýF¨’±Y.8ð9yðU>"Ÿ1VCÈÛï¯Þv’ ü6Ë:˜þ¤¯ã€æ&Õ Lœõ`Vk†þØ¡Öþ̳21­ÍËMŒÛí„‹[ˆóu¶u7‡Æ,§Òô»]Ó¶q#f#·®<Ø]wŠnvn,*wÅ|ûb 92ô;GåíN€—E[dÛâ_ˆ˜ å“—¡÷ Ñ4[‡6÷¡\·>êÚäË©”oªQ»Ò¨µùlËwØ£–ª 0I=çŒ!=ø¿ÛêÛ<&°PýOÓ ËN¡òì[| ÊÈì[»:—ApWKM“ƒçôu¾vÒýPLˆ»"ò’ÐKáïnÌ¢…MîPø»»kŸÓ¾®~»…8íiù¯Ê"û7Øðnôendstream endobj 3422 0 obj << /Type /Page /Contents 3423 0 R /Resources 3421 0 R /MediaBox [0 0 612 792] /Parent 3391 0 R /Annots [ 3425 0 R 3432 0 R 3433 0 R ] >> endobj 3425 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.3057 654.0823 236.8902 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3432 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.4403 149.8 210.0118 160.7039] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3433 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.5047 132.1756 196.9802 143.0795] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3424 0 obj << /D [3422 0 R /XYZ 133.7684 692.1046 null] >> endobj 3359 0 obj << /D [3422 0 R /XYZ 133.7684 655.0785 null] >> endobj 3426 0 obj << /D [3422 0 R /XYZ 133.7684 650.5953 null] >> endobj 3427 0 obj << /D [3422 0 R /XYZ 133.7684 553.165 null] >> endobj 3360 0 obj << /D [3422 0 R /XYZ 133.7684 469.4789 null] >> endobj 3428 0 obj << /D [3422 0 R /XYZ 133.7684 464.9957 null] >> endobj 3429 0 obj << /D [3422 0 R /XYZ 133.7684 377.3638 null] >> endobj 3361 0 obj << /D [3422 0 R /XYZ 133.7684 330.7386 null] >> endobj 3430 0 obj << /D [3422 0 R /XYZ 133.7684 326.2554 null] >> endobj 3362 0 obj << /D [3422 0 R /XYZ 211.8448 209.1233 null] >> endobj 3431 0 obj << /D [3422 0 R /XYZ 133.7684 204.5406 null] >> endobj 3421 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F14 944 0 R /F51 914 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3436 0 obj << /Length 3126 /Filter /FlateDecode >> stream xÚíko#·ñ»…>pbø&× \ï‘^¤éÛ|H‚`-­m¡ÒJÙ]Ýûë;ÃÇŠû².M›­áâ’ÃápÈyÓlFá͘Äh+g:ã„Q©g«ÝÝÂà,-[¨e öÇ«‹Ï^K5ËH¦¹ž]ݤØÑ㳫õws.‰ÈKF)¿xñ=¥¼©//¿ùÓË¿-–\Aß6¯kß|[ÜÕ‚ÙyQ® ˜¢e&çL°ÅW_^¼ºj)JbÄPÍžŸ.¾ûÎÖ@þ—–´jö>(aYÆg» !ac,öl/Þ]üµE™Œº©c|Ò¶8ðAf>ì” 8YB9€p…0øÓa*'ÆphiM¡eYËTef˜ª…gj€kÁ©ß,¸œçU¾+ä›×N£b–¢l‰kBifœ„àÁù`PÐ$“rr׸(É·Ãm÷áp›ãJg Ö… Ø97Df:óX=RÄyþÀ5Ñ ¸8qàqtâ¬;ÿú²KK„¶º¿x¤J”ÕzúæûÕél›Œ‘L©>Aa ۈøKÂ4ð©ºLÒ䦲TüÜ8)ù¬ÛZ-„™ùúõ6_0:¿ÜSP)*cÙ,Eþ›oˆÊ2*Û-óvËœ§[Î4‘\éY æ¶ Ûõ ­¹+|c³ËoCs7yè¼ PÕ±è³EXÅj>K ø­ÙrºAÞŸ$ò·–Hh˜šH£ T-ÞΠ Aç÷Ó²˜ }D²Øßì„,¦»EQãbþ~ÁÔ¼X5ûÊïQô8Ÿ×Mµ)oë´SDÁŒûØÜWk?P‚½ °ÍÞÿ^Qy蹩ö»ã¤‡ ä¿°[*°§†w¹íFªÛò6aD?ÇVdz[ £‰‚ëÒ]½oÖ¥P|(qOÊç×V>àzI©ìƒeë¥3M˜RzÊ¡ p*³D‰ÔK'‚èà©¿Gs¿qwÚöüöËËz•o ?ô=UtwSÏ×ûãõÂ̷Ζ}öÚˆtQ §N™Rq5ÀNçùö@;ôqq èY²©°S¸DÌ ïÞoªæ˜o˜ (-Ev&¾IÁF4L‹Í ªÆ-^MÏØÿñÝ‹ç_½òíq]¢ƒ•gû¼qš)z !BÞÖE€pÓóª}õÀ”}ð)6e¤êþPD&¢¼‚í98ñHúk¤Ëa±´URKn2ÔµïÎ˵ïŠ.Œ ûùØe½Ù—õ3ì4°ýM˜òa³Ýú9ùzí»p'n!è<Àò4¹1Ï7›ð €¾-[Òƒæ@ÒOÌÔÂný¯C…;PÇ)5'p9­˜_Å‘²@Æðpvã'~x²±•ß Ì Ø ÿ}slŽU˜ØàÀª*¿Ç¦qêÿ³Õ¦Áspcáw]ôÈ÷^q½ª6×ÅÚs©Ç߆úIŒo¼ôþ"´ÞÔùÓ‡wÐÖFî™ù‹×o®Þ½ù‹ÿØå%Èî³ô˜á˜òëm˜Ñ=ÆäGø}s,#qèÃîã}+÷0£¼%c×ëÛço¿~óõ—™©ù$8Ó`èˆ š«}Ù䛲ö’ÞM*H ÂJDîuq[¸ b‰WÛÏw>µ›ÛX£ˆÉ¸8©ŠÇâÖ.×›ܵ§éúÞw#m}3 B>ÑLQEÍä9#À—)üˆ‘îcE¯7ÍaóÉŒÛ!Dƒ56`^º”ôtY uŽ*Œõ(¨Âm] Á‰VÜto-H»ü¤½Òg¾/è?~1®Ø<š è÷ªÿ,ª½íhA÷`w½)óxÑø|w¬›€tßø)×¶>®îâÂykIp«®Ç.r¿dTÈq‹DI {ÿé¸A)DZÜ÷ÕûUÄò°÷*ý“Þø½ýǺ­fÁæwÕI.á##Œê·Eóãfw;ªç~DªIïãªÔûž’-é{ïBc9¡]`#žñ:Ê  ôÃÙlÀjFr€«Õ±rê\ÆÓ ”äV·;4pˆîœGô[>°Ä’m¹÷ÔicîlRŽZøe:aÄ&ð:öiêWWÅÁ>ˆr4¡B²)ƒ°#@#`€ ðúp©9áZ™®Z|[lv‡m±+J¯ДcÌÐ#“sF8 &ø#ÄjyNó´ðËtÂà!^$êäá„ Üb)S=Rú¹ÄuŽ€¶–c£¾êJÎâç|ßøßWbNSAú¾&ø¾MçÆÁ[–FÔ:Pì-Êç#î+à•4 (³4z‘z7‚P‚Ð:š¨?Œ XFÇ9ºå€°ï–;Ä·ÜJ´­N‡JŒv×——ï}<$B`]ëT>E‹Û}y;†®zvn?ÇïFbðC$aVÚ®&Ä­Vè±Ôͳ´ NÆj; ­†à6¸¨|奰Ã#˜Š'™g"’oÑt>êØUQD1•=ÈMƒq¬»˜ù³æA^&ÆxiÄï< éÛ**™é!²Oˆmý(*F—¢\µ¬EÃtÜnÿ¾Ð“žÀ(•‰^ 7®(¨ ¥Ù™ð-{ |âÜLzKõmÃчÐAùØFÌÁ)sé£míûýEøÒÿFGš—Úw}Ø4waÞ]€rWÙݧ{XýP¬6àlt8ß4Y­\6G0ÏÆÌî¡Ú¯ŠºnCÄc¹.W ^Q_ý¹‹}@]ø {¤Êçͪí©µï]!fp7ƒ^(ãFÍ„Qf±®8m»"ü20b:x]1,Q~=BÓ`*„ôÓ,êÌò‚SB­äÝåE¡ø.ð¾œKySŽˆS¦ÀehUÃIžº:„=,êï³!B,¸ß&ü†þ¼ô.·š!XWyÆ+J³à…CãäÀù~ü±  :_Å+|µ€¸Ü;žâowt«\—«aÀ/¸çÄÇRßÞU\êòPmÀ–¢WÉ ¨ðMË`[û··{³ðºæÛmKâÔui޽ÿ½Ù’ >èènAi¸£À¨Ìv®ˆ+?©ˆ+(œW–©3EÜìgqSôOEÜÿ’'|ÑŸ‘>çý'1ž>OÐ=P4⃛,Á±*if-Xâ}Qp&«F)Þ÷kÿ³ûµgêFƒýŽ×:ûEk+˜Ö?|Î ;×›]´ðØ !z¾õ#¨†°Ë[QvJg9CsïÓÌÆÜS?pòP«%¾‚Kòö2ÏU^Æ2s_!¢y¥>Yg~\‡—>–¿Å“ÞVÝÔ¯ZjæZƒsÍ̈́ֆvÖ‚u"¬i‘`}<•æÁ^'4Fg¯ÇÝuQu«0ÈáßÊGħÇíñ‡(DfÙ”gDJw(@µÉïIQ<¡{D’ØÛã„ &{ U¹T §Ã„³øxxò$Г–œ0©ÄÔƒHÑ›…•"˜·˜cîżظ4&¨Á–OÙßò„D¦[vµ3g±þ»÷¿Èl™N0u$¾BúÌŽ]Ýj8! ±ûð^æ ~6§ó²(Ö£µíÓïžýç3ï6¢¹Ëñ ‹OYDR<ÉáùúÛ¤zyT‡ÜwºùÿÙ+ˆ{UŸTfâŒiä¹'V,“à¿Ñî+ûß,3q;Uf‚˜“Ÿ)%èa•iäñW¬2uM\€OŠÓS’ÿ| 'û„N[—9_Â1ºS 9R8 CEW |jaÐZlþÒÂŽ}*ì̘e„RcÎvR° ; ÿÕÅŸÁ‰×ìEt ¡é­9=>Òpîyå_á@´7Æ%Ä3Ó+È@Gš„A°2ô·ÉêW7_ KE³v¢ãz4éÓÉ^ŸJ5ÁšÆ”1Z: ïÆÛVßVid  ½y˜á_B#ɸûް{hµ‰/üHsUô…A|e¢\«ÝSãí(*Õ[Ø¥Á ?Ò¾wñ6cé@Фøàg„W?µ‰¿µ9ìëzã_¹á3>ÿæ[ÅçØ2¡zÓÓ„Ï6ŠÇ±qå‘bB¼y»–£ÏKé,Ö8~ñ?©¥A<ý?<¬fÛ‘‡H²ÿ‹¢ÄÊT¬œÄ—|W‹ŒÏã#Ô—ÅÊ7´ÿá”1ßbú’ñK¾ÜóÈøú4š‡à…ÐëåþãýíX`eÀnfjŒaÿ½¯endstream endobj 3435 0 obj << /Type /Page /Contents 3436 0 R /Resources 3434 0 R /MediaBox [0 0 612 792] /Parent 3391 0 R /Annots [ 3439 0 R 3441 0 R 3442 0 R 3443 0 R 3445 0 R ] >> endobj 3439 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [453.9757 630.0036 477.5472 643.9513] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3441 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5947 502.1563 464.4747 513.1699] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 3442 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.6861 454.3357 197.0303 465.2396] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 3443 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 436.7113 274.7977 447.6152] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) >> >> endobj 3445 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [262.1312 350.9615 317.2538 361.8654] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) >> >> endobj 3437 0 obj << /D [3435 0 R /XYZ 133.7684 692.1046 null] >> endobj 3438 0 obj << /D [3435 0 R /XYZ 133.7684 667.6624 null] >> endobj 3084 0 obj << /D [3435 0 R /XYZ 133.7684 620.6388 null] >> endobj 3440 0 obj << /D [3435 0 R /XYZ 133.7684 616.1556 null] >> endobj 3363 0 obj << /D [3435 0 R /XYZ 133.7684 437.7076 null] >> endobj 3444 0 obj << /D [3435 0 R /XYZ 133.7684 433.2244 null] >> endobj 3446 0 obj << /D [3435 0 R /XYZ 133.7684 311.8838 null] >> endobj 3392 0 obj << /D [3435 0 R /XYZ 133.7684 216.9577 null] >> endobj 3447 0 obj << /D [3435 0 R /XYZ 133.7684 212.4746 null] >> endobj 3434 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F51 914 0 R /F22 704 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3450 0 obj << /Length 2880 /Filter /FlateDecode >> stream xÚíkÛ6òûþ :È@Ìð-jq= m’^ú¡í%{wÀµE¡µå]¡¶äHrv7¿¾3|H”-Û9Ü£9\°ÀŠ&‡óâpf8$›Qøc3&Iµ‘3q¨ԳåöŠÎî`ð›+æ=Ô"ûêæêù+©fÉ4׳›uŒM1>»Yý˜pID6_0Jiòõ×?QÊ»öúú‡?¿øë|Áômò¶uÍ7źhæÌ$Eµ,`Š–™L˜àóŸo¾½zyÓsb$¥š!?ï®~ü™ÎVÀþ·WH5{€”°,ã³í•0‰1z6Wo¯þÒ£ŒFíÔ)=È4%2ÍÔ„8ŸÔƒJ JX=t÷…“²É«;߬×î+øâ¶ì\»¬ºbÎTrW4í3×õp_.ïý¨WÕ}=ç*yp?6uuçZ«¼Ë»§]1^ÖÛm]mž|ïv·)¶Y‘ÓšU”¨ XGE®Pø™6‹تC¥3êÐb¬¡ã©Ì‚L£+€­DŽž¿‚…ô©3b´”@'þÑAŒH¤$•4ó(•oQ’'o'ÂZ+œéàÿ4`M=Àû9—I]®± __?4eçiýD/¤‘ ñªí\gÛ­®¯ßË®n&XaJΙ9#œåE{»ÔhRØp—ä 8þàR,¸‘„i`]É”r›EmÐÛîos°Øž Ž‹…}Ï&(IfB™'Õë]ЃÊHªŒ8¯Jåe5¤ÙEPªÎ(¶¸N{mç/7#L«ÿ]¹Áš…õg²íšr…®˜&SBsM¸éÐÜx¡QYù&oš[OS[[ÅÔyëOM¯Ö©Í¬I&9+z„azÉ…îЃN aáT…e€ÎN»N ~MPv)–F`gbˆ2„X[¤| Xdî>íþ¶-|ä@÷sWTE“oʬݔ˲; 8VJÛêjÿ á©ÜæwÖ à 4,®‰‰KË’:DΉç=#bã|s YàëÈÁ #gûÿ‚Ü‘ùԒԕšn6wˆYZËý­Ç´¨‚ck¡cûö7Rý(˜|᜸c«"g[Ö•ÛÜ–Z<ŽŒ º­iòÚ« »bY¢S-|4¹}òæ°Çju·«Û>ªØmT4h¹õho¹âݾÄDà=þË7ÔíÊ-¼ #_¾tq«D",M–ùfƒ-“¬ê¢u}UݹF»šÎï«Us+Ë4Œz½ÃЮ©«¶´ùÎóÈAMá@Ê·ûzq¼ »Ï=UàÈ¥5moÿÞ`«½åZ^è}1¶äÛ`úƒ®ónÀ+¤l&!“Ϧ6+$' 2C(çòl"ÄIšrh)F‰d§!׃¡X?`v‘7°t˜ü‚å1›rð’TÌbôGž|1¥Æïˆá#÷†Ád°L‚Û§ÅFª$ÜË}ÏÀSqôhñŒ# ºÑ9Ä×L;ºÄ!Eœ—“wM4Ôm:y£“´†ÿëd«Ñ‡Ä š9„AÉÒÓÇGžÎ¶¡Éftâ€#?!B7€ ÏÓ° X¢Ò42ÖQJ!3BaxÖƒEù µù —Ð/sÈŒŒ6–ÊX6‹Éœßü{Å?a‡ÀV–A>u,þ8þ¨äJÅ·~WK©NÝ¬Ê Î+­ë°Îfýd!þöŽ óF-Á³U+×~Õõ™‘_w=MðÛ2ÕbÊö1(ßDAþpठYóOl†]P™¤â³+-MVÿÄJ˘\ ‹M_r_¸vE G‡{ª!Tô`ÃÉè#=@„ÿœÔú?/57p\Èìã÷g&2 s?o…x¢\á#B(›GM/DœzœÙ k%ÒœØ ‚æbÖƒE§ä“ö¡üD"ࡨ'"`,êå£ [ÌêwI7|Û_Ëk••û¹­YF0}ܲ¦ÐI8ëɾ̀P_¸Ù3ü#„¸,Bn‹¼ò¤wåò×ÉøèN#&M w4²aöÉuíÿî§ev ÒŒ¹Ítòp_@–Þ:øžahá>È0†=ÃΣŽá—îè‰ì—¡n{Hêx†š<èX¦qRªÂ=¯ätðIáàÊdJ~v}¿OФtZÑSŽ/eDJvÀâbÙ´Û‹þîbNïPÌN/ó&ÔÆŽËf¡Ø€•¹®¨No¿OHÿßi“`ÈÊ|ÔÅ–¤Šp vábK˜ï¿Ôèb‹Q³]qst}ôa¾0x½®¿vþIédUïoçi²)&ŠÖLs¢Á©wTÔ…ˆ‰*=Ç«M~P» [>cêï¡~|_6Ý>ßü|²Ê-Œ")5üB•;;SåZ¬âÛl*Ô³û’ôWÿxùæ{×ü‹öæÉUL›ÕdŒ\×MTÎn‡y[„‹Óó¦êcðä”P0/«ÀÔÓ®*<¬¿²«XXF“]x0˜³Œ%°Ô­ë¶•løÂ7Žº[¥Î…p{éK±¤\ú)%V<0_ùÉ(I ´ß[ò5~²jï6lN©m"'±™E&½æ3•@γãT*L ü¿w…0RáàaÉ:§GøáØE˜|0ëbÙ¹‘õ¾Û7~~¨ûgXülò'×l€Þs{ËÑz­Xí²)o‹Õt‡kYPreeeIR×ûÂ;m“¼]æ¿Ü©_Ù4XìÌW¯oÞ¾þÞõnó ÌÓS!†uµðùí¦pÍñº9,nÙpt½¯;S%œ:XyðDÆöäÊMÿòÍw¯¿ûæÚ©âõÚ%¢ýâô*TxõÖå¥K4_eH kd¸bÄçw°¤"Mþ¥Ìn½ÆW!°y3.ÏAs¿.eµ*—`v+Ç“½Æ€näí0‡|`«HD*|UGš;ò&~dáÁ1ü±ç8Š Þ–ä÷ÈæÔÔ‚ÈÓ'‡<Ô%ð$ÈÙMáN$`6àžOÇËæo­“î 9}æú¼%òho)–´`´¾ßúl|(šÚŽÜÇ—·X–ô»Ž{{%‹HíÝL¹õ°íÞx¸Ql`ÁRô>’™ó õ~c¯² Èþn_Úí c¹ëƒX'ê}ÃbW; ƒÞu~Ç@ÿ¾-|«›³äÞ£ö%üè7U@¡ô—»¢û¥ÜÞMé¯ÈUŸ¼I›ÜûE×{ï+¼‰Ùz5Æ—yëèÆKF’ÐÅr¹wv†+A6b98s‡¦ñx&/»¯¤D.g2¥»°zøEÆ‹L y¾l;d%ÄP¦X9¼Á P—8Âi ד ÁÆ*N0õrŠë]D”÷„ÐE“åð&Ï¥Iþ‡»ûk}œª­ëp‡ÛçU¨—MÑ^ŸL%™Í3s!•ŒÁ&ÌHAOµ°ÙŹ:¢«à(–Ã>O7@]¤kˆNÕ˜,¦öäþ´À)ÇW?ò’ÀØ9ØeÏÒ¾@× “µ/O‹¬2°Ùô’ÄÔ9=ÔeyÏÄ=OÔKÑDaoæ©LÎ-±T„‰”>f‚ÃW ßL¡è,ÄÜùik¬_ʈàñë]M²T˜ÑYÌÀéUK÷àè›ñ†.ãfžñ$µ^K×ÐîÃ)󯘾fü:¼=²‡àk‚»ôU_ó|Q?>ÝMUQüÃÛÀZ¤°ß*d(endstream endobj 3449 0 obj << /Type /Page /Contents 3450 0 R /Resources 3448 0 R /MediaBox [0 0 612 792] /Parent 3391 0 R /Annots [ 3455 0 R 3456 0 R 3457 0 R ] >> endobj 3455 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.5947 291.2206 464.4747 302.2342] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) >> >> endobj 3456 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [139.6861 243.4 197.0303 254.3039] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsException) >> >> endobj 3457 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 225.7756 274.7977 236.6795] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) >> >> endobj 3451 0 obj << /D [3449 0 R /XYZ 133.7684 692.1046 null] >> endobj 3393 0 obj << /D [3449 0 R /XYZ 470.1736 657.2353 null] >> endobj 3452 0 obj << /D [3449 0 R /XYZ 133.7684 650.5953 null] >> endobj 3453 0 obj << /D [3449 0 R /XYZ 133.7684 517.2995 null] >> endobj 3121 0 obj << /D [3449 0 R /XYZ 133.7684 409.7031 null] >> endobj 3454 0 obj << /D [3449 0 R /XYZ 133.7684 405.2199 null] >> endobj 1277 0 obj << /D [3449 0 R /XYZ 133.7684 151.7373 null] >> endobj 670 0 obj << /D [3449 0 R /XYZ 133.7684 145.1371 null] >> endobj 3448 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F11 844 0 R /F73 1481 0 R /F51 914 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3461 0 obj << /Length 2199 /Filter /FlateDecode >> stream xÚÍZÛŽã¸}ï¯0``cï—F6™ÙYÌY$3ý¶»n[Ý-À-ÏÚò\þ~‹¤HS7²'@ÐhH–ŽªŠÅªSEJdá,cHIÍÒPD0—‹íó ^<ÂÍŸnHZGÔ:…ýýîæÍ{.Iåâî!•&4„.îv¿.)G¯Öc¼|ûö7Œi{º½½[ºÜÜï«Õš ¸±ßœNþôcõPWD/«f w‰4Š/Aôê÷»Ÿo~¼‹f%ÚRXkÔ7¿þŽ;ÃÏ71£Åâ+üÀˆCÏ7ŒÃC„peóéæ_Qdr×=:å ®âʈ gµ )aÞ Q&XÖR€7VjéButœ‚CàFutþ˜u(ÁLòÒ&0o³žœ@F‘ÖÒOà_êf»?ïœî7ïÁ;—ঠÅÿê=‘ )ŽM¸³Žž&q‚4g¤ÃýÍ#(Mà2†˜†kk¢¤œ;è‡æ©:ÖíÆÅŠ Ÿ]½y·Ooûós3´„Úéà„ç=`Ò„¸à ±3€‰ “ÂèØƒR!-%¤Ç@‘ö,†ñ!Åý ¸…iD˜µÿÇoÛês[ÈWM—íÁÉò¾ê~?W\,_=à6þð°©÷çãŠMúûþyºô×Úc]­ˆX~éîvOm½·Üùé3 –ÛÚÒDµóתºrñç÷ßý£Íæ¹3 ¨üìÒ ##´GÝQR¼üæy§9?ßÛjFÈͦ Ó"ä‹ò5gò8ÞÖ0íŒúçÙ•–zë Ê?*g”;n¶ÖíóÉì$aC3ɬq©î0KðTëB2GX1™S9ÚÍ%\—ÊEã<¬g[¬"“Y/iÞÀuD•tk†°`|à,ð¦¬%:6HÊÊg=ñ3Ær³>  2 %%냈*)gQ…ÁñêX?>µà 2HG ‰ ´'×PY*#CeæªÁáówŸýn’Žçmë¹b:½€o …N @ ,—@VN ¬ÞX Kz»ÜHÕ~©íy³g†BD©¡æL=ìðc ”¥92”ës„á‰.²ßŽÎ0„‡ÆÀ¨Y'ETÁI”DÍÈ>³ÑK <¥8»&zS™è0kØ®*†,Õq¢t!dSX&d#¬²y½1dKz}ÈöÔΆ¬†>6—B¶Ã—lÉu]õtóF1ÒLFQÍÖŸZ)Ú×üjÌàÉñTÏ’€/©Éõ„99p)‘°¬Ï< JšT\#.¿TRhZåò4ŠÍ£=ËW`Õ/Ð콆Ÿœ/m7§êSÕœê¶^Qè)mcYý9S…|¶‹ChÒ(ö zCH;?Ήš}Ixa$À×$|"#—ðf­êZäó±ñEkãþ²ÝŠ±Ç¸¼vµC §K A㘙€/=–ë©;l ÍP6ÀEÞëˆ*)WP[ˆêëŽËp,’5\¸ïJ¿['@dÌwý”K¤„*-ƒSXŽE¬Ì¢Y½-èíX4U[*ü}Í/(üFr3,jk°. >€ z)…ÆU)Ù×;Á¡abÈK‡ñ%õ#¹9úé…Ç4‡v¨’f·¦T|lÀ¡uÓ†ŽwÿÁ®€!ò¿9:¼ôÁóÄǬzM¯"¾DFŽøì?'¾ö©ŠC4P益äà·%0Kxà¬bC•ÀrT`e*Èê½PAAoG©Ú@Éô{¾lw··Ï›Ï[ÀP—禿—Ü×dDtˆ“+Ö¯G!¯…­ïf0¸ù´ øÂ0ÇrçÙ†»Mk»¬œƒ#j¬¹·ÀaÐÛá‘f66áEûr‚f¶Ñû>‘ãÊB_콈/xo,wž´]-°(x/ JšµÝÌ'tè½nùõ~‹^µÊÈñS€ýøisrà~Húý!ä¹]COíkÿërÝ¿Hÿ䓟 Ÿé ^œü‰Œ\òØLòûªÖ¼ìîÂ-÷%ÃiÈ ¾ ºì̦‚6ˆÉé/4à¿Ûo¾ú[¸4©04*4ýæÏ¾ídº÷ÁA°Êú㧪©Ž›6ì…„lwìsî¼ñ®Úúé“n5Fä-¡·amö`#søWŸ=Þ¾}¬F+~©7á°?o‘Þ£endstream endobj 3460 0 obj << /Type /Page /Contents 3461 0 R /Resources 3459 0 R /MediaBox [0 0 612 792] /Parent 3391 0 R /Annots [ 3464 0 R 3467 0 R 3468 0 R 3470 0 R 3471 0 R 3472 0 R 3473 0 R 3474 0 R 3475 0 R 3476 0 R 3477 0 R 3478 0 R 3479 0 R 3480 0 R 3481 0 R 3482 0 R ] >> endobj 3458 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Table.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3483 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 336.13000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3484 0 R >>/Font << /R8 3485 0 R >> >> /Length 3486 0 R /Filter /FlateDecode >> stream xœTÛŽÓ0}÷Wø‘åaðØãÛ¾í.+x-„`+º5HUW‚ÏgDZC.UU9>šñ9g<ã“T€R¥ß´îñ惗Ïg¡ä;þ?‹“À1@NË~÷©˜¨Pv‘“Q¢×àU”ˆIvƒxõðpè_η·Ýç§ã—›î›xìÄNhÎ’?8·'YN˜D Qd$Æ89㢂`gä8#HÁ2P’V@Íù*ŒfÑ$‰,qåî?]Z¯Ije!è°pùøóåýÛO³ÍMc¢çc©Æ´qL@‘5R³ØY.Hº°®k¬y"”F) ‡ kÿäKϬ¾ R}ƒ04.ÖHÍJWf-¸Q¥õ_È7½DÖ)»ðuwÞ÷ý²;WöÒ2pÓŸÀãüMÞº$]-¾Õ(]kg€ørùÞïÒ¹\sQú}ÿý/µCî…8Ê·Je]ãG[bÖH6A>8 ø›‰\Rͼ&e‚2…eç¬~޹—3¦˜²[;¥, a,Pà†TšMŽÀâ‰bl:¼Þ .ƒU¶Ni ýGµ%¦l¹a[©uŠTí‰À„Fj‹d©µí7¥òû ~®k~ÚtË\ßÌÂ,·ª2 s‹dæúF^bFÌ£;“›çt6 UÒJg­ÚÈ+§×¼‹|;ñ §7]ñendstream endobj 3483 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161259) /ModDate (D:20111206161259) >> endobj 3484 0 obj << /Type /ExtGState /OPM 1 >> endobj 3485 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3486 0 obj 520 endobj 3464 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [179.5363 421.2201 245.7376 430.0667] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn) >> >> endobj 3467 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 338.6757 181.559 349.5796] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a0b1f880e7bb883a2b05ee20909d94fbf) >> >> endobj 3468 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.8962 338.6757 232.7764 349.5796] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3470 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 311.3438 217.8026 321.8741] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a933afd64667d8ad6a7291686ca3d8603) >> >> endobj 3471 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [187.7312 283.2648 221.833 294.1687] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3472 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.6722 283.2648 267.5523 294.1687] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_ae578460dd522485e48ccd8f4536e5531) >> >> endobj 3473 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [254.2788 256.7838 275.8717 266.6891] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3474 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.1814 243.9777 220.2833 254.5081] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3475 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [231.0229 243.9777 262.903 254.5081] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a67eb478179846fc940e202476b4c08a3) >> >> endobj 3476 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.4217 215.8987 318.5235 226.8026] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3477 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [346.9666 215.8987 378.8468 226.8026] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a573b295bfdd242a99d97d0d3a1dd4982) >> >> endobj 3478 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [260.9002 188.1932 295.002 199.0971] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3479 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [323.4451 188.1932 355.3253 199.0971] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_ac41ac8e02386d095a969142b486d3890) >> >> endobj 3480 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 160.4878 264.0786 171.3917] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a19bde9d4a37a2ee07016ef627e5fecde) >> >> endobj 3481 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.8102 145.962 268.4031 155.8672] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3482 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 132.7823 225.9122 143.6862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_aa89bbe572a86b8bc4ca4249ba0b21dbb) >> >> endobj 3462 0 obj << /D [3460 0 R /XYZ 133.7684 692.1046 null] >> endobj 3463 0 obj << /D [3460 0 R /XYZ 133.7684 437.9953 null] >> endobj 3465 0 obj << /D [3460 0 R /XYZ 133.7684 357.5844 null] >> endobj 3466 0 obj << /D [3460 0 R /XYZ 133.7684 357.5844 null] >> endobj 3469 0 obj << /D [3460 0 R /XYZ 133.7684 328.1349 null] >> endobj 3459 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F58 909 0 R /F11 844 0 R /F22 704 0 R /F51 914 0 R /F14 944 0 R >> /XObject << /Im27 3458 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3491 0 obj << /Length 3034 /Filter /FlateDecode >> stream xÚÅ[[oãÆ~÷¯ò°€ˆ™ûÅèÈ®ãdƒ4hw @’Y¦½juq$jwÝ_ßsÈ™ÑgèºháÉÔÇsΜ9÷!é„ÀPÎ ­Œ˜(Ë J„š,7dò?~AhPóöææâ›k!'¶°Š©ÉÍ}LMÊR6¹¹ûuÊD!ÈlN !Ó·o#„U‡ËË›™eÓÅíºœÍ™„֋áùú¾¼/÷3j¦åv ¿Reµ˜R.f¿ßüxñÝM+âF ME¡þ¸øõw2¹ƒ5üxA nœ|†HA­e“Íp¥Ô_Y_|¸ø[ ýZߊÊ(˜D}àG¤’€„o…µä'uÁ¸AqŒÅŠ“@Ÿ(3 0TÜoŒÉÞ¢%Ír=‰ öùzT–¯)”–m¶ŸfŒLw«»k`k;¬ñ§ýƒÃ¼…ðøœ=º(Å]¹.«òýnÆäôó¡+ £²TÚ´*#cLT©Žú‰$ËÝöP5fy¨î./?ͨœ–Ëj·G‰¾¹8‘Q¦Ð’rà·ÿ©A´— ÛÌ©tˆõnûp† C[Ôþœ%ójß(é§Õ¡™ißdHa9?¬`–žÕU€QHò¬=) F®P‘Z‘’N ¦D³•¬0°«ÓV6Z\8e–N«»ûæs?rºûìBÀjÛ|VÝmÕ)RËå £Hy×\¸}r¤·þæÇ££¾ØïqÃO3)§Åpa¶à"çÁ”òß”÷ÞÇ“ï&9:Ï=1ü´ÚWÇźY¹·­–Ó]pCM‹û ûtRŽ.M䡬¼ß®þUö¤Àõϧt0iÞRA22-% ÓÖNPk¡qßA ¼z‘;œH¤¼Á¡PÀýŒëiY÷]ß=V«ß¾íqs I0á"ÕÎ_Ez ç ;wÏçý*x\Õò<`R;¡…ù* ‚¥œÁÃòîä{rˆ _ç1Û|2k±“ÌÒBô被í¡ÜWÃÉŒL1šVC@e$=Cb]õƒ_Ô1¡6 ŸûCõu+"³{M“iDUHB^ä71„ãØI‰ åæ±z:Ÿ9¼ctrÇÉKÍ )²õ[ K˜|€eM>Í7˜|Žocò-¶­<ú觨}éŠHŸ¦O¥“z»[÷mžCìÖœ§õP9Öô DGýÏHI${‘MG4R6íaÉlp.€›í™©³*N (èÌÚ«Üà€Ï,¡O—pjäºb@ âJ˜¤rç•c5º"J´™ãÝ\¿ûî§«Í?ÿœQ3N¦OŸwµšïІ‹@) g•ÜäAKË‚$ßS Èðu f;¾ lË0¢$LKÓ§[Ûú`úS…°2“š¨o6c!e´wà9±€“Bk^ "©XàaÏŽãû%\úÏßþýÝ–±ª¡n0¹6(†¥ìßÃòöŸä{²ÿ _gÿ1Ûlí×f=¢öËÑ£›2{jd Í(À£2¼1ù²:ù¶ߪúÀŽ| š.ð˜'/šÄ4Ràa(m ü‡–ß+°ÚBh¯g8ºy|Fø>ÝddÖ@ó'hR­ó€Ê1ïQCæÃ^-Œ…á§ŽP Ÿö¨¬K'™Î0m:æ™õçß KE8>Þ-RSI¨QŒL+ €Òì¤ ÕV[ë> ¹®Ð8ñ´/ñ܈DÂq=ꤔÿVÒ´d°I%M å#ƒŽÀÍ*t³ Þ:§‚š9'úk=+ÜU岪G‹ÌLÿRºEÀ÷ëãvY­ r–¨).Î7¾Zæò«`¤ Òæòk€å1"Øå {hêuÆcœ3f…s>Ëv33äl\¤†R±´€ó€Êñ6 @¦TG1à/×ïn>¼YJ7iÑMBœÃâÀ„Ÿ¶!æñëÙœs1ýáîX/ìél—S3ýRÁW÷£;4À˪ý Ó/~õñîøóbãQØ™××}кä˜ÌµÂÖº_J +]Ë“?‡€¦°†Ä9-¸¶á„sŠ­]ÕÚ»Ç|öÄ”☠å 3ÓJ®lÁ@¦—¤Ä˜F"'Šöd¬ÞØßºlw<ø¬{Yºa~µ %{‰šøÜüóÃÕ/‡áJKU0h=œ_bX"¿X6¿¤ø>7¿ä„k`-Ùòù%­˜_2¼(  ÐÅdó‹á\=7¿XÝÉ/*Ê/Öœ‚j”_Ô)¿¼n.¢l_}å¼ iºQ0¤ iŨ¶+9—ãQxÚfí‹ÚØFÊ£<¬çQ\ÓÚ£ð= ?—‹õ}ŠkV ãµÝcÙ7¥[sßG<Ãoáð¬;º„M¶ÊÛöZ‡'¨ŸYXŸnz‚ €¤Œ'U>¨s¡FÄX‡Ðø8½Ö¦Óœ³¦æŸÅöÎÅa+°`Às æ Mì>¡’IŽŠÈš™\|:¡RáÉ¡òÑi˜é³ƒSZ2›"ÁF„¦”JN‘)É _"¹h«$—p2j؈¸$¢¸T§ 8.á—üYSÔû%ƒ³°:ẹ瑱»æCÈ<æ”5–ôHjY!ÄΔüó€Ê1·¬”t˜/»•C¨ê3êT9íGa\óM)MŒ†°Ì• èŒCư„GXÖ%Ó|Ãx(Ç·ñ·ÛÔ€È(­:¬“¢Ÿ¢G·9§^Uçì†JSºGåø‚Ý.uGéàô·»ž÷(;ÝCZ»^/^ߣÑ,Ö‡ÚK5Ý `F4°šs~¦MPKG´d„+~ª-"ôÊàpO‡-ŒæP–‰TïÍ6-ˆâªÝ×¥z#l®•±VælÔ .'Y¡ ˆÌxÜ •r8‡Êû[ŠéÉÝÒL·E<³ÓØßÓØ´]ª©g ¨À§Trå”æË¨—„¹¥nØëì>áôf±>–é|ÇÑZ8}IÑÓHe2¦2öÉfÁ\ë¬føDÅÁ3’÷¨¦‹b ž.XZ¥`V¶I)W§¹©+>)¬-Íú\“ä<2ãu,áv1ÛÖ©þâ <5@¥-Gòd¿Æg$êÓuFÖXPÿYO­&¡iuTŽ9¸ ‘¤» íÇ´}GŒßq¶­‡‘½þŠf4¡qÚñðŒ|=ªM×zN1ÜȬ§P}Æ­zž]¨.ã1㆑±‹`ã¨õ‹bWD#»<ì|ìj†šî×UõÑE´ºMu¿Ÿþé==þ åÄpyL!* ážFÉ7ÅàÄy…zMI~z-¦ îŘ«²Z¬ÖþÜéª<,÷«GœY ˧ñi,©‡O›„¢¹'z¢€ñr‡ºÌÀÕÃÒ ®ÄSÑILõLt¨sƒT@øm1_:Û»¸…¶i±¬¼)l6»ðF@Uî›:xÙ1Ž7«íb^ pÙoËÕª?ŒíÇ  ½¦á áñ™Õõé&UËë<.©Ú€Ê1ÇThÚfž4S.±“ãM+º!eZ6Ò´Zb ›Vš9šŽh[ÌkÓ¶~d^˜éáx»t¯§ÁE¨™zÇþ¤P í±š øŒp}º(Üw_*ØŸ~¦UÐ_1•VK@å8×Çç„¶97sSÔä[WuÁú©_¼Au»åjQ­0«4Íšûa¿_<5ؾö¬I4«½€Ï¬¡Ow8 €PŠN•Ò^@å8sìÊEG{»Û@ï ~}(™¾s³xð¹Â0|$Ư6ërSn+ã6eõqww范°ÅµN^øêG¸ºt…ý/‹'Ìö|ñ]ò‹_«Œc¡gñë£P@h|Jó¾/ªâûr[î•?+ó!½nŽ.˜_•Ëæ‹j>¡îIOª.)»ôÏ}Þ£azíùWQÛ“³«Ý—§‡²o ¸îd¬°VQðo Gendstream endobj 3490 0 obj << /Type /Page /Contents 3491 0 R /Resources 3489 0 R /MediaBox [0 0 612 792] /Parent 3522 0 R /Annots [ 3493 0 R 3494 0 R 3495 0 R 3496 0 R 3497 0 R 3498 0 R 3500 0 R 3501 0 R 3502 0 R 3504 0 R 3506 0 R 3507 0 R 3508 0 R 3509 0 R 3510 0 R 3512 0 R 3513 0 R 3515 0 R 3516 0 R 3517 0 R 3518 0 R 3519 0 R 3520 0 R 3521 0 R ] >> endobj 3493 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 654.0823 225.9122 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a7dc1b5bfcfde698946777e045b532ba2) >> >> endobj 3494 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.3856 626.1869 254.6141 637.0908] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a54e2948a7603a058c6a3cd99f0806ac9) >> >> endobj 3495 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 598.2915 224.2584 609.1954] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a470beae464348ac917729b0d1d693ba0) >> >> endobj 3496 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [199.1924 570.7697 237.1696 581.3] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) >> >> endobj 3497 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [304.7682 555.7753 326.3611 565.6806] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.3856 542.5007 227.4962 553.4046] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a63b3ceb651637d7e73fd4a787b136450) >> >> endobj 3500 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 514.6053 198.7943 525.5092] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_aaf11d6f4b77aa533bd09562edcea4c10) >> >> endobj 3501 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [277.7975 499.9846 299.3904 509.8898] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3502 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 486.7099 228.682 497.6138] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_aa610c082528ac5ed89b715e3f3b2e4e6) >> >> endobj 3504 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 416.9063 181.559 427.8102] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a37f73f59845f49a01fbd587ce1bd06f3) >> >> endobj 3506 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 353.1454 181.559 364.0493] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a3325a78088498051760efde16dfae9b8) >> >> endobj 3507 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [355.9157 326.5695 377.5085 336.4747] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3508 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 302.3359 181.559 313.2399] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_af79b97361d3f64e7b6fa48296a971818) >> >> endobj 3509 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [171.852 287.7152 193.4448 297.6204] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3510 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.8713 274.4405 193.1537 285.3445] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_ab5ade7dd546fe55f2c0e1f5ff7e0eddf) >> >> endobj 3512 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.6837 249.9075 215.6608 260.4379] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a7a9b5c4231233847904f841d023978a5) >> >> endobj 3513 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.6458 234.9132 314.2386 244.8185] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3515 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.1864 221.6386 251.3564 232.5425] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_adcf7114a5828d38b35e1732618716c35) >> >> endobj 3516 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [352.0277 221.6386 386.1296 232.5425] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3517 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 150.1508 156.6524 161.0547] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3518 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.2725 150.1508 393.1527 161.0547] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3519 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 132.5264 156.6524 143.4304] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3520 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [219.6193 132.5264 257.0288 143.4304] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU) >> >> endobj 3521 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [402.011 132.5264 436.1128 143.4304] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3492 0 obj << /D [3490 0 R /XYZ 133.7684 692.1046 null] >> endobj 2247 0 obj << /D [3490 0 R /XYZ 133.7684 587.6558 null] >> endobj 2264 0 obj << /D [3490 0 R /XYZ 133.7684 559.7604 null] >> endobj 3499 0 obj << /D [3490 0 R /XYZ 133.7684 531.865 null] >> endobj 3503 0 obj << /D [3490 0 R /XYZ 133.7684 435.91 null] >> endobj 3505 0 obj << /D [3490 0 R /XYZ 133.7684 370.4051 null] >> endobj 3511 0 obj << /D [3490 0 R /XYZ 133.7684 266.4704 null] >> endobj 3514 0 obj << /D [3490 0 R /XYZ 133.7684 238.8983 null] >> endobj 674 0 obj << /D [3490 0 R /XYZ 133.7684 193.4438 null] >> endobj 3489 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F51 914 0 R /F57 903 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3531 0 obj << /Length 3254 /Filter /FlateDecode >> stream xÚí\YÛF~Ÿ_Á§€¢N߇±À‰í@ŒÝXÁpüÀ‘83Äj¤ Iyì¿Ul’j^¢œ‰‚8d±ºªºŽ¯›Õf…ÿXÄ„ F[iÇ £RGëû+ÝÂÃo®XM´l©–!ÙW««/^I9â4×Ñê&䦈vŒG«ÍÛ˜K"ébÉ(¥ñ×_ÿB)/‹gÏV Çãäz›.–\ÁƒmRþòÇô&ÍÌÆén O™vFÆL¨Å»Õ÷W/W­XÁhŒª õëÕÛw4Ú€ß_Q"œUÑ#üA sŽG÷WBÂKŒ±æÎöêÍÕ¿[–ÁÓêÕ1c´4KPÌQíMF¸BBü7œ60 mí¦LdÁnZtí¦ áB‰£Ýo,·ße~X—ûÌÄmü™ÿy‘vo¿Ø¯÷é®LÊl¿›6 Da–Æ4¤ -1\šóS`+)g5œX«y¨a#^¡xÅÂÄÛ´ûú‹¡ \IQ¿únõ櫤HQÅ/^1º¡„)-AT x OeD Ze醿ásOÑž&¨I¾ÝV iãé7ГíjÚ%Rrñ_®ˆS`OO»Æ‰õÚ½)ólw‹×¦w8ˆâÄ×Ö/Þm¯“ûéaÀ?%¡ è— ‰SÊ?Û•#¬ÛÔ¬ó§ñ~ÁTüXŒjPͪíi E\”›gÏÞ§•;ú‰aÁÄ(¸T¶1è?ÆLaIicšÚCF0¾>’}9Ëè³Ñù‡˜4­ ÛÃýî¤9Ñ©ŒÑ¼Î0ÝŽh£Úyb³Ê-Íiå¹–î¤òV0×QþÕ}9¦¶Ô ’è;«e3jk°?çúôTƒöŒ©6G²/g©íO»¬ÖãŸ5K ºä”A~½Ð™QY£„쩲5ÄHêæ4ŠX­úÎ=ÉS"üÏÆƒºr'O86»š0ÁWšÌ ”·üK³Š ,.U½3ŸÀüÞ¼ÁƧ ';jÀF¸‘S¬™×·ù¾Ó§›w“UMì€?ä ˆ ɪ’ÅùˆQê;˜§¾[~¥”{ÿ{]˜C‘nüÕMC²ÎS¨Â>¡Óx—.8äSÿÇ·/~*È@n‰±†AªaD[húz‚À„Y˜.NVhNŒáp¥¤xdåT…®éZ2T÷_ .ã$‡|Xâ„C´„5œ(³²kB)Àže(ð`fÀŸßÁ\ÊI­qPâ·Cµûô æã\‡o ÆÍhÎ ‘jwÅÕ3EžóPRÍÀŠP²y:";ÿôa—–p±þàDYnÇ%ò£Óè¾¹l2eW ú…#·‘À”„i°ÿRaê34ðÔ0/2 ta£–¬BnÇ„%Š˜…ÜþrA(ç¨ѱ›|œ&’+ÝÕqu—öµä s¬e]-«GùmMócˆ ýŒC¾(‚í0mÖ±¾ýÐPÍ+ ²}g\\4+Älçï²õ]7?l“uMUÞ¥ÝtÛ“Z(À3†>Ón-ýŒüC¾ÕšáÅOŒ%Š3~Òl à‡Ôj˜þ ß=æŒ: ?åÉp˜"J2ó Öa刀ݩL <Óf"Sj ÀTKv\”NfË€ãhzÌ—}M'òe¨ésLŒû%»¥Õ’½º‘î÷ižx¨f“b†ÙUÈ gƒ !,‘‚É®yN¤‹†~Fî!ß dÖû än˜5`}nL_޾×6Ts£A¤”ßÝãV0CÙÚkãíTÖup —Ï‹u–­®·(%B,ÜK‚‰ì¬•üU¶Kò@Ü üP-i@(ܺ,ï;F?P9IùSÊû«¡¡tŽpjÜDÂS°V4QKnM%¼ãåÀÞã鮣éªÅ<Õþ^U[Á¡l°rãVý¸¥Ó±À èØÐÏ7ä;¸5¸ðê ÐGŽ ÕܰÖ€\°î°)îR|(Ó]1² Þ¦Kò'˜uy0KZM¬’|"ëô<ðž–ÌïKï‹éÄ0½$¤5Pv"õ„ÊúÔã\ Àê:…’/h|à^¾¯–`…ÿ«Z¿ÁoµBC²©‡•S=;€\ ýŒC¾S+4 ØÌɾ×­©æ†U°”3˜kÂaE•íÞ£’í!횯}þúùÏß½áþú¿ F}rû¸¬á—R¸é.üzDº}¾AÔE¦óßE¹âì:'Ú?v*ì\ Ô¶¤šÚ“Sš(êDÔ’?±xÿtDRÙ[œÆeÁ€`ˆczìb"=††H< {ñš¿4è ñZÑûhÐn`y#'‚÷¢ Õ^ñ¼C©þÜ5“°„ ­'BûXŒ?jÈ:ß‚§ã3àzA릾®ÑêÚ†ß}Rúë¢ú,;•ÓAyAÖyZQ\Ü.WÄZ>µ‹!9aø!´%ëõ+L†dÀö‚B²¯ìDH†Ê¶qv}Gi¼ ƒß©Ž"f$áX>º ºkª¹qýgéÞ¸¾£§ØÊø1+ïö‡ª²ÔÎßì~9ªná> Y`%ßø‰Å»Énlç˜cŠ<Ó„-ýŒ*C¾S[×Ú ø´[ª¹a 'ʽa³ÚxëýýÃ6-ÓíGo¿â!]ghÞª› €|¼@ærL«® öÍ|Œ4‰I÷øõÒ7Õ¿I^ö¿pÖ‹‚‡Ãõ6[7½bešß` $ë”LfFOxȳÊdH|¢Lr0®¶,,“¢.’?¤þ ¶M¿:ìÖeÛD}Þ¡d­Øx[pshç¼’Ï5'Ʊ¹’Ï¥"»g]H]:¿è,ÚÓ_W˳±J§Ae@*†~‘çiõ‚ŒŸ&@Å) N@MJÇÀ…àÞž­©à@å#^ó‘f{ÒÖôoßgyyH¶Óh€ ÐŠŠ™ùìD•ç 7”ÕU¥<äu,×+ˆÏòùs|aÃf2h À=š gzúeøÂHsÀ€ïI8‚¯¤e=1ú ÕÜà¶©€©ì Þú5n6vrf:ªŠã¿ï–çØ'Zã ÿeỬð>ýyŸè𑏠wÓŠº#§Ò„SÛÄÉCÛö_ à ˆš–õˆ{ÿëÓë¶H+ ¢êïºe’c‡.^?fÛ­¿º®Ÿ¢0ËlWxyð˧Ç?X_mZ£¥e°R¢×T†¤õª4Ï6›´Ê:¾ÆeDuµ®Ï‘JgXŸ&³*·&ÇE ÒŽÎá߆|ÒLyŸ+JýòC µºÍh#ÉÖBNéJÒ¯Ù ÕŒB9HÙÌv%(ï‚oñ`¥¤¶›/Âëô-ô¹¿×ôWÃ¥ïÂh‡×Böò‚Ën Nšš6r@¦L<ˆ­guý.ÒíM·Æ' Å}r[¿{²›§=6ÃÀí•uòı>¼Žê¹c3LbÁsjæØLKægº¶åÈq°œsQÈu˜Xä\‹@)³&êc„³©¢F‚EˆRüÓO¶h˜o.øÄ&„ʦ6!ºÿôaý–£º€=(Xƒ ޼ ž±Ž¼þá2|Fq™=Ž˜§ÑMŸßÉ=N(´ò^ #ìÄ'BrXÄF-zï|ëÒîöej«…‘ñH×8Ç^­Xó÷³6‡ „ð¿ÕÜ\Pœ.;bîÞá–š®cî"m²æuP×›«ÎëÄ%Y:ˆµß¸·ú·Î/²4v|Ö˜ôwÿSÇÓ@‚(Ö^•XÜBåÇSßè[ߤ;<çÐÀʦ&WÿèÆ¡v»i½ZÖþF`þŠégŒ?Sõ_7ˆš-³fµÖ…«/ö>Þ¦#}¶¸e쎢&ûä²/endstream endobj 3530 0 obj << /Type /Page /Contents 3531 0 R /Resources 3529 0 R /MediaBox [0 0 612 792] /Parent 3522 0 R /Annots [ 3535 0 R 3536 0 R 3537 0 R 3538 0 R 3539 0 R 3541 0 R 3542 0 R 3543 0 R 3545 0 R 3546 0 R ] >> endobj 3535 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.4118 531.2876 235.8874 545.2353] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [355.946 531.2876 379.5175 545.2353] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3537 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [337.4351 520.3637 372.3737 532.8816] /Subtype /Link /A << /S /GoTo /D (CCfits_8h_source) >> >> endobj 3538 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [265.1572 494.6251 288.7287 508.5728] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3539 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [325.9197 483.7012 349.4912 496.2191] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3541 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 340.2582 156.6524 351.1621] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3542 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [152.75 310.6786 175.2255 321.5826] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3543 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.2777 310.6786 370.8492 321.5826] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3545 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [222.6641 208.117 246.5444 219.0209] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3546 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.0428 178.5374 357.8789 189.4414] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) >> >> endobj 3532 0 obj << /D [3530 0 R /XYZ 133.7684 692.1046 null] >> endobj 678 0 obj << /D [3530 0 R /XYZ 133.7684 667.198 null] >> endobj 3526 0 obj << /D [3530 0 R /XYZ 133.7684 650.3448 null] >> endobj 3533 0 obj << /D [3530 0 R /XYZ 133.7684 650.3448 null] >> endobj 3534 0 obj << /D [3530 0 R /XYZ 133.7684 556.5927 null] >> endobj 3527 0 obj << /D [3530 0 R /XYZ 133.7684 399.5815 null] >> endobj 3540 0 obj << /D [3530 0 R /XYZ 133.7684 395.0983 null] >> endobj 682 0 obj << /D [3530 0 R /XYZ 133.7684 285.1494 null] >> endobj 2200 0 obj << /D [3530 0 R /XYZ 133.7684 262.7913 null] >> endobj 3544 0 obj << /D [3530 0 R /XYZ 133.7684 262.7913 null] >> endobj 3547 0 obj << /D [3530 0 R /XYZ 133.7684 149.496 null] >> endobj 3529 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F14 944 0 R /F73 1481 0 R /F11 844 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3550 0 obj << /Length 2446 /Filter /FlateDecode >> stream xÚíZK“Û¸¾Ï¯àÉ%U-¼A¨’Temï&{p[©¼>pF «$j–¤lO~}H|j'[ëumj¤ˆF£Ñèþú!†?Æ’ ¤¦ˆ`.£»ã Žö0øý qDqGûdßnoþð‘FZRmï}nIMh´Ý½_QŽ8^Çc¼zùòGŒi]m6Ûµ¦«ôö­c*`àV•}}›Ýgåš$«¬¸ƒQ"µâ+ÂäúÃö‡›×ÛN,o5‚–ÄõÓÍû8ÚÁ~¸ÁˆéDDŸàFDko‡I„öËáæÝÍ?;–Þh3Õ(QaôažJ¸Rˆ+-FTBé¨J„B” Ö¨äm–Ù1+êlgw}_žŽýRJÅڛܜŽ*÷Žæ­'TGû†B ù¡.góúsý×WÿH“($Ù@šž­tTK2 ¸Ðô! Œ„v‹ŽŸ‰g¦q³´PQKKž ˆP•\Ì1D=ÃfdÅ–iu:œ…% 3‰˜Ô‘½€ƒ¥I`òR€É¯Õêm6w–KCó#à!\ÈU^Ô–±b¾Ä˜é8ÃÔ¿»lMÄêó˜°½„3G ¼‰]åîTTŽ»HüÝQ$»Í½ÿ˜—õ9=|˜> x¡‹%¨ðÈæü‚0„)¶Ç_fõ¹,¬C¤öQ4°H`~Ö'÷|p:5Â{¾‡Êº[¯º}ꨰ1¤œ7 oÊÓšŠÕ§j°m©CÀž„^ðÁŽ>ö'Œ(`À×Èñæôî|÷p1°ÀÿALÁìP’¾ÿµT ëSÆ‘Hˆ×Ïï×1£Ôª×¼äÖìÏÊ>OçÚ½4تL‹½›÷æÏ•#®Ò:¯îŸìcóÄZ#®'æˆq¢=þÑ’²+¤8n þÔtÈ2f„¢Äì1&i!è<ë¤cÝ7@@‰„!αZ2†–>ö'ŒÀ¯Y¾8Á*£¨Æ‰ûÂ@à¡ \(¦ï-Õ’š#E5 E0ë6˜ þŒ>~ó}‹ÀÔt©ÄÅ!á#ìàbyóݘŽùq>߃Â×Ô}%ñmZe»oàWBÝW˜ãø|÷÷·Û·yc?–)¬U¶«¦…ýŠ-ƒÎ¹›s&©K,r/‡Q†&™ 6O0RŠŽbC&% %“Ù0D xÌ„!*§Â£ëÈŒ°¯?ßeuP=RÁž´Ž|®C÷ˆ1c_NGÔ'æ°!bÂĨ݀'ÆA5üÅb ²Û5»]̳¤@‚2:‘gÙQ2±voøW_6N Ž·éßeñ–ИPr’LgœvyÛW æa¼'‘›à±ZgMJcÆH ±Œƒù8—W:¹¬YfÑ}ŸáÌ’0 (’VK3¡ ApêØ’—P#Hê]GքܶØlš¨gÀû!nüB†”0D뉠‚yoH‘0&jF‡-·¯õX)ì•?÷\!7ÀÆ0’‘ëåŽ.8°G@îÌ@)ïåSÀWÛÄŒ·‰|Øåé¾8Uu~gŽYU¥{7øXæ®ô‘OYÑ›l9Æ! [S0ðè ½jÓA—¿ ÐB?‹üñÓ÷ ¨4Çì÷€¯\k†°oPÎ,ÕÌ žS-ŸU3w“¯­™ý 35s ÔÕ5s(Ídͼ ÀÛ|ÍÌ%ät‰[t©fö‰gjf©*äÛ$¨™™kïØ 3¦R®ª5YÕ»Íæ˜>Žd䡤°rüpA°0JÛZºª0öߌ”æ ‚f\”æ„û5®D bJWc6"•‚°O[V^ê…ÝéL:°¹0ÙŸ`IÛ’>N•äP9@Ú® ï}^ò"ƒ,Y‚¶+u»† ±P¨{Ts¾@E…æÏ­ÓÓ²L»b¼¨Ó¼€­å+4^¡7XOñêñ|{h‚ ¼4q"++àÃ1ß?Ôöõ6³ÏsÕàuBÁó§sV>¹OŽªÊÿcÞˆnJÚ`èÒ©édoêêJ j•êbYimwyL‹üñ|H묶0êKKt—ÖiOÏëB.‹°âj$ô'Ì aGö³0”f dp›GB&0‰W!¡O<ƒ„Œ›Ð­t€„Ü!a5} #©œf±SÁ®Á>(à®Á> :ZÂ>*E2} ÷°Oˆåæ¦àð´mŒÚœ@‘Ù5N;”kújsÆ júEìcÌ´|¤^?Ÿlý¬$Ε¿ú­¼rLo½Ã5¯±Ñ±êð!½¤Ê ¬Á³:ßÞšT~Ú]÷¿Ê]|âw¡Š"" ÜE8wù¸¦|uÊwó-ó]vÈêìåhã¼M=àã»Æaìû‹‘n:%0C]šéÀîMzÌFŒ^˜m‹ •>f¾`—]2³Ü@§€+µ`š>ÙŒi™"Ì…½Ä° L3hwVÛGgP ׊^¸-ÄŠ–>ö'Œàô€ogÍM ´¸Áסæ¥T±–hii0°D .m Ë:+ªÎ1Ú;‚L`º3H±°MÔLg"¥ìªÎ 5ÐÍÉBc°¥2‚ÿÃxHZ‚Œµ¹%«‘þ EÂT£ó¡òÀô±6`êI;Þû3ýH®¦¶lÖ„ì›&Ã=÷é X+5VíϬ ûffß ŒFþüž#‡@G@‡w»íèxMÿêËÚž£\lO¨_¶=1BAy®£06ÑØ ¬ÁâÕOmßFÊs&Â-Òö¯2„&:ò–ûòM#•Ö˜µÐ»9Œ£h<-lÛPlP% À£W—u/¸[ ß ðòMð> endobj 3552 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 654.0823 288.6357 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) >> >> endobj 3554 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [166.1676 592.2428 232.3689 603.1467] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn) >> >> endobj 3555 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [148.6225 580.6612 193.2347 591.1916] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) >> >> endobj 3557 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [159.9586 513.8411 224.5261 524.3217] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn) >> >> endobj 3558 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.6058 498.4189 224.5261 510.7526] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn) >> >> endobj 3559 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 468.2765 288.6357 479.1805] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a06d5f1ebd32e0228790c8b4e4b57e2e4) >> >> endobj 3561 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 364.9024 288.6357 375.8063] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_ab121d5ab64abcc0a5df4ca7955bec2e9) >> >> endobj 3564 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.501 246.8927 239.3813 257.7966] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3567 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 116.0997 288.6357 127.0036] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_aaee3fda1eb075ef4ee7a9178114bd00d) >> >> endobj 3551 0 obj << /D [3549 0 R /XYZ 133.7684 692.1046 null] >> endobj 2223 0 obj << /D [3549 0 R /XYZ 133.7684 655.0785 null] >> endobj 3553 0 obj << /D [3549 0 R /XYZ 133.7684 650.5953 null] >> endobj 3556 0 obj << /D [3549 0 R /XYZ 133.7684 535.6791 null] >> endobj 2224 0 obj << /D [3549 0 R /XYZ 133.7684 469.2728 null] >> endobj 3560 0 obj << /D [3549 0 R /XYZ 133.7684 464.7896 null] >> endobj 3487 0 obj << /D [3549 0 R /XYZ 133.7684 365.8986 null] >> endobj 3562 0 obj << /D [3549 0 R /XYZ 133.7684 361.4155 null] >> endobj 2225 0 obj << /D [3549 0 R /XYZ 326.9916 294.2609 null] >> endobj 3563 0 obj << /D [3549 0 R /XYZ 133.7684 287.6209 null] >> endobj 3565 0 obj << /D [3549 0 R /XYZ 133.7684 231.7253 null] >> endobj 3566 0 obj << /D [3549 0 R /XYZ 133.7684 167.0176 null] >> endobj 3488 0 obj << /D [3549 0 R /XYZ 133.7684 117.096 null] >> endobj 3548 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F11 844 0 R /F51 914 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3570 0 obj << /Length 2555 /Filter /FlateDecode >> stream xÚí[ëoÛFÿî¿B臂¢Í¾¾p—G/Åmß§4(h‰²y¥DEÅvÿú›å.WË—”´¹ÄÁE*’;œ™ßpLfþ#3ÂRRó™4Ìål¹9ó+üîŒx¢E ZÄd¿8{ú’‹™AFR9»XÇÜ’†ÐÙÅêmB9âx¾ ãäÙ³Ÿ1¦õîüübnh’^Ù|A énç._g묚dÛ%ŒiOSówߟ½¸bE³¤°$V¨ÿœ½}‡g+XÃ÷g1£Åìn0"ÆÐÙæŒqx‰Ò>)ÎÞœýXF£Í«cÊ4 X˜ÁÒ© Qa íϸ⤂ uЛP3 z“¬«7¡e‚ô†’^wïç”'e¾-QÝѤ É¹JŠìü|•Y½.ç„$·;Gû3°\Ȥ(·WVO_*  âJÚÎl9ÈdW?qÔ]q ÒZjO<É Öሶs‚“ýæ6¶‘è/ž­Ž¬‡ ÐoÙ’±‰1}“ ¥ Ó6!€›6ê”=Gd;P:jÏ ¡J7ó: ;[MÝO•n¯ü“rí•s*ÜÀ]¾íÐ×Öð‘Z€ª$å¼aþª!dÉeY_»«ú:ß¹«t»je›ôÞþ/«Š2]ežÀ?Úå¥gw{/=¿´("ј‰%;XÕ²/¸e°Î2`âÒKççwªX= +!ÈAš•8!L–ÎPsû®#Í/«´ºwcÍÒ, HÕõíj7ÐÌ¿7Yµ.«£¬Kxœz¡íí¶7¾Êw¿˜Î œ'óÃÚëÒÑú·í[Sæ$ Cð8s²CÕ•§y=jXñ G +Y½|uñf àp*H_‚¾A·T§æ)NIwÞòòß°õÞP½ÁîoV)ì,ÈC5RZ¾IŽÆ †¬ï$aJÙQïH‘R ÍBH˜ÖlÊ=zº@f¥þѺôJ7`•õv»¬Š"A0›Å캣a žy š– Èx´Í¸¬”1IŸ22M¦Ôá7y+úñ ”HPF'¶Â’©­èöiŽÃfˆ3A¼ÆHG^7¸ˆ_Ç3ð|ÊèÃŒU6[÷ùMOÈ5@jŒb°i‰(³–kƒ8çt"8:6 d `›s‘äõîEUÙ«rTNÀV€…ÇÜ)çëÛ' ‡–ÈçF-@«v£õÈtB\ ëì@}í㘯¯äýÜ2.>ØÛ´(Ü• myÑ‹lUVï+Ïì6¯¯Ë½Oa³ª‚ý"†>£‘6¬»Ç_:òð;#ßWí÷¤s.ôf9Ø/†Û•Y.˜-!˜NeV}ÂÊìeíîêÕùùûlY;‡òô%‰]%°LÑœR+ËŸGê¤)»çýú,éBÕ¸>û×S\¾)ñ*g»•£šSìê‘·Eî€nŸ­a¨@´zË!‰áœ±ÕÛ˜ìH‘3‚¨&|ªz»Ëê©ÝŸR>[ìn²en·ÛU^qryïY·i{Óz´ªÒ{kÓE5°0„gŸ¦ªÆ±„üJÊY[ ûȪZÌþ±ªöˆâÿŠgíQ¦åDò%a)F sǦ\ÁÙŒbù˜ïÃÁòƒÕŽcùÎj/Zçã>í4±aÌgÅ€¿—Ú\f1Æ_MCø‡¤µGÿÉ <ö#&1'ÂA û0s=â1y„ñÿ;/a¼õ­ @˜–äŒdãcî0~Æv`Æwvà$ŒßoWYUÜçe>7¬ïìù#¬ÿJ`=¤÷€¤=ëÁ€icÝõÚÃú9…ô0¬“¬n1}þ[sC{C¨ƒºÍ3ò‡­OMn(óØøíû¼ª÷iñn 3 ÈW z ÇdG2€cÄ(sßoã£Î_ IÀ&->ösR•¥·éêm•ô]w{¢òM6Öõ7V ^LonšYáfݰSÚ OžÙæ™W?øáý¶meR®õ§Þýr•Õ¿´Ræ¿Ù> À‰É~—­÷…c湪¤¼¬Ó|ëœ ÜnÒ»|³ßŒ59½zúƒ÷#kËÙNµÌ³íÒ&éë/x¤‹ë¶±æ6o]Upz]Ÿ—÷:q¶e}prm™aÝê3í›ã1LÕŒB©8Ó'Bg _Ä/ eÈ·%s]g_Œ¦ß"rWŒÁÙöT§&—IMHwòÌjù®Î¶¶ÏÍuÓA€írbzå››"ÛdÛ:h°*7Ã8OÅ©E¦q×] _Ä/Œ½_+ÔÁ©¼¸«ÿñü_i4¬€ ¤éÞ–ê” nV4éahS®ó“žò¶1ñoK!}Ç„t‹¨fXD%fÒ㱬…/2“\–e1ÖÊb‚ɶ@ ¾èe‘ÚüàÊqmBµ•8Ö:âuZì²ÖÔvÀª¶]v¬GÖ–¿T[]mk»0çñÚ®0¶(+—vqh½}SWùhqòUŠ¥:^Ü=ð/îRÅýø¯ÍI»ßù#–¤%V­'t_bÆ”)$OžÇñ…CŒW‚ñÞÂc^96§§P¿ª=ÉÇÚP[ˆî-ì Æuâ6¶ø¼UãÛ›ª¬a…Ùj:pÈ*‰œ8ˇ“ ÜD)d¸q;ðÍ?Ó&´ˆ†Öàª}£l›Û~ã:\m ]ìoM¹}ëíÎ=Úf™k!·ÊÙ®eånS?꘼é×OWžÁ5\61Ú¶önm¢8Yt§vÓ¶í6µòU(ćöÓ^âŠç”cYûgáZXìGÛ­lw  ‰ƒM˜J`?›ë|Õ4ZaüÐDí73ÁE3íò€¶‘Æ:áj× ÚîèÑÏaÛ9DAÐñ´oÆMíˆI>Z;³6‡ùÃ1Û,¶Ydü—!ecud±ÚX©\ø.ÛÚöí6"·æÐüeÈÞoÝólé.¤û¡?|’<'ô\÷Q’Ì6xt?É> endobj 3573 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [132.7721 590.44 155.2476 601.3439] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3576 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.2341 484.8613 224.5261 498.809] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 3580 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.2341 334.9033 224.5261 348.851] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 3582 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [344.3064 248.5907 368.1867 259.4946] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3583 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2132 230.9663 288.6357 241.8703] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1ExtHDU_a5a480387701525f75ea450dac7510f23) >> >> endobj 3571 0 obj << /D [3569 0 R /XYZ 133.7684 692.1046 null] >> endobj 3572 0 obj << /D [3569 0 R /XYZ 133.7684 667.198 null] >> endobj 3574 0 obj << /D [3569 0 R /XYZ 133.7684 575.2726 null] >> endobj 3575 0 obj << /D [3569 0 R /XYZ 133.7684 510.1664 null] >> endobj 3523 0 obj << /D [3569 0 R /XYZ 133.7684 475.4965 null] >> endobj 3577 0 obj << /D [3569 0 R /XYZ 133.7684 471.0133 null] >> endobj 3578 0 obj << /D [3569 0 R /XYZ 133.7684 412.9609 null] >> endobj 3579 0 obj << /D [3569 0 R /XYZ 133.7684 360.2084 null] >> endobj 2226 0 obj << /D [3569 0 R /XYZ 133.7684 325.5384 null] >> endobj 3581 0 obj << /D [3569 0 R /XYZ 133.7684 321.0552 null] >> endobj 3528 0 obj << /D [3569 0 R /XYZ 133.7684 231.9626 null] >> endobj 3584 0 obj << /D [3569 0 R /XYZ 133.7684 227.4794 null] >> endobj 3524 0 obj << /D [3569 0 R /XYZ 474.4463 148.3696 null] >> endobj 3585 0 obj << /D [3569 0 R /XYZ 133.7684 141.7296 null] >> endobj 3568 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3589 0 obj << /Length 2127 /Filter /FlateDecode >> stream xÚíZ[oã¶~÷¯Zà@Ö\ÞE§}è^ŠhÑîú­íƒ#Ó‰[ÊÊr“üû/’)Y²¶-ÐÝâäÁ”8šg>‡! †?’ÆP&O¤¦ˆ`.“ü°ÀÉL~» hÕQ­b²oÖ‹—o¹H4Ò’Êd½‹¹ $5¡ÉzûKJ9âd¹"ãôÕ«_1¦Íñæf½Ô4ÝÜîÍÍÍÕûS~ÿªÚŸårEí7Ç£¾3;S/‰JM™›åJ ªSÂÔò·õ÷‹7ëNÇH4A–ÄjøañËo8Ù‚Aß/0bZ‰ä0"ZÓä°`>"„´oö‹÷‹Ÿ;–ѬûtÌ3<ËÏ´ñŒÈž‘¬ï‘!Êë<Ìá»àžß—”§U±Ó©ê9K pÖ2K­¿Šò.Y™6ïª%!éãÑð+À‰ ™î«òκèåÛŒÅjdq…9(oå[öà[‘›žº¯´FJIˆ'Y"!! 8sI?Žˆÿ¯„†pñêÔÄÙ—Áš ž%-U„Lé">h!‹tqý䦂NZ®^˜Ú˜äTÈž©p›M‹7düCµ L½)ï.v!È%I?'·œ£2äùÿ3ñSg¢‚dc„O¤¢€] €³£r[ºßÎ'³0âø¥áÐΉ<Œ íò«l ˜(ùúÛ~»éûMçâgäœÿÉd¢4“‚\+» Ø¥˜|TÙ%œTžÍÔ]™®7O¹yhŠª)¸`EµNb®——€ZFÙZ*Ò3 ‰¡ÚRdÊ%¾(ãP‘"ˆ¢?_Ietb9ü,™ZŽþô?.öód†8ÔëK`Žôôõ“«øsœ¶eZ%Ö&Ù ùM ä Iªº °¯ê»0÷.%á|ê ”a¤3¥'¶ OÇ’ŽÌùÛ%iÑßÔµUÛ`)l°Gܯ9çß·NÒLäq¡VàU»Ðjdz›XG×[æ>ìT¡“R ‹ÇS¹5õþ¹€Ã¼{Î}¡;Z¾ÙïýhgËïM±lyµiNu`þX4÷Õ©=#×5¬·éåv¨Ršõ×üSï†&üÅÝð_ƒî Ñtm³k{'ˆ!¦ç[ܶüx6hl‘?ÕØ:=l7ëiiB¯7‚¸¶§H­gA1Ù•FØÓ~çöZ Òh¾F,橮 t؆%å¾ð|9gœk¸O3øÝUµmwR`h akD0„i"Ø ªwô«øƒL¹àkõ[/NǺZ‚ ÞÖ5FÍQÍ ïƒé²/¼uHmަñCØ`¼gв1u¹Ùû×_´þÿÂ?oš¦.n—0¯1h¹b˜¤§Û}‘¿XZ¥Ò0˜ýo-Æã½)Ý‚­´F\@A¿òxCüÉȘ­#õ@§ÊþÙF4[æuÛ*?LÙll9À¶ªÛh)Büäçø£ƒâðpgJSC@Á»º: mWí÷ÞÊÛ|Û›ãÍtþ`‚Åt."²‘ü#Xª37×Ë¥º+’še3r[ªY¹PÝd¢/¶‹Zt?i5S Û¢¼nuLvÅêŽlÖêër;«çäz«{bÏVçOOÓv¾éŒéÚbâv ØÂh4™à6IäÕKŸîݽŒÏW?voaÃwf³¦v7?“¦€T*²¹‹«˜ì ð3À*‚3Ñ?²vP_1JÒ[ž£RË>·tOÖÖO§ÚÄß» ª.Œýòw{÷bz_åÁöÕñÁä…uÍuûÂ@½e7§Å³Wnƒ¯¶ê„¢È_clóÔÛ·Ú2mp53@¬/‹2ߟ¶ÆS’¸þ‡u§Góß^pÎ丽> endobj 3586 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./classCCfits_1_1Table_1_1NoSuchColumn.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 3598 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 500.00000000 217.39000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << /R7 3599 0 R >>/Font << /R8 3600 0 R >> >> /Length 3601 0 R /Filter /FlateDecode >> stream xœ•ËNÃ@ E÷þ /…O<¯,© ;¤ÒüD}¡†Rµ|>žtJÑ Š’±G×ιw‹†M~ÊÙvpÿp±ƒOú.` Ü °m‡Š"V¼³ ›9‡Ù‘‰Ñ2%/ŒM7£Ñ|µßÕuóú¶žÕõófzh—£ÍúÐ}Ü6ï0n`S‚à—nZÁOû R>:pÆäb},¼ ä$h;¬³` ¥"ö ’(ƒt0ÅÉÿ¼DGÁ‹,$T/ú·³Ïýjsvq…›­sdÒ‰þÔ£U¼ž{PÿÊÔ ‹%‘Œ!¤G'}Ð1h`~jÝE:¥M¢[Ý×§pu¢HJw&ȃ«¬ÐHŒGf›Èe‘g)Uƒ›”(¥‹Eó;èôÁ‚Ïendstream endobj 3598 0 obj << /Producer (ESP Ghostscript 815.02) /CreationDate (D:20111206161259) /ModDate (D:20111206161259) >> endobj 3599 0 obj << /Type /ExtGState /OPM 1 >> endobj 3600 0 obj << /BaseFont /Times-Roman /Type /Font /Subtype /Type1 >> endobj 3601 0 obj 293 endobj 3593 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [185.2341 526.396 224.5261 540.3437] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FitsError) >> >> endobj 3595 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.1069 452.7623 231.9872 463.6662] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3597 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 143.6914 223.88 154.5954] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn_a5f21d893d831bb74eff8703b3c6d0b1e) >> >> endobj 3590 0 obj << /D [3588 0 R /XYZ 133.7684 692.1046 null] >> endobj 3591 0 obj << /D [3588 0 R /XYZ 133.7684 616.8073 null] >> endobj 3592 0 obj << /D [3588 0 R /XYZ 133.7684 551.7011 null] >> endobj 3525 0 obj << /D [3588 0 R /XYZ 133.7684 517.7548 null] >> endobj 3594 0 obj << /D [3588 0 R /XYZ 133.7684 513.2716 null] >> endobj 1396 0 obj << /D [3588 0 R /XYZ 133.7684 381.0228 null] >> endobj 686 0 obj << /D [3588 0 R /XYZ 133.7684 373.9739 null] >> endobj 3596 0 obj << /D [3588 0 R /XYZ 133.7684 162.5504 null] >> endobj 3587 0 obj << /Font << /F45 711 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R /F22 704 0 R /F51 914 0 R /F11 844 0 R >> /XObject << /Im28 3586 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3605 0 obj << /Length 2557 /Filter /FlateDecode >> stream xÚíZKsã6¾ûW蔢ªFÞUå²óÈ&UÙÚÍxkI”ÛÜH¢CRñøßoƒ(ð!Ó³™J¼›)‚Fw£_h²ÀðG„1¤¤æ i("˜ËÅöp…·ðòë+ˆVÕ*%ûËõÕ—ï¸Xd$•‹ë›”›@Òº¸ÞýQŽ8Y®Æ8{ýúGŒiS¯××KC³|³·ëõßÊ÷§íÝër:—+*€lŸ×µ~oolµ$:³Ç­]®Œ &#Ì,ºþöêíu'c²5A Kâ$üåꇟðb }{…3Z,à#b ]®‡E„8³¿zõŽeò¶]:e™ŽFHƒuæì'¢LðÎ~”¦öQ,õ¢#söû‘R1RW000S‹”áp_ŽŒ& †í;7S݆Wß§Ò ¤óÂy²žl½£ÈH)EZ3ý¤Œ«Žjf{0bŠóm°Àűñ®RwvIDöá•Þ”åÞêboÍWMu²°‚Œ­‰‘axsЍ!“’ 4RDsX*8i@„G«† jHÞZQº\ÓóVN·¶ö¾)JçþDfÛ¦¬ÜHd7~ 3»¤8ëS5wÕ’‹¬|8zÚâ&Î[?¨–Leö—“­»ó4ÛdðÚÙ®¾·ÛÂ…¤'ÙæÑóƒ7U;[Ôþ÷X6Îv 2„32B›Vü{¿S 6F—“€?Rí3 ¢ÂYÐýLÇIB쨼Y/ÏcaJŸó Š™æmr8u§ÕðTo«Â€c ,fB8%›ˆ’Ž›âHi­†çËà›Òý’lcÃó]U.©ÈÂûH—{²›%q±?U6]³Ê6UaÝÊ_ßÛÞªxÔnªwÌnÂà%UâÑϹ#ûWÝ)8eáóx^>¦Ž§ÃX‘¡ŽZ!I9k©ÿugŸ1ò -.¥£3 Á付4/'¨H¿JLØ~Ä× r½Ô¸-4#1´F‚P5cxð‘jnsƒ‘fl°y¹ù·Ý6ÞmÁï¶²9¤KR,F+LßÙ|çŽ$%Ê]0â1“È0N7 ÌýƒÏ0°ùö®=¤$O,…èŸlÇLÉlgŸí/h•]ßjÿ¦p\•‰‹0ãÝ᜔TÈJö\Ú/²þEºW•$'·uikOíòL²CQ7Ó "bÝòetƒ4p”@šÕz¶úUº`ªù:AþúæŸcç"ˆc>`ä\jn[ ¹MAÎémë8XÊF+äÍÙ0Pç“Û< lÕð1Œ;ó¶ô­“¹ùÖþíªòi4¬@þèiwy“ûéºh;³ä$@ M%ýó:Õ­Cîpl«rZ¼‡;병{ðŽÒÒœûÁ‡b*ù&¼ ‘áWÏKÇÀÀß…!°AЬ©?èèWé‚ñŒù:ß}sý~$‚Æ€à¡Ã>2RÍí«¡ÅDô÷í€k‚êØ ÕM~l — \!÷IzE¹D‚1“µï?¾qÇM}ôº_ïP4_0dô.VK|®î1Ôƒãåû}`åÎ6aÝ}UòÊû`˦±Õ1ßC¾LC¾ d'`_í‹ãídìî÷ö Gr¨|Èv•Ò ìËòçÓ}p›ÇP´Ú×—UÙ—¨\ÖÛ±ƒV³V*jÌ(åÝåµ×<¸íKÿð«c jÂÔê!੤ávMD LC5vãüèYÜ^·þ…ÎÊHàj(ý`šöUà>¯@¿fX•³uP;úCX†PÊ·Û²Úy¶Â·½„÷¶®Ë.Ró&Žª¶ yèè¡ï4›<ƒÈ©ó¤ËÝ#‡J<«{L‰Ÿè9œ°ÑÆ$Ý#8µ„ð©N¡‡ò‹®ìM¿)·§³^6Ò”“©Ð‡’HQ®Ÿ§&6†ÍhÆ ÀCŽÓ¾˜¢) .ÁG7K•u0ÆÎ&|¿âŠÎrÅ•kAŽuã'ßGgð…3×ïK£Ð™aÊq+‘÷ðÿWž¶§à£%}Q¦8{aˆëÏ‘÷GGžÒHºû‚Ë‘'µË”,iú.Æ^ÂòÅÞPÑ ±—*Ú6qVA»ú*©áÇú†ª“2¼ƒp†N g”'nA"ýŒ¼c¾ñd½ö7ÒÕ¦¬íwån|1}‘ÂZDzm¤š„ãö„ØÀp¡ã©mÓÇ›Ð]¢Ë™ê9Ο;SACƹx0¦öR„ÎcÊ!=pÙÆô·cª#0íÖ†í¨Ö,¶ãç•“˜b6…ä# ¢La`è2…û…?ô¥#)ÌÜײ”ì èK)ÀfØÿ'ôeχ¾i?1p`êV£LŠ‚äeü(aæ>utô«tÁ"ò½Œ…à].ÑõdFv¤šÛ™\Sð¶·s¸_žÄ†Ê^\¹oåS€²(Æäc1ápŠŒÊOˆ‰È}{Gª„à óß ëFÃú3þ_èɉ Hu¹%wX8"o²'OX¾œ–|¨çtGž*ú,0Üe«É&óYâ3~q‘Ç â’±4Ü‘= §,_Pè ½{©¢Ÿ ÷Œò4ü´¼c¾†û"]DÃO Ò¡á¾áþ+4ü’çÏ©`@ GLCŽ&ýÍÿôœ@7‚ b4ýOo‰ŒrŸhঠ$Pî;ô¯íÑVyWã¿e´ÿé} 1ùÆný@úŠ ñ#"ׄ®Exjÿ'#zhæýÿ#xS~x¼µÇ±ë*‡[D'Zb°ÿû$uVendstream endobj 3604 0 obj << /Type /Page /Contents 3605 0 R /Resources 3603 0 R /MediaBox [0 0 612 792] /Parent 3522 0 R /Annots [ 3607 0 R 3608 0 R 3609 0 R 3610 0 R 3612 0 R 3614 0 R 3617 0 R 3619 0 R ] >> endobj 3607 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.6787 654.4559 223.88 664.9862] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table_1_1NoSuchColumn_a3f2a9ac7e04e28c2c13b33934a8ba485) >> >> endobj 3608 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [165.6286 542.0561 189.5089 552.96] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Table) >> >> endobj 3609 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [158.8296 518.1457 182.4011 529.0497] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1HDU) >> >> endobj 3610 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [356.3316 506.1906 378.8071 517.0945] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS) >> >> endobj 3612 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [264.8552 326.8455 298.957 337.7494] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3614 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 274.0193 398.7049 287.967] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 3617 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [302.4836 187.7067 336.5854 198.6106] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1Column) >> >> endobj 3619 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [316.6135 134.8805 398.7049 148.8282] /Subtype /Link /A << /S /GoTo /D (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) >> >> endobj 3606 0 obj << /D [3604 0 R /XYZ 133.7684 692.1046 null] >> endobj 690 0 obj << /D [3604 0 R /XYZ 133.7684 614.9286 null] >> endobj 694 0 obj << /D [3604 0 R /XYZ 133.7684 433.4575 null] >> endobj 3602 0 obj << /D [3604 0 R /XYZ 133.7684 411.0994 null] >> endobj 3611 0 obj << /D [3604 0 R /XYZ 133.7684 411.0994 null] >> endobj 3613 0 obj << /D [3604 0 R /XYZ 133.7684 311.678 null] >> endobj 3615 0 obj << /D [3604 0 R /XYZ 133.7684 264.6544 null] >> endobj 3616 0 obj << /D [3604 0 R /XYZ 133.7684 260.1712 null] >> endobj 3618 0 obj << /D [3604 0 R /XYZ 133.7684 172.5392 null] >> endobj 3603 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F51 914 0 R /F57 903 0 R /F73 1481 0 R /F58 909 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3622 0 obj << /Length 475 /Filter /FlateDecode >> stream xÚ­TK›0¾ó+|„îÌøæØ´]i•Úå¶»–8‰‡š%ûïk$dK–K…3öÌ|þ>fŒ ܃ …à‘Ž%Ó†8‚Ô,/=`k·ùàa^¢ÂqØ×ÔûòC*f¸Ñ¤YºWS\$–.Ÿ}’\b"ø‹Å 5û$IC~öVØ$ùY?òÍ¢.e„¤\X‘í÷ùÛ®ì.ÀØ·UnƒÐ(2>J^ÓGï{z9ãyÛþñž_-¡G¸0±bGçGcˆ•ž. ‡•Â{ò~]JŽvÏ©SÊÈ(â22jB¢IeTÄI(qV&ÝØŽä²Î¥­š¬ÙÖ½«z×ÍfÛK‘_U9~Ö;k[Ù]ÖØeŸ¹«Ë!ÕÅŠ¢HùÇmµî–ÚÿPØ}r_H\K0s1 ›à­€èøZ­åýB¤þÁUµŒˆfp‡¨YܘëHݦA ç–ã›û¬Ñ%ÆFα…}Æz›gý)î•õ nÏz {eŸNwydž -'Ew/r£Ô©‘‚ÈïÍM$â›iNÕòx¸íòaNÎ÷È¡ïóo6ï Ý}; u‚”¨Þ[µ³0 Øp'uÞÛ{_ª>½»Áú(Øeà'û É+zendstream endobj 3621 0 obj << /Type /Page /Contents 3622 0 R /Resources 3620 0 R /MediaBox [0 0 612 792] /Parent 3624 0 R >> endobj 3623 0 obj << /D [3621 0 R /XYZ 133.7684 692.1046 null] >> endobj 3620 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3627 0 obj << /Length 4203 /Filter /FlateDecode >> stream xÚ•\ÛŽ$G}÷WÌãŽD%y¿¬xÁë5‰™€‡öN{1—Uw¶ùz"³«¢²òµ²,{Ô'ãdDF^;N‹ÿˆ¡sÖë$\Û›O_ñ›Oðáï¾3Hi ÿl|:áÇ“Ô,pÛ´Áo&a˜ ‹Ÿ2i" þ'³„½™¬Ìp"øë»¯~ý­q7B2hnnî~̺­%“Vª›»û¼ùîùþx+Ä›Ÿoÿu÷‡¯Þß¡á þPíf…nº¸í˜ÓNaÇ E`ÁJ»í—Ì› S¿þÉ]úõ·Rf`†x‚ˆùóï¿ùkÄD/…×À$ ÆÈôé»wÿä\^ÎoßFܯJÿ¤°Ìs+o,ó\Ë«ñ£Ó§ó}æâ§¼ArgÓÃÚn쌡ꀂ¨^v ˆ"¢ZŒ¢ ŽëoÏîn=søáñx 4‘FõBµmQMIf¹57Æ‚ TÐü”7h­²»¥UŹh`BüeÌÅZY‹¬µÓÚ1c¸Þíô‚'éK»Éi]ñÀ E9½ Ö5Qœf\y—X¿~xþ¢<ÉñuÀ$tÀ {c¬dÜ+ClÁOyƒFÀ*»)`®ÎRÀ)˜)[þjfÍ(‚u ˜áLH¯6¡¨œV3)•[ácç?å ݨì&çyÅÃ*¼Õ¹8/(ŠÕ(Ø€"«òL8u̓¿ÁŽ!Þ_) ~ùÜÈ. »Œ_9°à§¼A#*») ¢^Þ9Lo þ2Áº†AZ&…O¤/Ÿ§Ãååtݦ`“^ñ2"À¤¹îS¿¹ðo½™Á殽p3ªBÇ”I©Îð)÷XXíÅ`Î6ò*|3hL¹Î ¡ãÉÃá¦Û»õB®Í©zÆOyƒÖN]ÚM¡õr8­|Á_ÆbA¬k*qÉw®±S7g“ÅjmDϦ„ŸòíÙ´µÛÙwa0ÆŠ‚¿J‡E±VÖÚù')£Ü~§q8L=yݶ÷÷ï^_Ÿžƒm`)âjÅSƒ=ã§¼Ak°K»ÉoSÇpJ†‚¿ìE°®Þ;ÏTp×}ët<Üs¸êí3hfeÈàÄö¹à§¼A£•ÝŽó\ÃŒºà/_Pë²òik™ÖòËŽQÜ2¸]ªµ1•3~Ê´ò ´ÛËÀÁekK_¥ÁDp®Y`4lzõ¡³™Ž²Ø‚΃Ÿ2|; 6V;'HßûÖ¼‘ DP¢ëñº¡æwÏô_ð»§Ö`4ýó~hߟþþþô²®Þ+ÎŒ³nïô_à»§Ö`4ýón4œÇé¿áïOÿ1+Ná^˜búw3@0ïäÚŠÞì#|Êñí½~c5E ´¶z¯´+Ø[}B¤ëðâc­/Om¿l$Îkµ‚©ÁŸñSÞ 5ø¥ÝØ SoøpÚ†‚¿üE±.®+È='„\æý‡×ÇÇõÕ8ö(¦MX›Q§ž+|Êñ­COa5… ^ó%À`M/Ø«cÏŒ"H×xÉœ±‰ôþáéØ{¯˜ñB!”ú>eøFJ«m¯E˜VaK^^™A‰>;Î<ç~vúüùñðKÃmÃb34å÷ŒŸò-ÇK»=Ïžü•ë3ŠbEßg^›ë*ûãËéépi¸n˜TfÅRž_áSŽo9^Xíù ÛWp®`¯üžQ)ú­-ó_×ÖOÇ 9Õ“ÖdlGÍõ?å Ú¬­ÝÞl¾à¯fûŒ"X×((8)³žôë±w†y8¬Pbðü”7ht¡²›·­Üs^É‚¿þE±VÖš÷Ù´ Y½ßéOÑWv“Ó®¹½I'ÆN#ŠbÅÑ–’Ï%ŽöoO§Ã/çÆ©pÒÛµu¬™ñSÞ u®)ívÜ’¶ª-u°™Qëê>Ì5>ߥécí‚Þ{ªÍðƒCmÞãºgÚ y÷H;¦\Ü–!0nƒŸý>/ß7'zü6Ê@6!žò|ÆOyƒ–ë¥Ýä»o½¡ü•ó3ŠbEïa{BÏ—™—[iÞüÔø*À9æ‚+œZåfü”7h­r¥Ý¶óñàŒqµÊÍ(ЇEV˜pM·óÇCëòî<œ»BX±”ç3~Ê´_Þ?áßøþ[Â’aãÛš$rbÁOyƒFNTv;9;¸ñZüeN,(‚uÍ a˜òÊÎESûááÂìY PÅ#3~Ê´ŠGJ»)âÀi/ þªxdF¬k¾ðøäM7_n5óߢÃãC:÷+˜rÒ¯6‰-ø)oЈPe·!«É ¡E°bˆ €^-Uv_©™S6³@-ª3~Ê´ÕÒnŠGý(×>`ÅØòW‹êŒ"X1câÆ/öėקާ?ýø}ïl­àš*„t«Ýq”?å êþÖvÛQR‚3îàr¼å/Ë<ÁºfuÌØfÒ!‰»›7Ú£"oø”áiSZMñ¨ÎÒL8½%/“f)ל1†Yîü¾œ™sSc_‚# l®h“Ú–®ð)Ç·v¥Âj':ÁÂÄÙ‚½Ú”fAºf‹†ÿ1Ò¶Ò…ˆ†rL[VT!猟ò­BÎÒn ˆkÕTj»ù–¿*äœQëš0pÔ³Á™/J˜?ß øûtx:^Z‘ Š©8qÑ6©?å ‘ªì¶#¥`»‘ž»‚¿\hÁº¦ŽÌi©©CÄEÆ-—«%ê`3ã§¼Aë`SÚMq©_v`Šp Ûû–8ÖX«ì9Ó~û Ð!Ì9¿ß‰¥épÅ5Ýr#·õêu²}x!^ÿµ²ñ¼ŸGñSÞ î`m·A­-Üd(ø‹° Š`Uñ›pˆá¶î œ¼ñeøˆ'êák»)Õ×Ý*øX ãÇUøˆ¢X—ÜÈ«ðëÔøþðüéøþtz95’">¿Ãij±@åÄ Ÿ2|+% «í`h¸TXâ-y•3hL‰ù°©nx®¼`!(ì,³GàÂÚ½úÄ•þµÝvÒpAŽõˆ¢X1òrþžëŽÇoúvk OT÷×v“ëõÏóøÝ ¡)@ÅŠ®g…øý²À4>܉j„Kó+«ÏãpƯÅFj”èw^vÿ±ãµ5L…`öÖþ#ž¨Â¯í&Çmr€ƒƒÏ¸öQke­ù¬3Hi¥w;½à)úÊnrº¾rÄ‚nn)§ÅŠã—ÛßáZÑËõø¤e«;+ÿOTâ×vÛÐ\0墀lTü(Šu À¦îþÓñ²¼ä<üïØ< 9íü^â‰rüÚn/'òN÷¦|BQ¬‚¼úþáüîåéóéx>ï{9 ÷ O”ä×v‡9 ÆBDQ¬€¼æþéðŸ[Áßïþ ¡x=ŽÏu™œŽeÛz¯`FÕø¥ÍNb‰7‡C¢Î5Yåýóë,×]ƒìÞâ„+ñ+«ÉoßšzÚ1,þGA‰^çE÷Íš8˜=ÌÂÑyoÝ?≠üÚnÇm8­Z9®úŸ1ca©½ÉYßfvËO’—v“»õÅßÅhMø;ƒ(NåRäðûûׇ§Æòà²Ä•Ù«s@<¡8¨í¶½×\cqF:DQ¬è®-èÖE)˜1Q~´OÞ0£ ¡Ai³3è6U¹Ù±¸Q'ºë ÚuAʼv{µ ˆ'TµÝžç€ÓqiE±VÖÚsüz±Úïô‚§è+»‘ÞóÎ…MN/(Šuî†âçËñùüðÒºº&ö{…ˆ'DµÝŽóppãK9E±.¯¹’¢|¬˜Ÿ³Þ/1é¿ä¸xca§ÚácéEe5¦~ÆñSÐd¤ö@Иr͉\g±7 ,Ç´âÄ2ŒÚn'ñWW*íIˆDp®ù‘ /Öùö»»¿4ÏÜǑاA<¡Ç¨í¦ÈÖ€ë¼Ó½C@BQ¬˜ ¹ê¢íx\µƒö{…ˆ'$µÝä¸iîÆ™±ðQke­W%šîXlµ×ïOõ ²›ü­ !p¸úŒý^P+x.¼8Üß÷tøÔ8Àòä‚–{õˆ'”µÝØÐØ u\ÈüXÿ(ŠÏeà|_Òï_Î›Ý ÄZŒÚn/ñíà DQ¬€L}ññås¼ÑÿÒ<ó:ÌNÂÇrŒÊjr\´Ž½.ÞÌG ”‹ÛåÅÇëëîyÍKŽ¥–®S;Å ˆ'dµÝv´œ b,AÁº"Wa\ß5ß÷O…`S©÷jBO¨3j»ðXÑoÆ’Dqbr5Æýñ|«_{¤»u!ˆ'µÝÎDˆKeüÅÆ¡.Q+úŸkޱl¦?þ.ªˆýn}â ÅBm7E >òDEtJ€‘NQ+F /Ôg¾ÇVÍP\® Én½â‰ÊýÚnÇùøj°¥õˆ¢XÑù¬^|W¯ç7]÷qxv)ô¸z¿´ÙwÚ›X8?Ð ˆ`D—ó"üOÇËÝ­2oßDqLüsãÛ{ë0Ü^aâ‰ýÚn;Z.þÜâP€(‚uD^?~ØÝ)XvÇÅøµÝ^¤çØ¡`yØ% Kã‡Ý½îâÃ.E^ÚMîªÞÃîØßåa—àÄQÎ5çãeùâjx½p[TÞì6 žÔvS tð€‹ÕCa¢V ÅF>¡øðòp>~ýÐо@a}’{… œPTVÛÞ«0 ›øPÆ€(нÏeç} œ¦¼~¯Tñ„h ¶ÛÉ¢z,U@%ÀHdz€ÿÆ3ÏñôÃËùøÇ—ûÖ·ÙQnåÝNiÂÇ:Êj/f`áIDP.Ï\iB|íyûöÝáùòö‚KkQpñKÒ°W‡€xBPÛMÁ0­;˜æÆŒ•ˆ"X×dÈËýî§¥Ä^Ýâ @m·í~,Z‘Á¸±îQ+fC[w°fß>7~óH Ÿ€ûåNiâ‰"ÿÚn †m½?/õXZ€(‚uÍ…¼p¿ë|¬…‚“õNõÀŒ&´¥Í¶ÛiqÐb¤€³úqÿø©åœÞÿ+ÿÿ Ž‹endstream endobj 3626 0 obj << /Type /Page /Contents 3627 0 R /Resources 3625 0 R /MediaBox [0 0 612 792] /Parent 3624 0 R /Annots [ 3630 0 R 3631 0 R 3632 0 R 3633 0 R 3634 0 R 3635 0 R 3636 0 R 3637 0 R 3638 0 R 3639 0 R 3640 0 R 3641 0 R 3642 0 R 3643 0 R 3644 0 R 3645 0 R 3646 0 R 3647 0 R 3648 0 R 3649 0 R 3650 0 R 3651 0 R 3652 0 R 3653 0 R 3654 0 R 3655 0 R 3656 0 R 3657 0 R 3658 0 R 3659 0 R 3660 0 R 3661 0 R 3662 0 R 3663 0 R 3664 0 R 3665 0 R 3666 0 R 3667 0 R 3668 0 R 3669 0 R 3670 0 R 3671 0 R 3672 0 R 3673 0 R 3674 0 R 3675 0 R 3676 0 R 3677 0 R 3678 0 R 3679 0 R 3680 0 R 3681 0 R 3682 0 R 3683 0 R 3684 0 R 3685 0 R 3686 0 R 3687 0 R 3688 0 R 3689 0 R 3690 0 R 3691 0 R 3692 0 R 3693 0 R 3694 0 R 3695 0 R 3696 0 R 3697 0 R 3698 0 R 3699 0 R 3700 0 R 3701 0 R 3702 0 R 3703 0 R 3704 0 R 3705 0 R 3706 0 R 3707 0 R 3708 0 R 3709 0 R 3710 0 R 3711 0 R 3712 0 R 3713 0 R 3714 0 R 3715 0 R 3716 0 R 3717 0 R 3718 0 R 3719 0 R 3720 0 R 3721 0 R 3722 0 R ] >> endobj 3630 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.8099 607.4684 232.7464 617.655] /Subtype /Link /A << /S /GoTo /D (page.129) >> >> endobj 3631 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [231.6102 583.558 243.5654 593.7447] /Subtype /Link /A << /S /GoTo /D (page.43) >> >> endobj 3632 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [246.5542 583.558 258.5093 593.7447] /Subtype /Link /A << /S /GoTo /D (page.44) >> >> endobj 3633 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.9753 559.6477 236.9305 569.8344] /Subtype /Link /A << /S /GoTo /D (page.47) >> >> endobj 3634 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [163.2275 547.6925 175.1826 557.8792] /Subtype /Link /A << /S /GoTo /D (page.40) >> >> endobj 3635 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [200.0396 535.0201 211.9948 545.924] /Subtype /Link /A << /S /GoTo /D (page.41) >> >> endobj 3636 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [206.3557 523.0649 218.3108 533.9689] /Subtype /Link /A << /S /GoTo /D (page.41) >> >> endobj 3637 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [211.6849 511.827 223.6401 522.0137] /Subtype /Link /A << /S /GoTo /D (page.42) >> >> endobj 3638 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [200.5972 499.8719 212.5523 510.0585] /Subtype /Link /A << /S /GoTo /D (page.43) >> >> endobj 3639 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.5411 499.8719 227.4963 510.0585] /Subtype /Link /A << /S /GoTo /D (page.44) >> >> endobj 3640 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.174 487.9167 216.1292 498.1033] /Subtype /Link /A << /S /GoTo /D (page.45) >> >> endobj 3641 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.6335 475.9615 205.5886 486.1482] /Subtype /Link /A << /S /GoTo /D (page.45) >> >> endobj 3642 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.05 464.0064 217.0052 474.193] /Subtype /Link /A << /S /GoTo /D (page.45) >> >> endobj 3643 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.9623 452.0512 205.9174 462.2378] /Subtype /Link /A << /S /GoTo /D (page.47) >> >> endobj 3644 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.174 440.096 216.1292 450.2827] /Subtype /Link /A << /S /GoTo /D (page.48) >> >> endobj 3645 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.6335 428.1409 205.5886 438.3275] /Subtype /Link /A << /S /GoTo /D (page.48) >> >> endobj 3646 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [200.8758 416.1857 212.8309 426.3723] /Subtype /Link /A << /S /GoTo /D (page.49) >> >> endobj 3647 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.788 404.2305 201.7432 414.4172] /Subtype /Link /A << /S /GoTo /D (page.54) >> >> endobj 3648 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [212.4627 392.2754 224.4179 402.462] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3649 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [182.585 380.3202 194.5402 390.5068] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3650 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [186.4604 367.6477 198.4156 378.5517] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3651 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [184.2387 356.4098 196.1939 366.5965] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3652 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2509 343.7374 222.2061 354.6413] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3653 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.8243 332.4995 186.7794 342.6862] /Subtype /Link /A << /S /GoTo /D (page.56) >> >> endobj 3654 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [189.7682 332.4995 201.7234 342.6862] /Subtype /Link /A << /S /GoTo /D (page.57) >> >> endobj 3655 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [201.9323 319.8271 213.8875 330.731] /Subtype /Link /A << /S /GoTo /D (page.57) >> >> endobj 3656 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.6335 308.5892 205.5886 318.7758] /Subtype /Link /A << /S /GoTo /D (page.57) >> >> endobj 3657 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.9608 296.634 208.916 306.8207] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3658 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [176.7968 284.6788 188.752 294.8655] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3659 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.5936 272.7237 189.5488 282.9103] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3660 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.1516 260.7685 190.1068 270.9552] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3661 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.0955 260.7685 205.0507 270.9552] /Subtype /Link /A << /S /GoTo /D (page.62) >> >> endobj 3662 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.2596 248.0961 217.2148 259] /Subtype /Link /A << /S /GoTo /D (page.62) >> >> endobj 3663 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2036 248.0961 232.1588 259] /Subtype /Link /A << /S /GoTo /D (page.63) >> >> endobj 3664 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.8243 236.8582 186.7794 247.0448] /Subtype /Link /A << /S /GoTo /D (page.63) >> >> endobj 3665 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [288.6253 224.903 300.5805 235.0897] /Subtype /Link /A << /S /GoTo /D (page.63) >> >> endobj 3666 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.8893 212.9478 251.8444 223.1345] /Subtype /Link /A << /S /GoTo /D (page.64) >> >> endobj 3667 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [272.4765 200.2754 284.4317 211.1793] /Subtype /Link /A << /S /GoTo /D (page.64) >> >> endobj 3668 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.7405 188.3202 235.6956 199.2241] /Subtype /Link /A << /S /GoTo /D (page.65) >> >> endobj 3669 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [299.1164 177.0823 311.0716 187.269] /Subtype /Link /A << /S /GoTo /D (page.65) >> >> endobj 3670 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [250.8585 165.1272 262.8137 175.3138] /Subtype /Link /A << /S /GoTo /D (page.66) >> >> endobj 3671 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.2087 153.172 297.1639 163.3586] /Subtype /Link /A << /S /GoTo /D (page.66) >> >> endobj 3672 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [236.4726 141.2168 248.4278 151.4035] /Subtype /Link /A << /S /GoTo /D (page.67) >> >> endobj 3673 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.3218 129.2617 304.277 139.4483] /Subtype /Link /A << /S /GoTo /D (page.67) >> >> endobj 3674 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.0639 117.3065 256.0191 127.4931] /Subtype /Link /A << /S /GoTo /D (page.68) >> >> endobj 3675 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [435.824 619.4235 447.7791 629.6102] /Subtype /Link /A << /S /GoTo /D (page.68) >> >> endobj 3676 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.0879 607.4684 399.0431 617.655] /Subtype /Link /A << /S /GoTo /D (page.69) >> >> endobj 3677 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [429.727 594.7959 441.6822 605.6999] /Subtype /Link /A << /S /GoTo /D (page.69) >> >> endobj 3678 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.9909 582.8408 392.9461 593.7447] /Subtype /Link /A << /S /GoTo /D (page.70) >> >> endobj 3679 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [462.7033 570.8856 474.6585 581.7895] /Subtype /Link /A << /S /GoTo /D (page.70) >> >> endobj 3680 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [413.9672 558.9304 425.9224 569.8344] /Subtype /Link /A << /S /GoTo /D (page.71) >> >> endobj 3681 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [381.0203 547.6925 392.9755 557.8792] /Subtype /Link /A << /S /GoTo /D (page.71) >> >> endobj 3682 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.9325 535.7374 381.8877 545.924] /Subtype /Link /A << /S /GoTo /D (page.75) >> >> endobj 3683 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [381.0109 523.7822 392.966 533.9689] /Subtype /Link /A << /S /GoTo /D (page.75) >> >> endobj 3684 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.4032 511.827 376.3584 522.0137] /Subtype /Link /A << /S /GoTo /D (page.76) >> >> endobj 3685 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.3472 511.827 391.3023 522.0137] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3686 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.4153 499.8719 402.3704 510.0585] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3687 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.7516 487.1994 392.7067 498.1033] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3688 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.4152 475.2442 402.3703 486.1482] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3689 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.1437 464.0064 416.0989 474.193] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3690 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [370.5002 452.0512 382.4554 462.2378] /Subtype /Link /A << /S /GoTo /D (page.78) >> >> endobj 3691 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.6611 440.096 363.6163 450.2827] /Subtype /Link /A << /S /GoTo /D (page.78) >> >> endobj 3692 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [366.6051 440.096 378.5602 450.2827] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3693 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.6073 428.1409 404.5625 438.3275] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3694 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [353.6337 416.1857 365.5889 426.3723] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3695 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.9884 404.2305 366.9436 414.4172] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3696 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.9324 404.2305 381.8876 414.4172] /Subtype /Link /A << /S /GoTo /D (page.80) >> >> endobj 3697 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.2786 392.2754 380.2337 402.462] /Subtype /Link /A << /S /GoTo /D (page.80) >> >> endobj 3698 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [473.2737 379.6029 485.2288 390.5068] /Subtype /Link /A << /S /GoTo /D (page.81) >> >> endobj 3699 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [421.7081 367.6477 433.6633 378.5517] /Subtype /Link /A << /S /GoTo /D (page.81) >> >> endobj 3700 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [366.0863 356.4098 378.0415 366.5965] /Subtype /Link /A << /S /GoTo /D (page.82) >> >> endobj 3701 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.9986 344.4547 366.9537 354.6413] /Subtype /Link /A << /S /GoTo /D (page.85) >> >> endobj 3702 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.9425 344.4547 381.8977 354.6413] /Subtype /Link /A << /S /GoTo /D (page.89) >> >> endobj 3703 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [373.7979 331.7822 385.7531 342.6862] /Subtype /Link /A << /S /GoTo /D (page.90) >> >> endobj 3704 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [370.7893 320.5443 382.7445 330.731] /Subtype /Link /A << /S /GoTo /D (page.90) >> >> endobj 3705 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [353.7833 307.8719 365.7384 318.7758] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3706 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [426.3702 296.634 438.3253 306.8207] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3707 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.1561 284.6788 410.1113 294.8655] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3708 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [363.7456 272.0064 375.7008 282.9103] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3709 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.5526 260.7685 384.5078 270.9552] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3710 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [353.3346 248.8133 365.2898 259] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3711 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [353.8927 236.8582 365.8479 247.0448] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3712 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [409.9915 224.1857 421.9466 235.0897] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3713 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.6611 212.9478 363.6163 223.1345] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3714 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [366.6051 212.9478 378.5602 223.1345] /Subtype /Link /A << /S /GoTo /D (page.93) >> >> endobj 3715 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [417.8422 200.2754 429.7974 211.1793] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3716 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [384.8857 189.0375 396.8409 199.2241] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3717 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.8855 177.0823 420.8407 187.269] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3718 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [388.5924 165.1272 400.5476 175.3138] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3719 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [416.4466 153.172 428.4018 163.3586] /Subtype /Link /A << /S /GoTo /D (page.95) >> >> endobj 3720 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.3368 141.2168 391.292 151.4035] /Subtype /Link /A << /S /GoTo /D (page.95) >> >> endobj 3721 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [412.0235 128.5444 423.9787 139.4483] /Subtype /Link /A << /S /GoTo /D (page.96) >> >> endobj 3722 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.9137 116.5892 386.8689 127.4931] /Subtype /Link /A << /S /GoTo /D (page.96) >> >> endobj 3628 0 obj << /D [3626 0 R /XYZ 133.7684 692.1046 null] >> endobj 3629 0 obj << /D [3626 0 R /XYZ 133.7684 631.822 null] >> endobj 3625 0 obj << /Font << /F57 903 0 R /F14 944 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3725 0 obj << /Length 4538 /Filter /FlateDecode >> stream xÚÅ]mo$·‘þ®_¡+`›áû‹pÓ®c'È&ç•’ KcyI£›Å»þõWlv“’Íj'wX¶µÖSU¬‹œ*‰]Rø›]2!ˆÑV^jÇ £R_Þ=]ÐËøæo/Ø"jÈaÿy{ñ«¯¤ºtÄi®/oȹ)¢ã—·÷yó͇wïÿ|5pgŒ}Ã$¿úÛíï.ÞßFö#†jæ™ÿÏÅ_þF/ïa-¿» D8«.‚?Pœã—OBclþ?/þ+²Ì¾;’¶”’Æiœj(ÅyS)eJŒJÝÜü•R~:^_õÍíÇëëû¯w?~ýî»·¥z\:"µà‰~\ÿÖáaÂ|›­+⇜ ^WÍׯ˙J¾ü«_X#¢©L ð¬0—Z*Â- .îhÏ8f2áígü4´¯ø.hÏÇ ¦Îå—ÚÏ(DjŠøBpÕ …?¾l›Ónÿüaúøúò²?œ¶÷µa Ø!æLd…Øe†¾a–’ëh[ `ÔÉsá…Q"¨/2EgDhgG™+ $‘L±D‹XaÆ9Aà ß¶¸–D@Z*ä—Ñ1£©):(l&&M#<¾;í¯¯o~³96Ÿýr~õ¤©ŒÕÄ £A²'þ9Ca25!nL,Q~¹ðë CŒ¤nÔ^1…QIÄ+3~È ^©øzñy«XC¨eåJ·Ì(Dlt‹rñ•SËnùïe¿0I¨ _Ø/ŽAURóË„r‚–_J¾Á/ªÎY’p#Ë”~™QˆØä«ˆ¢Rtür‡ù›å=£ˆÌ~Yß@²Ì$e0ßLø!'hù¦ä»äø¾3ª\@µg&"6ùÆ¢¤ã‹¾ùÃæt÷ã‡ÍÓ¶åH—Æ2ÑqŒÏ×õ …|ø¯ûÅúJÔê¤â—?ä ¿T|ƒ_t}ÔR¢%/Pµ ›ü¢Qp6÷ÝòúÔLe†8¦ÜÝ.VΔz`^™àC†o9¥àºàî,Ò«46ú2“G ×ÂÚ¾Kþt:,m`$©QÝÍ•˜íxëo4ÿ²W _SWЍ V”Nø!'hU¥%ßà˜ªZŒ† (7ËŒBÄ&×C´Ï"¨kÚ†;Ø’œ}QÏÂ4l¸¨ æ™ ?ä-Ï”|—¿l’™ÖæËæ2Hí’2X2›ðCNÐÊf%ßàÛÚ¶ŽÑrU>›PˆØä_±\–}÷|ØÞížw?oïg5¬£áÊuFd‡YgÂ9AË:%ßëøk,Äe¹€ÆewD!b“u€À2»\m^Oû¿%ëß_N‡fÂg„Y½:­ü¹ÁÃAu¤Ä¿‘V dpÛŒÚ`ieÂ9A+­”|ƒsDð)” ¨þ„BÄFçH뀠ŠÜÝéøþpØj;Œ7#"!b†>dø†J®ã#„«ŸÈ|)éܹðr÷Π¾Èøã_75á¤]VœÁ]MK8˜"¾¯yÄ9AcßÝ)àžË/•ŸQ˜Ôè ñ§¸iÀ§»í‹˜ªƒÒ"\ó3j$ fü4 â6­_Š)¡Ê– (1£±)à —¾ Ë&ð¯\g4Økí„r‚ÖkmÉ7˜€×>°P(Q], z®PˆØdÉ •<ìÀ§íñ¸yØ6ö'’Ãe4¢±½0ᇜ µJ¾KÊSC„aåªÍ0¡0±q3kxc3|uÅÔ›Íióø¶µ1¥c6Qc)qÂ9A+'–|—ŒÁ‘B• ¨Òâ„BĦH`P¡ ÷²˜ó÷1É"  |Èð­`(¸.Œ*i!í¹ð*‘ã€jgryAm}jÃTCêøHƒ)?ᇜ ¥}É7¨ß84 µ\@e€ …‰½/üÓ$g!oîïÅÕ›­ϵ àœåšòD„Ø`Æ9Ac1ßÑŒ·¶ üS. q6Ž(DlÍ­]RE©RkµŽxT|É7h]>—.Ü ÑzFaÆŽž‡Ë×:<›O»cío#áV$U‚"þžñCNÐXBÅwAsZÛrågñ3 57”7Šý~wzÙ}jÄ:#ŽÃ1ÁX¬Oø!'hÅzÉwIw§‰5L (uŸQ˜Ø¨»‚ ©àŠåÅÞí_®\Róø˜íûc£¢pir"QcEЄr‚VTò]ܾÖåª-0¡±ÉRÃѤÞo·§m7ý9 q&u$ÃN€ >døÖPp &¨?„K¸¦¶^þ‘  ö*:ÛÓÍÛ»_ŸšM îÙ‘ïYðð!Ç·[θ.éÎ 3å™ôÊû„ÈLºs(B”̳îû§§íóé¸|ˆk¯9Aç p¶’¦úSq¾€Å+@_l2ì>%”š ðõîxÚ>7@Ø¥BgØ8ᇜ u–|CöµõúŸ- õ`Gý»b£þþã eiÈÀÿð‰0lüŸü—ûÃýÍæ4þ‡ýa·m„…y>Ì"Ä,3~È f©ø.™EšÖ• ¨Ú˜&"6™Åj¢¹ ‰èi sûãîxóz8ÀyÛ OAK”Ø+Á„r‚Ö+AÉwÉR.M!¿z$ Dh2):Ôd‡íæ="áæ¡¹a3¶E&ôà­ rÎ3¨_ÎÍQ†‹®’Äé LÊkN ª°Qýþ¹—næãp¦Â_ Fü´_ Îù.®:NçË^º(Ll4죜n¡Q,;E¬S,‘aV˜ðCNвBÉwÉ þIX¸rU–œP˜Øha‰¥2$çãÝæ±ñLd|bq.a±{„r‚Ö=¡ä» ºBPB” ¨jå …‰ªs(®}y:ªþúòrØÁ»ç‡·­¶Jk„LTXœðCNÐÊ‚%ß%ÿ ¨àjU, ôÿŒBÄ&#@•b É÷õåÅå*J0î2Ì>äø– ®Áuƒ„ÛŸd…ôê DfRŸB‰ 1ãeþÓoýía÷ÃçŽ|c¤d˜zÈà-ýÏy.©/Êï\tåý€é ŒÊ3G‰³"$ÞŸ»®ëáÔe4˜ê~È ZÊ—|Õ×^. 2À„BÄ&EºÕ™ Â=¡qM°RJ$À. #zÈá­+Â9ÏEÝN²+Õ™4׆P#TÒ|ù‚ …’‰!ñCNÐ~!;绤?T7Î@*;_@£QˆØdå?¦²!ãþ¼=ì'ΜªÅN¾ ?ä­“¯ä47õɇ¸–媓oBabç‡q&}Œ`õÃøõõ7ÏW’B.„ZNÂû÷ŸNÛçãnÿÜéw~§©ÄomñCNÐîm;ç»`$ñqP÷ ht·(Dl áSSHH¿Ü(RE.ØÌ2|k¦à,Òèò‡€àLŸK¯šü'P_f æWÜ®šož6Ûw›Ó¦4†MMâŠÍ„r‚VД|L$à„T– 8·dT¸¥À—Ù÷4p¡ç¾îì/Mÿl›þl|é[NB]Ë^9[5¡‘§’g°Yõ•”ŒH&ÁªˆB„úgM?h*ëÃþÃëããÔ ÿøÚ6÷—ˆ•ãV >Õ|;FáþÚÑ·Š(Dl ’lœ 5‚°¾i\ò•£UÞŸsª¸ŽàU‡¤Â¬;[AˆÌùS~ø.»®ÏOzutÀu@Œ^\7nñÈàSÍwÉ6°„ïhëÎ[E"6EG>Oô ÌA%a.E+çœ"8ªùs°j!Ù*½9§ˆBÄÆ`Y˜s“)œÕ~PJÁñ¯|uȈSŠÇgŸmëe ‰i­×N·D<2fRó –âõ–†”ÌüˆRoº%¢0±sàœ o´Ÿ{ÔýìÚ’ˆG&9j¾Kªû: œáý’…‰ªg#Íj_(NàÈ’+G4"¼?.Qq ZסpiÑ”‰îˆF!2ãÆhhä£è¯ÕŽ «ÅÚËõÿ_{¹„jý¹³r(#â‘鈚ïR–òOg>ÿt‡2" ›œÑÊX“¸Ü…˜árí4DÄ#c 5ߥèô³ALKdbFabãžÌýWÂp_“èµ£ÌÔ|ƒ!Tí ^Wº£…‰†È{úÛS¯ØÓ¾ ÎÄ•ó4ú×|M૬Aæ f&6š .D-õ•×f«;ø#i¥¯ù.©oüŒ§Â:øg&vV?o™Ÿãš³³à u=ûÞo ¯¸µuëTvp½î6íG"sN‰gÍò)%þ©Õ¢)Œÿ'€]Ù¹ñH}ÍwÉÖ·ò0ÓoݨZ,“MÇçMò¥‚bæ‚uÆrÈ­íåx¤©¾æ¬ãjë("ü§®Ý^þˆÂÄFëäýómÍ5Xbmÿ„FúèKžK:ƒ‡}i×íÝŸA˜È¨qÞ4¿{Þ¾…KJû0Ò¬íÝx¤‰¾æ»èoÈïÌš~ï~Dab£öy—ü¡©ù\P¯lÔOuz¿c¾æ;j.èb¥ÞmÔO¥:"6jžõÇã÷Òu=úéZÚ혯¸.i>_7{MúéNÚ—õÎ;ã‘+éÊîüt%í·É×|ƒâlñJÚíÎOWRDì¬úYk8rè¯lOO§~¿O¼æÛQ}<Ò»íééàGÄVÜšW@aü8åj}Î3è[¿>8J¬’ˆºwÂ÷V6㧬Öù.é=ç«n3~ÊjˆØ¹Â;ëƒOÞøñÆæûÖ^×–HkÄÚÎüˆGZäk¾Á¢u×–‚‰~g~Dabcä=ðõýS°szm/~Ä#Mñ5ß ¾jݰ…ªß‹Q˜Ø¨~Öþ~·|}znx^ù%ª• øÞo†¯¸.ém©×Hvð#‘Yòj'9_ s¨…Wê;Ã1Ù× ¯®?  °­éêAˆÌèå¼Ó?Œ\Ü,8ÛùO ™Z;rñHÿÍwQ q‹MD&6Z oöøvï3~:6€ùÇV»vò â‘€šï‚ „Óþ§–ÚþäADab+níç]ʈ6‚­Õ:âñ5ß µ©ß—a̰¾Ö…i=_Ì[Ìnßý¼íx~ÝÌEæùîðCÍwÁÉW½™‹Ìó}±³ ÎfüݵÖ\úÞ\fÖŽUD<2ßPó]Ò\ 0‘Òý±ŠˆÂÄFÍó!†Ýóq{8uö=\\;P1ÑцŠë¢ë¡ÂöÇ)f&3ªŸFBqGyI”ÿI)«&)"º;ØPò š×=?Îÿa¦{“Ó8—·g³ òvnVX8¥°¾C†­­ˆxdÈ¡æ»`ÿ&ÅŒcýÙŠˆBĦpȇºðö6’ëÊ¹ŠˆGj¾Áuÿ“a@³;WQ˜ØùLÃÍæùtsØú³ÅV„ò‡*'šFÔø&7Ë×Î"D<2P󆪻j|» µýQ„ˆB¤&“å^ý?¾lŸ™Ál¬5vZÜ‚–h!ùÚÞöˆGZÍk¾~9JÖ!œ°NÛ~{DaR£‘ò®ò÷ŸN_¿ûn‘²YµBlºµ­àôd×|ýrŒj5E8Šu‚G"5)ï­öûhí~{Ûü`œ·²ã9ÂûÝÇW¿«Zå¬3¾¡¾ÓðAˆÈ’×ø¹çº ªãuGx_|ÅuÔØ5ãɾÆ„h£!oš£ÁwoâÏjUsœX!V÷qG<Ö,]ñõKªOoá qZvÛ¸ÇßõÃóÄZÓLÂðÏìÿ¿Œ#ûõ!Ìÿ”Ežÿò\>sgõÖùìNßnŸýïØÞÓïŸÃo¯óº x·½ _èðN _1}Íøµšþôƒ/Á÷‡ð‡yû†?}ÿybµÿôù!œ²gÑ5ÿªyi™Áþ’ÖR/endstream endobj 3724 0 obj << /Type /Page /Contents 3725 0 R /Resources 3723 0 R /MediaBox [0 0 612 792] /Parent 3624 0 R /Annots [ 3727 0 R 3728 0 R 3729 0 R 3730 0 R 3731 0 R 3732 0 R 3733 0 R 3734 0 R 3735 0 R 3736 0 R 3737 0 R 3738 0 R 3739 0 R 3740 0 R 3741 0 R 3742 0 R 3743 0 R 3744 0 R 3745 0 R 3746 0 R 3747 0 R 3748 0 R 3749 0 R 3750 0 R 3751 0 R 3752 0 R 3753 0 R 3754 0 R 3755 0 R 3756 0 R 3757 0 R 3758 0 R 3759 0 R 3760 0 R 3761 0 R 3762 0 R 3763 0 R 3764 0 R 3765 0 R 3766 0 R 3767 0 R 3768 0 R 3769 0 R 3770 0 R 3771 0 R 3772 0 R 3773 0 R 3774 0 R 3775 0 R 3776 0 R 3777 0 R 3778 0 R 3779 0 R 3780 0 R 3781 0 R 3782 0 R 3783 0 R 3784 0 R 3785 0 R 3786 0 R 3787 0 R 3788 0 R 3789 0 R 3790 0 R 3791 0 R 3792 0 R 3793 0 R 3794 0 R 3795 0 R 3796 0 R 3797 0 R 3798 0 R 3799 0 R 3800 0 R 3801 0 R 3802 0 R 3803 0 R 3804 0 R 3805 0 R 3806 0 R 3807 0 R 3808 0 R 3809 0 R 3810 0 R 3811 0 R 3812 0 R 3813 0 R 3814 0 R 3815 0 R 3816 0 R 3817 0 R ] >> endobj 3727 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [248.467 654.7995 260.4221 664.9862] /Subtype /Link /A << /S /GoTo /D (page.97) >> >> endobj 3728 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [211.3572 642.8444 223.3123 653.031] /Subtype /Link /A << /S /GoTo /D (page.97) >> >> endobj 3729 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [290.0505 630.1719 302.0056 641.0759] /Subtype /Link /A << /S /GoTo /D (page.98) >> >> endobj 3730 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.4189 618.2168 265.374 629.1207] /Subtype /Link /A << /S /GoTo /D (page.98) >> >> endobj 3731 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [271.1413 606.2616 288.0778 617.1655] /Subtype /Link /A << /S /GoTo /D (page.104) >> >> endobj 3732 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [278.3343 594.3064 295.2708 605.2104] /Subtype /Link /A << /S /GoTo /D (page.105) >> >> endobj 3733 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [270.0354 582.3512 286.9719 593.2552] /Subtype /Link /A << /S /GoTo /D (page.105) >> >> endobj 3734 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.7024 571.1134 301.6389 581.3] /Subtype /Link /A << /S /GoTo /D (page.106) >> >> endobj 3735 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [282.2196 559.1582 299.1561 569.3448] /Subtype /Link /A << /S /GoTo /D (page.106) >> >> endobj 3736 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [296.0369 547.203 312.9734 557.3897] /Subtype /Link /A << /S /GoTo /D (page.107) >> >> endobj 3737 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [292.1715 535.2479 309.108 545.4345] /Subtype /Link /A << /S /GoTo /D (page.107) >> >> endobj 3738 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [281.9706 522.5754 298.9071 533.4793] /Subtype /Link /A << /S /GoTo /D (page.108) >> >> endobj 3739 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [285.3681 510.6202 302.3045 521.5242] /Subtype /Link /A << /S /GoTo /D (page.108) >> >> endobj 3740 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.9214 498.6651 311.8578 509.569] /Subtype /Link /A << /S /GoTo /D (page.103) >> >> endobj 3741 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [204.741 487.4272 216.6962 497.6138] /Subtype /Link /A << /S /GoTo /D (page.99) >> >> endobj 3742 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [193.6533 475.472 205.6084 485.6587] /Subtype /Link /A << /S /GoTo /D (page.99) >> >> endobj 3743 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.1182 462.7996 241.0547 473.7035] /Subtype /Link /A << /S /GoTo /D (page.100) >> >> endobj 3744 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.0304 450.8444 229.9669 461.7483] /Subtype /Link /A << /S /GoTo /D (page.102) >> >> endobj 3745 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.4316 438.8892 208.3681 449.7932] /Subtype /Link /A << /S /GoTo /D (page.102) >> >> endobj 3746 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [203.4956 427.6513 220.432 437.838] /Subtype /Link /A << /S /GoTo /D (page.102) >> >> endobj 3747 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [192.4078 415.6962 209.3443 425.8828] /Subtype /Link /A << /S /GoTo /D (page.103) >> >> endobj 3748 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [190.3455 403.741 207.282 413.9277] /Subtype /Link /A << /S /GoTo /D (page.109) >> >> endobj 3749 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [188.264 391.0686 205.2005 401.9725] /Subtype /Link /A << /S /GoTo /D (page.112) >> >> endobj 3750 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.1892 391.0686 225.1257 401.9725] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3751 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.7282 379.8307 190.6647 390.0173] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3752 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [180.9312 367.1582 197.8677 378.0622] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3753 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.753 355.2031 226.6895 366.107] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3754 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [197.6684 343.2479 214.6049 354.1518] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3755 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [211.9147 331.2927 228.8512 342.1967] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3756 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.0304 319.3375 229.9669 330.2415] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3757 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [199.7404 307.3824 216.6769 318.2863] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3758 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.6495 295.4272 251.586 306.3311] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3759 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.3068 284.1893 244.2433 294.376] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3760 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [207.6309 271.5169 224.5674 282.4208] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3761 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.0235 259.5617 207.96 270.4656] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3762 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [194.8989 247.6065 211.8354 258.5105] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3763 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [177.5936 236.3687 194.5301 246.5553] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3764 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [221.8771 223.6962 238.8136 234.6001] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3765 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [226.3007 211.741 243.2372 222.645] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3766 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.3818 199.7859 240.3182 210.6898] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3767 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.2134 188.548 237.1499 198.7346] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3768 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [217.4537 176.5928 234.3902 186.7795] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3769 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [208.0391 163.9204 224.9756 174.8243] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3770 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [174.8243 152.6825 191.7607 162.8691] /Subtype /Link /A << /S /GoTo /D (page.117) >> >> endobj 3771 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [282.9872 140.01 299.9237 150.914] /Subtype /Link /A << /S /GoTo /D (page.117) >> >> endobj 3772 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.7814 128.0549 261.7179 138.9588] /Subtype /Link /A << /S /GoTo /D (page.118) >> >> endobj 3773 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [286.3644 116.0997 303.3009 127.0036] /Subtype /Link /A << /S /GoTo /D (page.118) >> >> endobj 3774 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.4737 654.0823 442.4102 664.9862] /Subtype /Link /A << /S /GoTo /D (page.119) >> >> endobj 3775 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [425.2937 642.8444 442.2302 653.031] /Subtype /Link /A << /S /GoTo /D (page.119) >> >> endobj 3776 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.0879 630.8892 404.0244 641.0759] /Subtype /Link /A << /S /GoTo /D (page.120) >> >> endobj 3777 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [441.3936 618.2168 458.3301 629.1207] /Subtype /Link /A << /S /GoTo /D (page.120) >> >> endobj 3778 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [403.1878 606.2616 420.1243 617.1655] /Subtype /Link /A << /S /GoTo /D (page.121) >> >> endobj 3779 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [370.4703 583.0685 387.4068 593.2552] /Subtype /Link /A << /S /GoTo /D (page.122) >> >> endobj 3780 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.4305 571.1134 371.367 581.3] /Subtype /Link /A << /S /GoTo /D (page.122) >> >> endobj 3781 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.6611 559.1582 368.5976 569.3448] /Subtype /Link /A << /S /GoTo /D (page.123) >> >> endobj 3782 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [410.8879 546.4857 427.8244 557.3897] /Subtype /Link /A << /S /GoTo /D (page.121) >> >> endobj 3783 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.1761 534.5306 399.1126 545.4345] /Subtype /Link /A << /S /GoTo /D (page.123) >> >> endobj 3784 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [371.0884 522.5754 388.0249 533.4793] /Subtype /Link /A << /S /GoTo /D (page.125) >> >> endobj 3785 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.2685 511.3375 385.205 521.5242] /Subtype /Link /A << /S /GoTo /D (page.125) >> >> endobj 3786 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [355.8454 499.3824 372.7818 509.569] /Subtype /Link /A << /S /GoTo /D (page.125) >> >> endobj 3787 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.9884 487.4272 371.9249 497.6138] /Subtype /Link /A << /S /GoTo /D (page.126) >> >> endobj 3788 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.7215 475.472 389.658 485.6587] /Subtype /Link /A << /S /GoTo /D (page.126) >> >> endobj 3789 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [369.3746 463.5168 386.3111 473.7035] /Subtype /Link /A << /S /GoTo /D (page.129) >> >> endobj 3790 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [361.6337 451.5617 378.5702 461.7483] /Subtype /Link /A << /S /GoTo /D (page.129) >> >> endobj 3791 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [368.2784 439.6065 385.2149 449.7932] /Subtype /Link /A << /S /GoTo /D (page.129) >> >> endobj 3792 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.6611 427.6513 368.5976 437.838] /Subtype /Link /A << /S /GoTo /D (page.130) >> >> endobj 3793 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [370.4703 415.6962 387.4068 425.8828] /Subtype /Link /A << /S /GoTo /D (page.130) >> >> endobj 3794 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.4305 403.741 371.367 413.9277] /Subtype /Link /A << /S /GoTo /D (page.131) >> >> endobj 3795 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.9884 391.7858 371.9249 401.9725] /Subtype /Link /A << /S /GoTo /D (page.131) >> >> endobj 3796 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.9137 391.7858 391.8502 401.9725] /Subtype /Link /A << /S /GoTo /D (page.132) >> >> endobj 3797 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [351.6611 379.8307 368.5976 390.0173] /Subtype /Link /A << /S /GoTo /D (page.132) >> >> endobj 3798 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [367.4911 367.8755 384.4276 378.0622] /Subtype /Link /A << /S /GoTo /D (page.133) >> >> endobj 3799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [356.4033 355.9203 373.3398 366.107] /Subtype /Link /A << /S /GoTo /D (page.135) >> >> endobj 3800 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [364.4032 343.9652 381.3397 354.1518] /Subtype /Link /A << /S /GoTo /D (page.135) >> >> endobj 3801 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [384.3285 343.9652 401.265 354.1518] /Subtype /Link /A << /S /GoTo /D (page.136) >> >> endobj 3802 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [390.4153 332.01 407.3517 342.1967] /Subtype /Link /A << /S /GoTo /D (page.136) >> >> endobj 3803 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.7516 320.0548 397.6881 330.2415] /Subtype /Link /A << /S /GoTo /D (page.136) >> >> endobj 3804 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.6769 320.0548 417.6133 330.2415] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3805 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.7516 307.3824 397.6881 318.2863] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3806 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [347.8054 296.1445 364.7419 306.3311] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3807 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [379.0977 284.1893 396.0342 294.376] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3808 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [383.5214 271.5169 400.4578 282.4208] /Subtype /Link /A << /S /GoTo /D (page.138) >> >> endobj 3809 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [437.2389 260.279 454.1754 270.4656] /Subtype /Link /A << /S /GoTo /D (page.138) >> >> endobj 3810 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [398.7243 248.3238 415.6608 258.5105] /Subtype /Link /A << /S /GoTo /D (page.139) >> >> endobj 3811 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [436.3719 224.4135 448.3271 234.6001] /Subtype /Link /A << /S /GoTo /D (page.95) >> >> endobj 3812 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [431.9488 199.7859 443.904 210.6898] /Subtype /Link /A << /S /GoTo /D (page.96) >> >> endobj 3813 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 176.5928 409.5931 186.7795] /Subtype /Link /A << /S /GoTo /D (page.54) >> >> endobj 3814 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 152.6825 412.9008 162.8691] /Subtype /Link /A << /S /GoTo /D (page.75) >> >> endobj 3815 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 128.7721 397.9668 138.9588] /Subtype /Link /A << /S /GoTo /D (page.85) >> >> endobj 3816 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9556 128.7721 412.9108 138.9588] /Subtype /Link /A << /S /GoTo /D (page.89) >> >> endobj 3817 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [381.8375 116.0997 393.7926 127.0036] /Subtype /Link /A << /S /GoTo /D (page.39) >> >> endobj 3726 0 obj << /D [3724 0 R /XYZ 133.7684 692.1046 null] >> endobj 3723 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R /F14 944 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3820 0 obj << /Length 2631 /Filter /FlateDecode >> stream xÚ­[Ûrܸ}×WÌ£T"hÜ¡·]_6ÞTi[›¤j³²D+S5Ò(£ÑÚþû4H  ¬-—K3Òé>Àa£»ÌÀ†â?ØçD+#6Ê2T¨ÍõÝ ÝÜâ:ÔTÃ~¼<ùë[!7–XÅÔæòsìMem.o~;}wñúÍ¿Ïfµ6§ øÙï—?Ÿ¼¹ î#+ š*pÎÿwòÛïtsƒcùù„nÜ|Á7”€µlsw€ÿÍîäãÉ?‚Ëè¯inRBk"´•™I1–”Ô„qÉ»I½}wùñ×ãv÷—d6ZÍá¹ûÓávÀ|ˆµõø&6È #ñë†!XÂoJ¯ìŒþD=ªÆ&/$a†öOôíöøøæpØùÎÐA@¬”=äÕ«ÿPÊŽççœHÅF‰#RÈ™¬(àM„O‡œxuñ6!çc8Ú ùL¦*SŽ*1 \Y3ªôõº}8n÷÷9¥ §”7HÕÂ'@¹ÕE- tM.obƒŒ^‰_7* Id1‰F†Ï0—Ì£*´A3iqJ+ƒfoÏ@ž^¯vk£+d"Là4l¤‘DRÁ«!6à›Ø cs¿½f<2‹ó$a6 *´£fš)ì_ïŸ>Ÿ1yê4¹Þ¶÷Ç7»ö<®ðÕ~÷tw~¾ì%“â8Q`ì‡@7¦šâ|äRÜܯªiŠÃÙP3þ$Å ¨k•k¢\äö¢ž zú‡äj·½yáuyfèé·‡öyª.ºIƒËÅb¶‘˜Á43Õ|èñMl ÖÄo'«œósʈ1˜ã¦ü3YªÂ:Ê øBsž“õÍ×c{ÿˆÙ®¤ítÿî$hß¾œ=ÝnÖ(š1Ët® 85Ζªjç:à›Ø ×¹ÎývI•Ét»„Q1À¼sõ¨ í¨P"¹ì×ÅÅþâi·ûçîÔ1¦žžÕYÍmS5:¢Fcÿƒ‰ßÐjïïñMlQ0ñÛ…_ºÁt5\ãZœòÏô¨ +`ÍR›Sf”Û’f›¢º& 7CðRÑÄã›Ø £Iâ·*šŠ"p5u:€D”U¡ QÅ´ J1õñéú¿}”¬‰§®­¹ú´k|£i*Á­=ãçʈQÛô|d¤KüvÒñ4ž¬[¹z>€¹tU¡¥“”hiU$ÆÒªãŠw—½hh’6ƒûÆ 1TÈ5ÁæðMl°l¿Ý Î%.füsÁ<ªÂ: †ÔË#Á¾³ kvÁC&%ÚàÚAŒÕÅëñMl‹À¹ß~ñBºA¤Dt‹w2€dƒ8 *´£ ¸£´Üv¬¿<´‡+wüu±?~|zxØŽí*-û`Ìš/w%€ÏžbŠYÝ–Ä…¾$ÀºÀ\nL¦ü‹I…ÕëJªy¿Þ/,â¹nï³+0Ä©bXu$ÁÝlµtz|d"-ñÛGZæp0)a36@rl6 *´£B‚P¼ðW÷·íêSlßvŒV™†ƒ ‘Ï5EÕááM„ϵ3¯n\:SXÝ)‹àSò¤® 2娊Â$ë9C¡LÓ‚;$Çàw&= è&†§ƒàÜ5ŠTNï;2u;yXˆw°î&à+w!©ß¾R'­³ KŠRå+˜€ªÑbǬ¨»¨ˆ¯`Æ&oýOª”¢ÄiW^Àxù6$ñÚ]T¥Õ÷ªV`/]ÀP…2h_Àüë°¿¿íîsÎýRϘ§ b÷$$nÃ-FEBobƒÌ„¿Ý²‡ÜߢdUô¨«—qr­Ñéð]'µhÔõ8y1iÅz-G|IÊåÆh JÆäËB)ƒŽÜâ¾DõËðêæfý¶ä‡Çëív9Ç w·&8ßH¦‰fµV0À›ŸŽ;ñÚ­Ü4¿áØîô'Üóì6`Ê„!ÉKXr¤©ðãö¾¤ÃnÂDÆ5|äT˜ûíd0© ¸ÁÒînoŸ1 *¬£Ô|ª³k)#†Š=šÕDðMlaî·K@™X@œÛ4MùT…5,a9áÂén!Öî2vÆTÛèÎnh5³x|ä:‚¹ß®áOš3Ž›r«ñÙNùçÉÅ£j¬A$lø­!»D›È•ÛÏlï”»«I¬]Ñ9uèf„çû¦Øg‹Ãr]Å}è„:Ó3u˜"áÜ“#Ì,ƒ›*ËÖÍ4 +ÄSŸýL“àî4nCJ3õ˜²´!„ ” ëCá{ÏUÓ€°†(÷±#Áî.m-¿|dFžøuÑ2÷˜¤UfÆŸÄÅ€ª±½%ÀDÈ/“ÍÍ s Ž”åësLdPÊ1VË1þåSfõB9bÈ1_·/Î,ÜÜö­O-¾[gÊ¿ØçTXoùåÎË n]ÖNÚã«ôs¿Ý¤uZ¨ÜQ·©MÚ£*¬¡ÃåT)µ}þ‰N°\{¢Nt&#*èL°x¢S¦M½-v(œã_WÎ:à«ôs¿ý¬Ó˜gœ0¶2kª‰íƒû<š¢L‰áÁÝw|{yÝeý ­V×ÝØ Pw¬«»°Xw§ü‹u·ÂDRØY&&"ý°ÛE=þËK1“Šh®ÙêjÊM€ÕêÍt‹§B4Ã&Xû‚ót8¸Ï°úC§‹«»ví¥f!ư»4LÙõ1”bÌÃj16á_ޱ2kÐ _Xj{ nÚ]{l_ýiu°Á·’ÛÕu:6(Ôé[(Y¾²Nùët™5”,0¨­5úù%+X®-Y±A¡dMF”KÞ¾ÈL°X²*´>f@K\”\E1ÖØËs8(\òƬ?Ÿ‰ ë+À*ëkÊ¿¸¾*¬A+ øðÑÊ^«Ê <'{·´ÕÙ;6(dïë³·XÌÞÓ,fï mP‹i³‘Zñ§k³ß3î{"»Æñÿ é‹¿M}ÿ ¨û´Nüí7ÜL®Mý¨ÜD~jïÝGÚ›3¬bôI÷óò̲ӧ¶óº½î_¨þ£ý+PçÀÎåð®ûzÆþпñAÒ¿ûômpµÿúí¶½O™ÿ®[F°ÿW¨!endstream endobj 3819 0 obj << /Type /Page /Contents 3820 0 R /Resources 3818 0 R /MediaBox [0 0 612 792] /Parent 3624 0 R /Annots [ 3822 0 R 3823 0 R 3824 0 R 3825 0 R 3826 0 R 3827 0 R 3828 0 R 3829 0 R 3830 0 R 3831 0 R 3832 0 R 3833 0 R 3834 0 R 3835 0 R 3836 0 R 3837 0 R 3838 0 R 3839 0 R 3840 0 R 3841 0 R 3842 0 R 3843 0 R 3844 0 R 3845 0 R 3846 0 R 3847 0 R 3848 0 R 3849 0 R 3850 0 R 3851 0 R 3852 0 R 3853 0 R 3854 0 R 3855 0 R 3856 0 R 3857 0 R 3858 0 R 3859 0 R 3860 0 R 3861 0 R 3862 0 R 3863 0 R 3864 0 R 3865 0 R 3866 0 R ] >> endobj 3822 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [173.7379 654.7995 185.6931 664.9862] /Subtype /Link /A << /S /GoTo /D (page.42) >> >> endobj 3823 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.6663 630.8892 236.6215 641.0759] /Subtype /Link /A << /S /GoTo /D (page.99) >> >> endobj 3824 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [244.0435 606.2616 260.9799 617.1655] /Subtype /Link /A << /S /GoTo /D (page.102) >> >> endobj 3825 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [223.4208 583.0685 240.3573 593.2552] /Subtype /Link /A << /S /GoTo /D (page.103) >> >> endobj 3826 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 548.543 184.5778 557.3897] /Subtype /Link /A << /S /GoTo /D (page.64) >> >> endobj 3827 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [291.9236 522.5754 303.8788 533.4793] /Subtype /Link /A << /S /GoTo /D (page.65) >> >> endobj 3828 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 488.7672 189.5592 497.6138] /Subtype /Link /A << /S /GoTo /D (page.118) >> >> endobj 3829 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 452.7821 189.5592 461.7483] /Subtype /Link /A << /S /GoTo /D (page.119) >> >> endobj 3830 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 417.0362 184.5778 425.8828] /Subtype /Link /A << /S /GoTo /D (page.66) >> >> endobj 3831 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 381.1707 184.5778 390.0173] /Subtype /Link /A << /S /GoTo /D (page.67) >> >> endobj 3832 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 345.3052 184.5778 354.1518] /Subtype /Link /A << /S /GoTo /D (page.68) >> >> endobj 3833 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.2646 319.3375 242.201 330.2415] /Subtype /Link /A << /S /GoTo /D (page.125) >> >> endobj 3834 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [278.9124 296.1445 290.8676 306.3311] /Subtype /Link /A << /S /GoTo /D (page.69) >> >> endobj 3835 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [268.3821 284.1893 285.3186 294.376] /Subtype /Link /A << /S /GoTo /D (page.120) >> >> endobj 3836 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [280.3273 260.279 297.2638 270.4656] /Subtype /Link /A << /S /GoTo /D (page.139) >> >> endobj 3837 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [268.3922 236.3687 280.3474 246.5553] /Subtype /Link /A << /S /GoTo /D (page.97) >> >> endobj 3838 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [284.482 211.741 301.4185 222.645] /Subtype /Link /A << /S /GoTo /D (page.121) >> >> endobj 3839 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [172.6227 177.8132 184.5778 186.7795] /Subtype /Link /A << /S /GoTo /D (page.98) >> >> endobj 3840 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.8099 152.6825 232.7464 162.8691] /Subtype /Link /A << /S /GoTo /D (page.129) >> >> endobj 3841 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [272.8154 128.0549 284.7706 138.9588] /Subtype /Link /A << /S /GoTo /D (page.70) >> >> endobj 3842 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.4164 654.7995 404.3528 664.9862] /Subtype /Link /A << /S /GoTo /D (page.135) >> >> endobj 3843 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [359.9896 630.8892 371.9448 641.0759] /Subtype /Link /A << /S /GoTo /D (page.41) >> >> endobj 3844 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [349.4595 596.3637 361.4147 605.2104] /Subtype /Link /A << /S /GoTo /D (page.71) >> >> endobj 3845 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [349.4595 560.4982 361.4147 569.3448] /Subtype /Link /A << /S /GoTo /D (page.81) >> >> endobj 3846 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.4471 525.2852 420.4023 535.4719] /Subtype /Link /A << /S /GoTo /D (page.45) >> >> endobj 3847 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [401.8122 513.33 413.7674 523.5167] /Subtype /Link /A << /S /GoTo /D (page.48) >> >> endobj 3848 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 501.3749 412.9008 511.5615] /Subtype /Link /A << /S /GoTo /D (page.75) >> >> endobj 3849 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 477.4645 397.9668 487.6512] /Subtype /Link /A << /S /GoTo /D (page.90) >> >> endobj 3850 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 453.5542 404.0441 463.7409] /Subtype /Link /A << /S /GoTo /D (page.112) >> >> endobj 3851 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.0329 453.5542 423.9694 463.7409] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3852 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 429.6439 409.5931 439.8305] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3853 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 405.7335 397.9668 415.9202] /Subtype /Link /A << /S /GoTo /D (page.90) >> >> endobj 3854 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 381.8232 404.0441 392.0099] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3855 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 347.9502 404.0441 358.1369] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3856 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 314.0772 412.9008 324.2639] /Subtype /Link /A << /S /GoTo /D (page.76) >> >> endobj 3857 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [415.8896 314.0772 427.8447 324.2639] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3858 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.4164 302.1221 404.3528 312.3087] /Subtype /Link /A << /S /GoTo /D (page.135) >> >> endobj 3859 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [407.3416 302.1221 424.2781 312.3087] /Subtype /Link /A << /S /GoTo /D (page.136) >> >> endobj 3860 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 278.2117 397.9668 288.3984] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3861 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 254.3014 404.0441 264.4881] /Subtype /Link /A << /S /GoTo /D (page.113) >> >> endobj 3862 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 230.3911 397.9668 240.5777] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3863 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 196.5181 412.9008 206.7047] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3864 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.4164 184.5629 404.3528 194.7496] /Subtype /Link /A << /S /GoTo /D (page.136) >> >> endobj 3865 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 160.6526 397.9668 170.8392] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3866 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 136.7423 404.0441 146.9289] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3821 0 obj << /D [3819 0 R /XYZ 133.7684 692.1046 null] >> endobj 3818 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3869 0 obj << /Length 2625 /Filter /FlateDecode >> stream xÚ­[Ûn9}÷WèÑVÞ/Á¾Ln“ÌÁnÆ3X`v4vÇF²²j‰÷ë·Ø6Ùl^É>U‡<*‹¬YaøGV„1¤¤æ+i("˜ËÕõá¯ná?]´q¨{yuñÃ[.VIåêê“ïM i]]Ýü~ùþÃë7ÿ^o¨QJ_Î×\ý|ñæÊ¹÷¬RXëü¿¿ÿW70–Ÿ/0bF‹ÕWxƒ1†®Œƒ!düÍþâ—‹9—Þ_;Ó¥Iq¥WF,LŠRR‚Á\˜ZI¡e‚u“zõê?ÓsûâÅÕZãËíŸûæoó‰QBPBO–Ý8ìŸN·æ£7"‡ßøñˆb¿vD„ÉhT"AŒš `&„C•h#o–6ž5ƒÑaR=é^"Ÿ{í§¬"v.‡ ÌÏx8§ÀäQûp¾iÚóé¸&øòÁ’¯Pp±OÅAgáñöýÕ/ ‘a«`6ÀÀ¨(ÆEÞxð¥¨}Úa‡ ˜fŸ:Šˆ”gœô¡1it¯ÏîÐÜ-)Cfʼ:îïw±6àLÅVÄ W%uFüÆ7X ß¹_;!–âWÉû\ S`tú©F1èÓ~Ùo«b§¤ÐgÕ ù…,«PÈžP(Ï8)$Zö 5k".¿›»vw¬Š¤ì8’ŒðÚEæãÓ«Ì¡ºeF“Ë,dO®³<é$5°¯1Ù±ÚÙïÏÍéÉYH…`;©WÈÃgQ%…ö´BYÒI!,ÆŒŽ ±ûöó“â†!Í5©Èǧr¨‚@!{R <©Hj:ÖOÇÓa{~ŽTÄ%Ø3UŸ¬}ƒL*r°l* Ù©(Ï8 Ä5ÂPSvŒ·ÍùÕçæú¯öþP£Ò»×¿.VTÂÇÈ$²¼ ð_®¯]=DøR ØûBhAÎI"Ê¡`6ÒIt<ÀžnŸ,B\p^-‘‡ÏH4¢JìI‰²œ“Dx8˜ ½Ûµçãé¡f7Ë)Ä´F”sR«O+äP…Bö”ByN§S€×Ú­³÷ûýok8´]n÷÷Ísä$&9b67Öæ$ß ““,›“BöDNÊ3NZ Š˜ÒnÁ}<®©¸üÚîþW%Ô›oçÅ ¢–±€Ó2Fœ²â²à¿$ÓÌ«‹ŠjL@ª±:ì‘Nª@êéŒjÄ¥¦?¤;ËÚCºo9¤#Z:±ŽÇêpÉCzžv b CæjÍÄånß¼¶Ç3[X·O.‹æHejË"Ÿ.‹ªP…ìɲ(Oê䢚"Éq/×înWUUDUSU¾A&ª¬Uá’Q•§d)j”“éc³½©ÙÔþ¹¼«I(Ö%ínm”o3* øo°¤ÒÜo§5‹©Ú^+…XJÖÝUžvR‰q¤‰áƒJmsrû¹ÂŠR¤%¯OV¾A.¬FX1¬‚¤Ã*K; kß`3¬¾êÉ/§¦m››gØÝˆÑ`ÅLíîæãÓ»›Cv·=¹»åIND)„™ìuúËÞAvw%_íËãéæÕöÜýâöxÚ5O.lj„áilj‹MŸ.6ªPl†ì©b3Ï9 Ç"rØ Û^º«Ïj÷§]ž#Î KP¬«Ãl‚g¢l•‚̧NÇXŽÑPT ‚êÇÄÉhR'>'þ@rq°‡³Wöz–xíý1’ˆa$…ÅWƒ,%1ÄEЄ8@¢ÚÞ6U÷”»sûæÛuóå õW$'‡ó…VRN톼ž¿ñ âaÇ~;EqTZÙÓ¿¦váæ}³U Ô¢ 1IûÝðîþǶö ë Š4d81+ f«¢L#~ã,ÈùíVŽøíh±m1üs•FTÕ©$4Īj†ã—æ´=»«ÝÞB{È àqüûšÀO‡ ÜÂb‡Ed̲¶‘¦LÂþ«…Y Ø`+Ö¿ñ fùµÃàQWŠAõi¸3þù:Q%V§©€…Md¯é)Q©VÞ*0Ø¡¥¥°•HIJM‡ßø ƒüv· 2{„‘zÆ?»U`½-ör9„‘PšÔNÚáKô‘ßnÒ*N‰€ƒ±&=¢JR3 Q™K°áAƒÇ%gV›p|ƒL †“I8!2áX#o‰O²¼†Aí¤G|‘~î·›´‰?yi»¥I¨ëôÉÃ⇣œ©¹æ`Šm¬ÌdTXñ#~ã, &ò»|ÓÁŒDFùƒ^LŠ#ªÄy[þÜmP ¢k'íðúØo7i¶ì„&íP¥I»Ï+¤ŒP5·Ì@ál²)%ú¾ññKúϼö'l¼˜çµš±/¥y­ŠœãFÈ€u‚¥ÛÜïÿa/$úããwŸíU?ÁP9sÍì²æÅ%2à7¾ÁÒ™ûí"V‹!Ì•ž ’k@•h^ $`C¥Üéu:m—e",¸{%HuùàdÊKì¤ã†ò'ˇ«Êo–Z¡^oÏÛšhú±½ÞíÒ]Ü>Xëíš:|¡…ûí Ò8®`øv½dÛ¦#¨Àé’PÐ6¤x¹»Ë A‘ÆÚ3. 1à7¾Á’s¿ ÅEJÙîhÀ)1  ¬“~Oö‹§®Aì-žl·6ö[Z<¹±·xò¬N¿G<‰ðþ°½m ]ˆ8o À;ÃR, øo° s¿ýuy|A@1¢öášpQQ6  ´N‡ ý\¹9W6ÂÝæœoJG^ ›s¶î6çç˜CƒF¸Í¡ïnî?lÍsÜ‘T¶À§#K¾!ûMTïã!#ÛŸŽ,yÖI)¿ n•òj˜'—0•]ð©„Éw¤c¿¥&ÛŸJ˜­ÓÊo;Ï´zz½çºËÕby9±ü®uV¬`i±ò´N,¿ç|jÚ&Ù×|ìm5(¨ªÞ±|ƒÌŽå`ÝŽ¥“;Vȟܱ ¬£NTà ®†øˆ–fQ& / ­ßØ}ƒœL#¬$SÀŸ–)Ï:nhTH¤˜zl²vfµÉÚ7È$ë`8™dò'“užuŠ¿ Þ^o÷ͳJ]ãÛ ”l:ö[ ”\ßÛ ”<« ¿ï]™zMmêõ 2©7K.õ†H¦Þí(AÐHL\ÙןŠà|=ö[*‚³­ý©ÎÓN:h‰ŒÑº¡r6•E°OÁÁH`ïLÁ!{ª.pŽÙ‚(q3|³¡í)îÙûÃñ×滟Ws®DBpjÍ«/r}ƒÌE®ƒuwš> endobj 3871 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5795 654.7995 227.516 664.9862] /Subtype /Link /A << /S /GoTo /D (page.136) >> >> endobj 3872 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [230.5048 654.7995 247.4413 664.9862] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3873 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 630.8892 221.1299 641.0759] /Subtype /Link /A << /S /GoTo /D (page.91) >> >> endobj 3874 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 606.9789 232.7562 617.1655] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3875 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 583.0685 232.7562 593.2552] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3876 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 549.1956 221.1299 559.3822] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3877 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 515.3226 221.1299 525.5092] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3878 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 491.4122 221.1299 501.5989] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3879 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 467.5019 232.7562 477.6886] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3880 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 433.6289 227.2072 443.8156] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3881 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 409.7186 227.2072 419.9052] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3882 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 385.8083 227.2072 395.9949] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3883 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 361.8979 232.7562 372.0846] /Subtype /Link /A << /S /GoTo /D (page.55) >> >> endobj 3884 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.1087 337.9876 236.0639 348.1742] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3885 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5795 326.0324 227.516 336.2191] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3886 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 302.1221 221.1299 312.3087] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3887 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5795 268.2491 227.516 278.4358] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3888 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.8099 244.3388 232.7464 254.5254] /Subtype /Link /A << /S /GoTo /D (page.129) >> >> endobj 3889 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5795 220.4284 227.516 230.6151] /Subtype /Link /A << /S /GoTo /D (page.137) >> >> endobj 3890 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.1087 196.5181 236.0639 206.7047] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3891 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 162.6451 227.2072 172.8318] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3892 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.1087 128.7721 236.0639 138.9588] /Subtype /Link /A << /S /GoTo /D (page.77) >> >> endobj 3893 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 116.817 227.2072 127.0036] /Subtype /Link /A << /S /GoTo /D (page.114) >> >> endobj 3894 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [420.8803 642.1271 437.8168 653.031] /Subtype /Link /A << /S /GoTo /D (page.102) >> >> endobj 3895 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 608.9714 412.9008 619.158] /Subtype /Link /A << /S /GoTo /D (page.78) >> >> endobj 3896 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [359.9896 575.0984 371.9448 585.2851] /Subtype /Link /A << /S /GoTo /D (page.41) >> >> endobj 3897 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 541.2254 409.5931 551.4121] /Subtype /Link /A << /S /GoTo /D (page.56) >> >> endobj 3898 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [412.5819 541.2254 424.537 551.4121] /Subtype /Link /A << /S /GoTo /D (page.57) >> >> endobj 3899 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 529.2703 412.9008 539.4569] /Subtype /Link /A << /S /GoTo /D (page.78) >> >> endobj 3900 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [415.8896 529.2703 427.8447 539.4569] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3901 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 517.3151 397.9668 527.5018] /Subtype /Link /A << /S /GoTo /D (page.92) >> >> endobj 3902 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9556 517.3151 412.9108 527.5018] /Subtype /Link /A << /S /GoTo /D (page.93) >> >> endobj 3903 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.6468 505.3599 409.5833 515.5466] /Subtype /Link /A << /S /GoTo /D (page.130) >> >> endobj 3904 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 481.4496 404.0441 491.6363] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3905 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 457.5393 409.5931 467.7259] /Subtype /Link /A << /S /GoTo /D (page.57) >> >> endobj 3906 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [408.4471 433.6289 420.4023 443.8156] /Subtype /Link /A << /S /GoTo /D (page.45) >> >> endobj 3907 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [401.8122 421.6738 413.7674 431.8604] /Subtype /Link /A << /S /GoTo /D (page.48) >> >> endobj 3908 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 409.7186 409.5931 419.9052] /Subtype /Link /A << /S /GoTo /D (page.57) >> >> endobj 3909 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.263 397.0461 421.1995 407.9501] /Subtype /Link /A << /S /GoTo /D (page.122) >> >> endobj 3910 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.6468 385.8083 409.5833 395.9949] /Subtype /Link /A << /S /GoTo /D (page.130) >> >> endobj 3911 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 361.8979 412.9008 372.0846] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3912 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 337.9876 404.0441 348.1742] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3913 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 314.0772 404.0441 324.2639] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3914 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 290.1669 409.5931 300.3536] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3915 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 266.2566 409.5931 276.4432] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3916 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [400.9456 254.3014 412.9008 264.4881] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3917 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.6379 220.4284 409.5931 230.6151] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3918 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [387.1076 208.4733 404.0441 218.6599] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3919 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [404.263 195.8008 421.1995 206.7047] /Subtype /Link /A << /S /GoTo /D (page.122) >> >> endobj 3920 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [392.6468 184.5629 409.5833 194.7496] /Subtype /Link /A << /S /GoTo /D (page.131) >> >> endobj 3921 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 160.6526 397.9668 170.8392] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3922 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [386.0116 136.7423 397.9668 146.9289] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3870 0 obj << /D [3868 0 R /XYZ 133.7684 692.1046 null] >> endobj 3867 0 obj << /Font << /F45 711 0 R /F22 704 0 R /F11 844 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3925 0 obj << /Length 1447 /Filter /FlateDecode >> stream xÚµYÛnã6}÷WèÑj–Ã;óÖfïE‹v×- ìîƒ7ѦAc{k;›¤_ß¡%Q”DŠZ$E$ŠÏÌ™9$g†¿ Î‰VFÊ2T¨âb3£Å~ør5héQËöãjöý ! K¬bªX}½I¢,°buù~þú—gÏÿ\,™ÕÚÌAÈÅÇÕ›Ùó•wXÑTsþÏìýGZ\b,of”pkdq‡”€µ¬ØÌ¸@#hþr3{7ûÍ» >=™Æ’Z¡­Œ$ÅX˜”ä˜ ×…’š0.ù)©óó”²ãáììÅëÕ»ïú91À¸4´6§Ü'û«ò6ˆ¥/Cü0”W‰r†0FËߣ2¤íòI˜¡Õ¢Êã Tx¾¾¹-]  C'Kb¥d=™~Z09/ çw  óÝþr¨S„)j …œœÉœj |à#ªõ½ºÀ€ ö!@=ö¾j hœ³áÊšJ´Û/_öåáðîb}s½½ŠÉ=Ù^=û=²¹0…ËK- tvsUðeˆm®ž×“L £‹„G«Ë>Ø\(Ãée’£UöDzûår},Ïÿ*/þ>Ün¦l®1•¤–D ˜¬RˆO«äQ•J*¥R—=¥Ò8g«’âD%•Þîܹº;LÙK«…¡óõ§›2ªÆ` 4"Šƒ˜ Ö ¿ âjuýžäâ&&—«{Dô:¡2´­`ÌbàêDûÕ)õ¿”+ š`–br½ F –‡å*V7€dɧmU£’ÊY­jPî?íåÏ»ËIÚvDa91ÂÀÔŽâÓÑ£2±Ëžìˆã¤^(Dc™ …ºþüðT•K(´åzrå ñéÊåQ™ÊÕeOU®qÎV)aÅAíDz·¿>NÚHç»›ÛÍ6rîpN´š‚+BU¾6øeh;w}¿.9,VqªÇÞ¨Âä{žßÔvȨˆ0=ãŸåïûu(6,4ˆ£ÜfrnPV?Q &p𶪷ìÏïÑcÁ$¢ek•[õ ¾ ñ±Eïyu±h;\‰¹µê°V½FåHÞë0cA vrÆ5@@têuÙShœ³Íç\K¡{½Y_•xF"kún s Æ/CƒØèû­ùH׿„+Å{ ºvÊж:àÔg…ß4È{£©ƒ|h02Èw‚‰´ÍèÝ  «æÄhŽW.ÅŽNÃׄp·HWÉ,1&^ñ»þçô£ßòï%á,|+©ˆu‡5ÌX\κp¾,·å~},/î ;Çzú¹ZX6¿-«‡gåEõ‹ª~0¼èV¿:v&ë§ÏîîºÛWͲWOŸjW»û‡«rÛ_ÿ² -ì?¤‹; endstream endobj 3924 0 obj << /Type /Page /Contents 3925 0 R /Resources 3923 0 R /MediaBox [0 0 612 792] /Parent 3624 0 R /Annots [ 3927 0 R 3928 0 R 3929 0 R 3930 0 R 3931 0 R 3932 0 R 3933 0 R 3934 0 R 3935 0 R 3936 0 R 3937 0 R 3938 0 R 3939 0 R 3940 0 R 3941 0 R 3942 0 R 3943 0 R 3944 0 R 3945 0 R 3946 0 R 3947 0 R 3948 0 R 3949 0 R 3950 0 R 3951 0 R ] >> endobj 3927 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 654.7995 221.1299 664.9862] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3928 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.2646 630.1719 242.201 641.0759] /Subtype /Link /A << /S /GoTo /D (page.125) >> >> endobj 3929 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 606.9789 227.2072 617.1655] /Subtype /Link /A << /S /GoTo /D (page.115) >> >> endobj 3930 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 573.1059 227.2072 583.2925] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3931 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.5795 549.1956 227.516 559.3822] /Subtype /Link /A << /S /GoTo /D (page.138) >> >> endobj 3932 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.2646 514.6053 242.201 525.5092] /Subtype /Link /A << /S /GoTo /D (page.125) >> >> endobj 3933 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [209.1748 491.4122 221.1299 501.5989] /Subtype /Link /A << /S /GoTo /D (page.94) >> >> endobj 3934 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 467.5019 227.2072 477.6886] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3935 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 433.6289 232.7562 443.8156] /Subtype /Link /A << /S /GoTo /D (page.58) >> >> endobj 3936 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.745 433.6289 247.7002 443.8156] /Subtype /Link /A << /S /GoTo /D (page.62) >> >> endobj 3937 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.1087 421.6738 236.0639 431.8604] /Subtype /Link /A << /S /GoTo /D (page.79) >> >> endobj 3938 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [239.0527 421.6738 251.0079 431.8604] /Subtype /Link /A << /S /GoTo /D (page.80) >> >> endobj 3939 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.2646 409.0013 242.201 419.9052] /Subtype /Link /A << /S /GoTo /D (page.126) >> >> endobj 3940 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.8099 397.7634 232.7464 407.9501] /Subtype /Link /A << /S /GoTo /D (page.131) >> >> endobj 3941 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.7352 397.7634 252.6717 407.9501] /Subtype /Link /A << /S /GoTo /D (page.132) >> >> endobj 3942 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 373.8531 232.7562 384.0397] /Subtype /Link /A << /S /GoTo /D (page.62) >> >> endobj 3943 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [235.745 373.8531 247.7002 384.0397] /Subtype /Link /A << /S /GoTo /D (page.63) >> >> endobj 3944 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 349.9428 227.2072 360.1294] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3945 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 326.0324 227.2072 336.2191] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3946 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 302.1221 227.2072 312.3087] /Subtype /Link /A << /S /GoTo /D (page.116) >> >> endobj 3947 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [224.1087 268.2491 236.0639 278.4358] /Subtype /Link /A << /S /GoTo /D (page.80) >> >> endobj 3948 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [220.8011 234.3761 232.7562 244.5628] /Subtype /Link /A << /S /GoTo /D (page.63) >> >> endobj 3949 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [210.2707 222.421 227.2072 232.6076] /Subtype /Link /A << /S /GoTo /D (page.117) >> >> endobj 3950 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [227.4261 209.7485 244.3626 220.6524] /Subtype /Link /A << /S /GoTo /D (page.123) >> >> endobj 3951 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [215.8099 198.5106 232.7464 208.6973] /Subtype /Link /A << /S /GoTo /D (page.132) >> >> endobj 3926 0 obj << /D [3924 0 R /XYZ 133.7684 692.1046 null] >> endobj 3923 0 obj << /Font << /F45 711 0 R /F22 704 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1815 0 obj [698 0 R /Fit] endobj 1165 0 obj [698 0 R /Fit] endobj 3952 0 obj << /Type /Encoding /Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/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 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/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] >> endobj 1520 0 obj << /Length1 1630 /Length2 4828 /Length3 532 /Length 5682 /Filter /FlateDecode >> stream xÚíTgTSë¶¥H$HSZ Azï UQ¤#H5„Ī¡£4Q:H“*UDz‘Ž."H±Ðè zÏ=wœwÝ{~½ñ2ÆÎØßškÍUæÚŸ¿‰¹¸–3Ê ¦BâÄ¥%¤T€FpO'<ö: i(nsÅ;!à@ O/$¤ƒAppR‚ƒ©­`Î@](#”VVV¦ê Ð¾¸«¶4³ûÓrâtòý!Ebá®H ˆôâC Ðž0$ŽDñšÃ`@œ èGÀ€:Æ&7 Œ.Á—,—aH‚šàI­@†p( ‰…‰]P â÷E!á'­a%H\ZX ˆEàpRÌ CŸ@b@4 ã ÇbIï@8èŠ q¤àP@8ŠÀ;Ÿ@²» ~„Æ Hž$ŒDf‚Ââ°P ’²šèêÿ®çÁäÆÂI0åBòtFAñ'-ýÂH4$#±@Ìw’Ë t†cш/)7‰ ÿ*…#]ÿ¬@ ˆ¹B0ÎK¢!qŸLçÏ>ÿÒ=FøþŠFýòúg p†p‘ —–!å„âH¹]áHzÉ“e1@º €ÒR¿íÎxô˜ ók@à“!qF!¾@g˜ ½¤ GJ ÿg*Kü}"ÿ ÿ-ÿ-òþwâþU£ùˆÿÛïù¯ÔúxÂâIZ€ß— tË €†À“{ÁOîšÛxØÿ ƒx¾ÿ&ð¯ŽV°ßÅþƒï¯°BŠÒ•$Œ¸´Œ„Ôo3«÷9›ÀqP7  AšÙ/»%Ò†AÀ‘0’¶¿ÆJ ’’ú fá‡z ODÿ ÁÎ-Ÿ$ׯâ%µµu¯ki‹þ»ö—§ ip¾hði¬®£œÿy8áÑÖFùýŤâ2²Š@EE9 ’´4áßdüE#ýçù:‡ûm¥$¤¤¤¤ÿ?ž?Oö¡ÑCBQÎ'›cŽƒ IËöOà Åc0$}ÿ¤¦ÿ8ÿZ{Ì¥ŸGAUÃÜSÓÓpÏ8²_èÚv´IS¾ G?©²ÈÏ zŠj L˜W.½uT.Q=¤ò£Á÷ígôñÇ«—zÛØ­ɰõn‚ H{.à¨IQt)DÒá cÚ«ÿ1Ã÷§l¤n,}05s(<¢æj’ÅÐnì‰ zå±^ ¢™ )ϰ53W“±<Ëûü”°ºGîêëyÙݺEÕþ‘K4ëª×)FPtÐí,.MËRÿHÑEŠÊ%¾Øöøl‹ËºþARû`pêXÉcSOK‹o ÍYw2®)R&½0[¡-tØÍtgkJçÔÚŽªðëZzìÏíκY‹P\½´4T|]¯ø˜VSž’òÓxašc7³†b÷8ýص×Ý´mǹ¨[œtÈÁuÍ?¤¸û~¶AN1Ý~kAÈí­p7MߪMBÛ˰Êh·9áŽÏ]¼Ñ˨å9+ßgj´Y ‘ˆ' ,¯ÃZÐ Ê+Mô‚?rtRŽ ›ù‰÷‘‘Ózí¯k ·ŸV zs@bU¿Å›‡^uOÛrRyÌñè“^ÜŸî…KMÅ™†âó†Îª´þ̘…¸ÑФì3XïG!¥0%‘ªÒ>–³Ì¡Z Ðð¸«Ï,/Lxmš…4Í…rEV¶úÊjŠp§.i§¦VYñE>º´?lüâÙûp¬ípêºç ½¹ŒÖö4ÝøY±KtbiGö–?X“Ë{£Q!|7®²Ýwe¦‹>F½¸[mµ91BGµÝIwöµÂ£0ñýƒ¨};jýPéW4 ™{ƒ?ë¸Ý5œÐ´Âå¾S·+lä¿ù¸) O :6_¿[a@s©Ct=$ Œ­–ùX1œEãÛšï [ì!Ô oYý]º‚"S°ëzˆ¼÷…ßé;õ+¶mJ´Sw·xT[™gæªýóG|¬ ÌyË£›‘J¯Åo{ß`´«ŸjÈ»Ž£–Š>i¸´ßOóù~-¼âÄÙôúJ25€õî˜KûÙ›iå?9?þä4l»ÛÀ¸1Z5'67ê{/-ýëàÀ1jî'†Cã‘ãÅçD1íÛÙ3Ö.3Ó2oW?->ˆIÈÊvÞý¨|Jà3žhb”ip®ãD›%• Ï”â™´ê|Sš¬:ãeùûF-Ö ÷x«Kì¦àOV˜ÕMIvUµ`ÐòIWÇšÏÈy%t û¨|à7t˜E®ë×úTNÝt¯ÎqÍôÓåÃ'KnâO؟ٸ2w1'î*¿* ;{s4Q2µ d5žì \/°|lë'R95œy«t$Kl²ViUgåÚg)œT±¹Â¼îø|$:ºÞ§|©e+÷¼3­\€ùâòÝ»&ãŠEIIGm¥Æ{ÓÏÏVQ]fuø\¦ËÙXjÍŸµÏ»ð&"‚Å?n»ÏÕ+vœJGôÝ¿FìþÄmбë÷5Ñúé·L i+'ÜÑÃmnšZq|®ØP‚²èújS)©1ÝÊ.õÁû*’¹·[ŠÈ"©n*ñå×ör© ­a’èo9]ÛùCC–Ø/Ø4n}‘ÌÖŽÑaÍçƒä‹,Î2Þ›€xoô[ È|Ñ;.¸÷#.ÝÒ©ám¤]Ñ0p t ŸX ì[u¯VÂÕ¯á:¡ØÕV" ¡Š îÊ·Bs®²ÑóƆ»¢[Ø/ó³Áž^eæá^àßÉháúé=ªO³¨‰%/³=Û‰|¬_fE©7ʬ¢zâàu]w·pòô籂ËÞ8)ݯÔdýËð³£E)\þ>[UáNŸÜ¶œÆýkf\oÞ@O‚~nL|³}›‹· ¹Z®P+—]žSXÿ~cšåmæRÑBnŸªÌ=übõõBÚCW ±•ÆËð´i6èjdFhšu‰Ï%³$ “Œñ÷Æ#j=ÒX¿ÙÌ ]éîd¬i=³h¿Y5OP`Áã?¼ôŸcT2=ÕÓ†eØH|¯žþœ÷ÍåŸvQUmñ”sƒûŸvÍ×ĺì}÷ÛX‰Æ¡r]¥šã9ŸÒ¢Q’îÍ1΂05´‚[rÓ¼]1[O(­ô:;C¸ßO¾þÄÙ%¥Ô ð€%ùBæ²{ccÏŠhRZD{úeªÍ-ÏÚ©H`ý2»Ôî…4sX^¡‘+7•¿cuÎVë ÜW£d¥O×á鼃’㿈‘õô,©“©ú*ëõ"Ñ–i9qûË}‹»¹U‘L?ærâÏAûïÎ/v×ÏL¥ð•ÁŽúqU¼;+¦ºš”6ȇzìŸj¶˜ âôÒrz&:P`…©HpSBR£Ä"­vzndŒf|V× DŪ$û0ûlktå >©Ëœ¿î ‘%²ðòy.á a« N`¸¥®f®¯‡š00Ëj?$kiö–7_Ît[ÂGæ+¾Þc)(¨Ã“knmêØlÌR¨f\üî7_#z@ee0_^¯ÁØ|%úÈîûòi³÷:+[îq*ü›¨°²êa;¡™-Kõ Bàn0Q9QDï‚ý9òd»DÀ›è½ ç0ã¯C³–’P]Fœuü´o²´ÕOÕ5«ÈqÃû‚w··ÓŒø;EßÊå=ÓQR%dG:•óØu[YÔŸÜgëL¼Ó©õíšüö5AÀ[f4¡1âOðN;hŒºj}à#T@&¯o±©¾Á5Ôoä#‹º€ß0Óð~âzÚòŽí–ä÷•A,é.d˜Çßhï&—#s`èyb9ªöŠÜì-œYi*¯Ç ®t§’K:R鉸Î2Ú¿yÖ8ëÜû6/î¾:3Ac~é&Z@V†ÈµåB«­¯9¾JQ9ì}iÞÍá”û‡†lSo"âê5qÇõÁbyyÃ@írNßNW¼Q¸9ÈélÚˆw‘1€n]6ÞH–úòKe¹ÍO%ÉbÔ™#{ñK%œºs¢ÛqÇÁŠƒáªèO1œä…5/ÁU#^6x)Jý“äFLB•æ6>x$2Á8õŽd¤ÎåÛö«/fhxq¾”ÊL¿ò¯_rY—¡¤è_4Ør V-¢sbú.é%êQ/·§°J? I°[EJjð§òàìd+`SÚk‹î®Â³¼‰>¢ì­ýÊ^t&“;|X ž£žPuKꓨ²á%´Ã>g½EÝTöÈÂë6Ù¡#¯xeÏï1:«ÃÂѯµ~?öZëÝzTPsCV}T¬½gçMfíš;ûÁEò¡l é¼~´H_Tññº™}>E ̳Ú:߯æ¸RVcúöÊC©öñÞ†aà=—îïÜZËáP®PŒhl’–õŒeKý÷˜‰‹1áòfg»[8ËtÞÝ¢0È6ÐáÆÐÄVª6PW5ÌÔþÙ¾+–L–'-[ßðtS½Sæ„÷7È$ãLA¼:åŠ8Ã:{{­Ä;Ð⛑}ÅZ¸”YVô;UÍFþnw²œ¹{ø˜np<0HÀ¦×ƒ'Ü‘0#C{‹©Å™öâ ^XÎQœæK`°øæ”•5JÎR²@ôa"Fmò§¥X†öXÜ“»½z½àëÓ G#>í¯žOúà1~¶~O†ó™Kð}Co†² í\aŒ7ô­7óËO×Ùä»ZÆÖjP«þ òø´é°ïå¶ZJÛ‹ˆ•ÜQ!_¦•÷>F¨Jj)y–øSWÈ]Ó§Üy®dÝÚüÂ1]1Žhý …/» $¿±¹t÷<¯¸°;@ý}~糯ê®o£¢ƒr ûz!ã¶ú[ÂöñÂåë_sí,ׇúÍbšbï ¸9 zò®9ø?bm¢–¼ì·Vr>² ÊB†êýn§ Ö¡²X:IíÙÚ6·Ê}Û-#ŒÇÞ óùÛÛ‡ÜMÛÝNÑëIXã H·aËv¬`œ€Ü´ªþw¡úÞP÷X„Þ²û¤ý9ªà7õ2n>k¢`ÛfZRzdQ_¤{ɨæ<.¤ùë´âêói‡®sœ:Ÿý¼§È‚®ÌÝA .~¨óÐó[!|0`zw_#ÂØKJÿXøÜøû\Q®Qæ`ÐYgžI‹'žP&믗]ÖÙ– Dä¤ZûÔò‰)×7ZBŠ{ɬÚAddrõ)í}’{kÍŒÓéÞ¯Ñ'µ-Ö³Äa¾Ë[E¶×ΊÂ~ü$½šëPùµÎËe}*"*¾àAúªŽÀíÀý!EP0xÓ¯&mÁbÏcë^øÆþO¡ÄróØ2_JææAÍ>JGú®üUùm™©Òr^½ 5Ø,×fÿh93³É¼Âãì„5ºI§¯à–AÑDpñý³ó‚ýòm ÆHoïÌì˜o’ÀQn_‰å ø< RxÔ¹W©Z@Ÿ'æ{~€IÀò†ôem|ÑØç¬ËàÕ¾I.ë´oÝÇp|ikŽ9©üÉ—@çÆ‚˜¿kûðWHFv(‹NØŒýœ¡¼)Ô=ËZn úvRQËS#|ñ|Á¶ Y“XRã©.rkyQó1R«ŸE›:,›ßÁË/ì¤L%äWÊ®ÌÙ*§º†q$×G?÷&÷-ч·/­ôÎ- (šW"æ–¬‹*?tŒ—Æ vhé¤6Eynª•¸}eZ/³•ªCKäí?V Hû;ß«ûÄà—‚%¼*/¬9¶X!|nùô~ÅAı£VoðÌshF‘CF“rÕc‹ààmnwñsÛÁlãUw{é¥oÄÙw=º·üzê<»©ƒO úõ óc©–Ý.æÙœ7|ÞLÍ΀äü3º…ßTv YOõ[ˆ¨UàÌZ°üÛ1|]Û†<º¹ämÝ7ìé—ÐÁôÉå¶Ž„ìJb˜‹¶†äÛAà(ÏÎD{:¤aÅÕÑâW‚âÚâs÷B2Õl£¦²÷ÎwЍÝ{ŸW¢¢Àž|ý˜¿èÉÑL‡ {Ð+çC•CjÕ´­ŽN^ÑSÁ—O˪Ï÷¾¦0]7æÛ‹“َ奒oŽCC²Ëì¸ÞsušË•؃ýŸ¥,0¨jqõ\ã4'i¢¡¬vm[‡Ûª|ªêÑöÞ+DÐ0ËÖ€\gWr=ctWzÃf†ΘÂTCBwLÌù‹]q•cç6C{ŸÄf×ú"ÒÜžz] ¡LÓÉ»=6‘8ÜÒinüž4ö²šZ´H=ÄU?oO›8µæÏ}C4U…¯§XõQnƒô€S«b×,ÆÉÍÞÙÏp}¬7¿ÙçXb|ÏXÓÿrsÉN•æ°^õyAÊqÆZsåyúcÛ›ìäÔ³ý¹c4¡F]¸ :òéåu>¤¬}MʃL5õ1UÅݾx×Ý›Wƒ?¯|¼Ö+Ê¢fÜT¼I‰ûxýÂÌ#¼[‚)Çñe¢#ÝBÌÃàõûO´/T7zÓE R½.’yÏ0ëbªFÞœ<3[5"h†ªÊö¥9;ÜŸQ®¢¸l7 We9^÷ªàü|¯yÞ·k í_ª‡w „£T3 oð„—Ÿýi¦yjFE„É»‡Í6¡·"OP.6…£ ŽâòX‹ºsîGzÁù,†6ûã#§øëcƒG0BÈðJh«åÄÚäL¤ÑÊq:&´âkÙpåeXÌko§òù,þ i·«‡fMVÛ.= Š«£{VdLpΧíÜê{ñ•ãóÂãG¬CÀ²açºú /å—!/j8 ¥—ÀƧŠKÎKt êÒ¨l,zYíðp…åÝ•v=–õN¾ï8Ô¬£6:ú•lT±ôª{p¦s§@s]5À"ÞÀ­Æ{‘qm</õ_þèÿŸàÿƒ`p(Oƃþ6}Ûûendstream endobj 1521 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 98 /LastChar 117 /Widths 3953 0 R /BaseFont /BBDMAB+NimbusMonL-ReguObli /FontDescriptor 1519 0 R >> endobj 1519 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 /FontName /BBDMAB+NimbusMonL-ReguObli /ItalicAngle -12 /StemV 43 /XHeight 426 /FontBBox [-61 -237 774 811] /Flags 4 /CharSet (/b/e/m/n/r/u) /FontFile 1520 0 R >> endobj 3953 0 obj [600 0 0 600 0 0 0 0 0 0 0 600 600 0 0 0 600 0 0 600 ] endobj 1480 0 obj << /Length1 1641 /Length2 9097 /Length3 532 /Length 9969 /Filter /FlateDecode >> stream xÚíwePœí²-ÁÝ5Ø`ÁÝ!ÁÝ‚»3ƒÃ3xpw‡ <$¸»»{p·àpÉ÷Ý}ö©}ÏýsÎþuëNÕLÍÓ«{õê§ûíš¡£RÕ`‚ÍA2`G(+'‡@ÅÆÁÜ¢aæ¨Ä*¶J‚òP3{À È‹JG'é2ƒÚ€¥Ì  !€Y¸¸œ‚‚‚¨tI°“§‹•5À ¥®ÃÈÌÌòOË€¹ç?—Hˆ•#àÍË7=ØÉä}¡øoj€@¨5`icH¾WÕ“W‘0ȪhdAŽ ——"T]Íím,J6 Gˆ` vØÿ}X¼Tjó§4Û —8`€8,l^Â@ §? À äâ`¼|Ø@V.fŽÐ—;€‚6Žö®À?^ì–à¿9¹€_<^°2U0 ±p±q‚^²ªJÉü­jmý“bóÀ–/ž@°…럒þÂ^h^P¨™#y@ÿä2€6'{3Ï—Ü/dN.6Ép…Ø8ZýS Àdeæ´A /4/ÜnçŸuþSõfNNöžEƒÿòú 6PÈÞ’ •“ë%§ô%·•#*ûŸ‘w´89þ¶]þ¹\þº †?3Ãø" v´÷A–¨ì*`èKJïËlÿ¾&ÿZüoið¿¥½ÿ³æþkþÓCü?}žÿ•ZÆÕÞ^ÅÌáeþ^4€—M(þìÀŸeóG0ðgåØXüÁf6öžÿEø¿:ê€þ–ü‡õ_±¿©Å­^zÃ*È&ø·Õ"cãªÚ@-¬–fö/·ö—]ëE‘‹½#襻],€•“ƒã_0Mk ;Ç?màý9ÿUúKÃþÎ.¥#//§ÌüÛ³y«¾ÌTÓÓ øß©t”ÁÀÿ8üá’{¼Y9y¸¬\‚ANn€ € Ï‘ö/Ξ•Í .66NÀËç?Þÿ<ý ´£øg€4 fŽÀ—™ûÃØÂÕÅå¥Õ­—ÊÿqþkúA êü ØB8Øöcf:´’(§gHÊ £®'Ä©°FóKž9¸Õïcøš`©éCE[íˆÐS½çô¾Óã/¦­¾6B{úÖTÐq.™ c{Îò›F~æ­@vãBŒôhï“)¥Ux}>í­õ!5uã‚Dò‘Fnä“kF·<|ÚßN˜¾iÕqMص0¸•ùûo’v¯Ówõ÷öt·ž!´ÿ"eÎŽC¡vƒÇxåïœM*ª¯Uê]Õ=ܶDRöáàvVÚÑ?¥msØç=…ÑÅ{Ócßµ·no½8¿‹_ð3©'Éx½ÖÏ©T ú-!Æd­ñnB¦´â¼FÏ•°aAòvÍ,¦[®/°`YtZ§zü¹µ-},â2>o´‘À|…³¯ìê2¡•i`c-sûÔŸlȰѮg®)=ñ‡(@|Ķiþ]åOZWÓ › +\‹Ð¶õ¡+³ëZg.æêŽ'»Ý¯³É¯B\“&¸EiäÝSs:ƒD £?©áw†ËT¤Š' Óœ±Áð=ÂÇ ¯èÆR¸W(F’^äö!™¦µ¬_V à\³!Ýýv±5ŽY~×ÌÄ~—•:)1xµž¶¶H2è¯ÒcÀ)–·¿!¡soL9³5—UÃ}ÎÆäSÈÊm'bô>m¹DfO¦ð+lœÊÍ™•L×·ÎÝ÷61–ʼr[¹± He ¦ßé¥Àñ«WÓv‘ÁÐËb1{~3Ó.’A §|@Eo­‚¤¸vaÁ¬‡9Õ€'tá\ Rn÷þÛiâ7Ê1]Ú$˜aßfxÕŠ%Tµ°8ߌ7Tfßé3Æk?N§ ú¥F&W(Û3ÿ'zŽ7ó¼Z5:æ(OL¼Vÿ-3²E=¦0”ß+FŒ4j&Ùô,¬6΂MÀwÆi}»}BÈÉ\V¢ÊsÅ©™k7 o¢ã%å0í8²D‡†1.ƒDàÏÈ¿‡£ë˜ ’=éäý•‚Ζ<×!©:DLöd#šúú™Þ¦’AØõ¦–D~Ä>»‡—LÒ†f"©¿¥§¶Ï, Ìn0]Ü€ƒ¼~,ëÝ¢_OžžÛ¡ÍómQ™ :×ÁcÞ‰¨ä3¾í½s_R=x¡¾dmÚ0º¹ Þ|ÆÔÈ!Ÿ0 KS»8Á?$¶Ð¨ïª&÷ ýMÞ}¿*j|ï ç_öAï,ÄMÔðæ¹2g2ÔÿcÅq™0â‘#àä¶þSø)AѲƒ>Jº¾j½ÊÀzV<¿€ò–›èX“ï²w1±l-Üö¤,0ù8:ù8 +‚¶0 5Œ«³L ¯Š61j3ó– ѡ̓¥úµAÒó专§ÇÚo’­ÎD‰bš gUÕªðœË§z`l¹W` Ï4q‹#5â²f'F±3º­‡/!FŒÄˆ2†Ä5Kia'ašŠâJXêàü« ÀÒä˜]_ƒWŸÛèsFÎÁ«Ù€XNuLè^¨q‚1pUZSÏúÝÉ”ë£é¨"3é›7h®“Û9MCóɹzaìóÂì l²%K5Œä9F)ƒwÅ)‹ræäÓ®*ùDûnZøSßW:r=B«GäßÏqàÖ]z!ùñžRƒS*”«¨:É/òƒYù/­ ¯07mpO2.Ôv|3¯Èu³2TLwHxV‹èg2ĤæÚ+öë,µ˜Fˆ`§.+n$ÑÓ±›.(h¶Ì:Ƹ Qýq¸nÒdøI„éCß²dV+â‘%»Â3ÁI1DA8ªÖýQ¾Ø˃øuÚÐA©Bé3D­ÏËž»§Ö±èßE9D1?Š™<ŽÇÓ/b}§ì5ãF’ïn`…ä4¹ì¡µí†N5Ó³®¥Üg»Á'7^ÃÀ5h¨YÀ¾kÞ€YÿVFÆJúÉäûɞ䡇g-V‘‡ÑÐp†¼êï}Ð/ Sââ[¢{È–- –·[°…[ý¹J8d&ŸaM¾˜u”.!ЙRu¦ÜçãÂþ=Ì=!§-ÅE“”j÷LÈÙU`³»gCæÕ(“’¹eLà,Ó3ÖŸ"›Ì ™«N½¨Ù:É·^~ÃËQÊÛ³ÔšKhÒ›ûc’J„q¢F‚/•K裦š:±;«Ÿûmb}ãÛ(æÎ/òžBØHTªÌ)›1m ÒŠˆ™È!Æ·Ÿ†eñøx¹ „ªŠ¬RïßýŽÔeÄè%ÖÀqÐß ûe6­‘¤¦ç~5dîšÕ›XóuóH‡éÞÝÅáôù8ò“¿“»–˜6KF¡Ì@ä@å 1!B0Üê”æ&•Ü¡P»¦$œXò÷¶Í+afÝ/´x•³Z-8ýE©X^؉y^d‚yB{ۤ¤ø[ó˜Æó:àǪùV,–DpŽ€á4ID5‘ryÚžÉíL™5uχ Ñ“ño˜ÚÇ5q„ajÁ[º’»5´]üSVË'$#¥ 2‚UK%°óX°ÂïÊïê´£ëM…½néªð¤žAHX7l°ÝT¿‚&%î'ò„•ìy‰ä?^èþn™ù7¼¶Ç^S“=Ö¾˜ÐÊE¢ÖõŠH¦xïtt¸ÿü™¡ïƾᇗWÐÅœ–49»N s¢Ò“Ç’‡MØ 3¦F-–A£5ŸܨM a£¡®Î—ýd»<œç‚-áoÕ2Au ¦V8œòóIW‡~æ©Ï.&Ü8.zJlßÖ(?ýø=VDØ@wÎ|w–ÊÏé¹)£iæ…êK¼ºBã bÿ6<ß.Ù§qké"¢wc‡ô]ØJù,u±IðŽ´Ú·ðº¹ý zu•ÜdKüþ .0ÿîöñsK¬^ â ª¤ÑÙ~r®½²ªl‘À¨æ%'PH[‹÷—Y *ÏÅ¢C çe-†Qüa8­ç¢;féïõAÈÊHoKé>[î?ó£‘ÛK×lëXÊø„Ìb¯uš¨–½áorÂáÁ”ŸÍ¼çÙƒ9ŽÆCuùìcHÆ+g7¸5ˆè³èLNd)%!Ê¥±‹({¯Ð½W5jF3àÃd3”§Ðm(÷«¬Ý0‰¦ËºkCøsÈ¡“6ešÖ'Ì ½0ú}ÇÔ^—üº¬QLjÎ $LŸF°"êÙ®{J{plHáù¹¿™|âœ6ûÀm6:èæÛʸê K.¬{DxÇŽ$J†å¥;»£òTDJœÙ朄)ttè„A;Ò¾¿2®”@4«T¯šrH=¶¶2+µãÔ|i‹™(u!mLOÎ+gu ÄÅ=üjÉéÚ„wÏYyÂlBŠOça¢îƒÌè8cÅ?r„Øå§™ÒBŒOë‰0$nÏö±êö÷’Î¥ÌR“ÎãTnKÀQ­Ë_M+˜ê Mè3Ö¾wk®´Ï¦«ŠýF[}³Â®éšÖ†tÑn­äRNn’IC‡*À4³Îít v6z%ýûܪFAbJ”á³ovÐ×úc™&³Ç×…@½ÉñCïôY*,Œ&×üa„T¡p“‹3º $sùÈ®ºÊÉ4`‚:<8õGÝ%ª}¬XGÛÁ¶±‚A Þ“·OLå‘ÛÍèá1[i³ü ‡‡ï³œ~üc‹õTü3§— o–:YÒ¼àœžëÕØucò“™Cæ µî(Ej£XÚCùÜ¡¸¾= î´ß¬u¿ÇNñ¬ƒ…8ãD±ûhkh-û-åˆ/¢¤Au2,WÈ7ŽB³ìw. t+­^"M±ñÏIe÷õKR!^(%Gjøw”Ûßû¿¥>¶»•‹™p ¬ðáÍ¿>&€‘ïΘà Ê%~Çõ5æ­Õ·°/x¿ç¡vv£'Ø¥·fŽ€º*fµÚU‘jŒ“(dÊØ÷t HèÌR8ó¦qïO«×ƒø“Mûæ‰É¶â F¹½¨"ãš*ôk—µ| ”|ä9ž2ø:KÖœ+‘’ü¥¹ÖÕh»n˜\ð‹‚I²,«û7FLkõ&LÂaa_©o=©i¾5– “JÑÝˬű¨Ò[±b‚éºè_ÖÖÒTũɗj¾+iÍ`&äÕ„ÿm8ÅþË/áþGÛ•i§ìK®–'N&813TzZy'W¿·t£»O¹Œ$S˜[‰¸³w&+µs¾²¥0p—¿n]p7ŠÏDø|Ÿ’Q…oú±pˆÉö¨"ºWeü‘Ð…etß–R”æÒПÅÿ¶û¸øÊæl?’4¾^w‹EX®šwÏ,¼dÇùâ1‰'èÿÚæ‘ã¬ýV*=7E±Wn ælα‘‡Ú‚¾ÓØ÷ähB„úS– ¢è¡lj»´µ³„n4áÏŽ¹Ì³Ô ©‡3Óìˆ1rÔEí¯`ÀYÅCŒ‡V`vÎtï|ëЭÓW~áóÑ¥še<£õÞºzJ®Hìf#¶¨í«âAÔ¾KAeî.wqÏqtR){çÅ`M\Š.­ÇE¯{Êbb7N iˆ/ª˜1”=´øOëkîUà½û€äÐWŒQ<—ª‚ºÂËfè¸Xj1 LDa›qd9%~þø8^K¤(­Jyï1®ÄñZtIéBޤò´ÑN¶¢K¢@7râ·–ô±j/g@UöUb+—}ÒQ þ­ˆ7ól‰¬Š&·E/þè7v˜ÖpUî³öóÇŽª{×27ÊjT5¿¡ “oXRÛgµÁ¨q'Îå9à‡©L«õ»÷ËSf* òÐuÏKŸ£E®Ù8ý³|¤AG¶ªŸ×WÝý×כ߶Sœ¹r‹J¿åðJ÷|ù Qð}¼7Á§,Ø=M‡UVå…p5Rø6 N?nTѺ¥F½ À<5°Q‚Þ¸åaˆß²ã `àÀ¥Æ~;ÄBÔDgëDÉâ8ëÔ]÷i¯°wb$t{_,‰ûÜu†Y23ì½®Ã'ŽgÖ‰üªý™O;ð„/® RCƒÈ€Ðrü~âó쮫ãBÍÉ™ÁÏ—sÀ2EÍ“Lw¦Á4!rÕ”U&N(¤Y7¥38ñiŸ?ÉME¯T”§vá8=CpTÖű|«Uúà"\ÙLxsF€›‚9÷˜ðÆ¢¦ uóØÂaåîO¬‡³·3µe5ø$ß´ŽÏ1Îö?¸aÅf'W}³=¬}+ss‰Q•kqÝ!«Šð‚¶> "#ÀÐ÷’1bÞþÜ*ÏA‚Ö`¾íìàý„½ÌÀ‚z”_ŸIÃÉ?uÛ:X¶ïr•ÇÍšñ_ÖÔ?HýÓusrßü¾p©À†ÍæÏÙGö›¾Âö)R%®)ÖKÃQ¥ù™GRi£äQµ€è´%ŽIe 5A#µÉgG½ÉeåÇà´á$Ïéµ IœóX1þ¿|OñÝl97ºZâp®Ïq~:ú’« Eâ²üyÊ ÅirëA:5ÄW4:Q.Újåæ“6ànÕ.·Ë¿ŠPù͘w6©³¹.¯‚0ÛV)_Ó%pRõã7ÇkÏZ&‚ðt"g[M‡POÞq¶¤m¤þ¤X²yé¹Ð®ýtT‚]ÆKW¿pƒ€Ý@Áx9aYþ3ò^=ª_²(F¤»õܶÇäBé™Û˯Iç^”ªvPà¦ÕÝx°rG²N–W~#…oóöMjC"k(BH$W©âˆ|”ûñÊo€(VT=Ålòµ…?QÎ,Âä”444é½[F8•ù§+++ôžY‚a’ºþ¶þeyU¯a/u/[¯¨/:¸{†t.óƼ}æ_iŸPÅ…[ûv'U°è0ë&tÌ{µލœM¸uoÛLX3êe¿_Õom—ô»Ûgñ¨Z«ÀÌ20>¬ŒgœÙõ=6Üq_Bì‚‹7|fîÆjˆU5·= –K¥¼¥tl'Åi¸ƒ ò())BdÀï,Äß 2QŠ ªÛUzW"È©Û(ê¯ã=-§~¯g¡½³#êtè]äÝÀØABnj.?§€«ÝÒœ¼I±(9¯w]¶mÒ•ô*^ ñZ]¾¾b©à] –ìn/ù^°ÆçŒbÚBÆö­†'3l žGФ`—à‘Ôï!;ƒYôóúx óÅ*CU‘ãfmX€C ìÃ3GèR(@Ô–Õ‹ÿó—ù¹Ûä ¹œ5@.Çõ5º# ½ñRØüg”<mUè‘· êNûn½r|Ó)ã›ë‡º"ÛjYë€P‹ñ‹GîÇøãvsdŽv'Êc±:ˉø(úÊÑÄxÕ>Ùü¢Ù¿."J^Øà ’·TžYD¯||½;/¡çˆ šþbyö–ß%ÿP­ªˆ0éaä0û!¥=¹Bëêlô•1ŽtˆÀpIíé©›e ÌìŠB×ÜÇø µºW÷Ãam(¬<n ¬Ø µVE‰úR}CûZÄnjr·‘®ì;ÿŽj J×þ+á&%‘׉ެnDÌeì§Õ3S0K3éBwwß|9¡òa‹uØ|}DÐ…Ùl•wãèŸmÒÄ¥Ö‰ ¨L…I+Ð=+¸^U'»VQ9„8[ô÷ò Øo·¾Ùý<@4>9‘bÜ÷HÄ0^®P"ÇLÆø„ޝ¥^>×Ú0“Y.»u»æy³‰Pœ¸ºÏÙÝñ>L„Ì39ñ«<0`Tq@ócÂ…aìw'Z`¢ŒBIÝC*ãOªLpìâ2ZEoF&/Š·jA>h¹ê7¹ °¼ª¦®3±bNÓÃM;~‘÷]röè.»·Ú’ºUGgÍ#á”,m?á¿øO#0ºØµÌóý¦"ä%m1l–ôîîg pˆ“ˆ›YR;ÙÜÍ-´ÙÛ }—¢9L©îf8Åm‹¹ýÊO‹¡“fe…t-V®',-óW8Ø¥lnÍÑ]Ý–Â :ÂK#œùºIo¿Ó¯ìT ‰hŒŸŽßn<°~-š~B«NÌJ>TA­Ä&VA=@­ÍùDW Ò“éšBÉÉ×ÚkÚ·¤~æz½:_Ý@j¹3º×/ìØáóú>RÞôÓÐT™/}œöç$RŠé¥( ½ïpѳIo³ïI%6lÈ•ç„,Ê?/¶h’S’À°èòÈ''&'Î>èÕôÚ4­ZDÚ„671òˆUC,׿¾ QÕ>áåí@ä€Hôiz±Š"™¥’4·g›uë˜.2pÜq‰.˜z+ɽJî›æmÃ㤧w¡«&ÜkÏP*ï=±ÏŸø”¢Û¦ëÉCÎÎrVê"Ï·•×+Ø‹£•ä‘#L<F1ç "áMY4X¨ÍÙ±Ef­‹´Râ$¡Ä—kêxŠ–òwn÷*ÇŠ0jÛX¡îdÐ嫬!îö”l`¶1dÝY¬}î–Ôò! µ0Eª*ï:ùíO£)åižô¼‡¯Ô¬vÛ¬Z*¤î"3#ÙømËiÆÂQ÷éC²9«zaêWK=º"öïWG|.E›ïöZ‰òáH÷O ƒMº¢†YC_êo+ /˜ëf~#(/†œRo28Ä\Tayt6øÆ±ÑîÚž)}üvr{§û~¯ç{é ùðUòz’#…æxÛViZÏ}EùV[}Ú4óQ(ªû¢-Z…ý:;6lÿ„z|ÛXØZí"›³p“mŽâôwK¹Zû83"lJ¼i4 _‹ý܆϶¡¨x íTÞÛ©³V«çNÁ?×úÄgËñb¸Îej즳†ž}íU9½Fã&yÇ¢¹5–Î!jÑ/«‡ØÈµ†ILøiHW×÷äi{ZFüÇVö©dä&¶çš„T¨ùÝ^îÒk’™*²Ÿ=Z…4šÙȽgå3 u8] f†ŠáEWkßfrʉª3ô&:ûFÖÕªIõ‹Þ´Ldõ¶|ä”·°nZè‘…Þ†¯Úcú˜9±nûí?sÙšž³›È\h¨ÝÒ;ÙTKø†Cú†'WÙñQUPŸ¸§ÛE•WRbùp|݃ÔrÖÆ(— 'ú#ÀΈ«Å}ÉDþi­NÔ`.¹×S†r­¸/ËB#šìcÆX*!º}€D¨|!«PÑßPÄ ”|­,î;½8W<Y‘žÎüdã-ßS|Á\”(ÇŒˆ À"C½…·¥ÛC#Y¶ªÛ¥m?¹Ò‘Õ$ì¬î°Î×\e¤ªÐÃݦMÖ)#eQ¶~|sµY¹LV;&õÐo¹z&¾°_‘BµMGí9Z&1¾„Û€U!X9ó„G»?¬; eÄk Ã$ÿÙ:8­ºjj,üî&Y„ž&Ñy¸¥!õÖÍ™/(£ ó,@p9 =‡Ño6çµÃÎÅÒæßð¡/Ç-h“‰˜IâNÕ7Û[€E¹ûáDîÈÐcg.ÿ5·f׊zðkMæbwÔú€áÑÝcÄ|`Òîq¦s\ÔOãíW*O!†9¶ƒ2$#;¨-·™˜.Sjdö@iM ~²]$—žH>ó³½›8cJõ/°[úJˆH‚:ˆ¢ƒ€{¢`m1aç“äçOw챓“b ÀÇËKåkᙬy²z#**o…ó;*Aõ‹‹Bå=ëT‚ÁpQr¾·çU¶CD[ß$\ƒõž(öh'Þ›ÑÙ¸@‚æqÕ¿ý¾P¤;\Kf)Æla¬³…»Eû¶È+ù¨]pKÎE@‰Â¯R›…}ÉzÇoØ*MEsÿL·ÌvÒ凲„ÅÜ›kÙT’Hg`¢¢èœ A$¬Šñ\êžOÏ|\Ñ‹03ù"ñnj—Eè-ìÉ+ŽÂ–:-žÎ{{"ê3¬[õ –CcôÁ£Ó'Ù[-Èû3 Ù'ÍåƒÐïJäÉñ&¢¡?rº«´ã[{Û-9\·ÃrL­l ;Ư3¦(š›ÑsŸspJXM•ÍãÎÇúŠ×?ªáNÈ»Á¨o†ÆÇiõÅ÷hH6`ªaÁ$<”‰¾{,N¼RzÄkÝÁ¹KJ£DþBû±½CÙ4mNÚ[¦R&X&?aù5ùmÉÊ‘¼,’™ÂÃׇ†èÓÖO” I&C±,øNTHëq~òÊã/•ùízÈ®16îG34 ë{…\ª<ŠÆEÿhÛkæš*Š7ŒøêVHd¤ËÁ]ï¡H¨¡;º %Qï"_!‹³´ÇïÖ)dú¤öš~<~@ c«‡Uà=\ñVÖ”È1ŠÁ\YÌ€á¤lÌòçxÄ\òP§ýI ù‚ò˜vÁO ŽêãûÈoÃAd®F…hZþלÂ8¥¬ñ#ÖLòO_ϥΰ%‰[½g½\OŒ‡¹¥½”ÑZ%Bù5¢ïXªçs5DŸ¨ïhL<¨üÂú•M‚QÍ6c¶RÏâµL…×<ÍàÓ7jùšä~°5’Cà”C ™˜dªýJ¨ðáPŠ[¢ÜàXz¯Bq& i{-Ãß‘ŽKÕL Ô¥”ü»4jÆèûþÞä½´‘Gç`m‘]I"àе_üÜLO\†©éýËŸÕ›àÕ%)_-þïú ›`rôaœ½ä/™V渎Wvã w X*{®5Ä$ å£wߊfߥW¨~ $,YRéõÍ ÅÊ}n{ZÄ~Ñ΋}óÙt^Dè;J‹„¬§Qù® ú¯Ÿf!á¬ßXÆû÷Ð ‡ 16¾ Ãa~¢sªÖŽïY "[góqÌšàj`‘!V<…öX†Œ+ç½anŸ “Õ£íDJ ð½^Ñäþrõ ÿzݬ·•þ“.ûfŽÂæVÚˆ‰­ð˳> ë\G]þf%§¥£ëH@r-‹¬ÜÑ(ú t¯Ðzáé€ç IâkÝÖï—Î<œ3gÕfÖ´¢S ×.^O Uè}P½ÒÛ³ÉèÛò-ǼÖÞtñ¬³Ä‰A{›·ù’«‚Ò£.U óâè h‰³ ïŒí2ˆÒ |ƒaõDšÏ‚ý`˜ÁÑ2júãw—2Û:<òaçôSÈMª¤lÁþMÊ*lÔÇÛøÚ±ž/ß c7~BÀ_ùD©ÇéÇLÉ~±Qý\Yˆ’KÍô-Œ£‘Šäqç–GõœÀ¯Oؘ­ÄÞ}MŒãÜ.Reû¹:R°Sh p¾ ÆhýxGïV ˆœ‡N÷[U V ^âá½³>õŒo´š“8¼%5ÒÅ&7s§£ÍŽqupÄDß#,õ³žZ¼%•R6õÌkÁ‚û×Úù[×ÇóIh"-RÞ Ó'GaÍ‘Ž;˜Úºh¡Xd\ú¬.6vLdÉ~k°·Þ€¿x+¡·õ´î‡£%‚x†Ö÷ÁÒSðÑàº{Ⱦe¡SN©/5£ ÷qpn¼;&ô´eÑb¦s c­-PïáÍMÕDæÚ köÂ’OBﵺÌ@4H¬‡öFó;«!Édƒ`Éãµ;ƒA'¼+s>vůþúzáeo+ŒÖ"fFèžÁ×MmŠ=ž2Qè<üJgLZE’Ý£hÅ”ÒÀï)Z•¸až‹÷|‰áàŒùVt©Q·»uuÒO]…#|»0vÓm$âPF‰ZC؃æ×R±ÖwZCI9þ‡/ÔÿOðÿ…=ÈÌ v0s±Cý_Š\Lµendstream endobj 1481 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 2 /LastChar 122 /Widths 3954 0 R /BaseFont /DWIIHM+NimbusSanL-BoldCondItal /FontDescriptor 1479 0 R >> endobj 1479 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 /FontName /DWIIHM+NimbusSanL-BoldCondItal /ItalicAngle -9.9 /StemV 120 /XHeight 532 /FontBBox [-143 -298 913 989] /Flags 4 /CharSet (/fi/comma/equal/B/D/E/F/H/I/K/L/N/R/S/T/U/V/W/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) /FontFile 1480 0 R >> endobj 3954 0 obj [501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 479 0 0 0 0 592 0 592 547 501 0 592 228 0 592 501 0 592 0 0 0 592 547 501 592 547 774 0 0 0 0 0 0 0 0 0 456 501 456 501 456 273 501 501 228 0 456 228 729 501 501 501 0 319 456 273 501 456 638 456 456 410 ] endobj 1039 0 obj << /Length1 1642 /Length2 9192 /Length3 532 /Length 10060 /Filter /FlateDecode >> stream xÚíteTœí²epw‚KãNpww ’`šk ÷à$¸»‚»&@p .ÜÝ‚ù¾9÷ÜufîŸ{ϯYÓk½½Þ§vÕ®ªg×[ 4Z¯9¤-! ˆ#Œƒ›“K v°p…ê@4 Âjê K°2ÌÜðŒñ£30Ⱥ€Ìa`ˆ£œ9 $0Yä@@€[XX qòt[ÛÀÌz:,llìÿ´üqXxþyŽ„‚­ŒÏ/n {ˆ“ÈöLñß| `6 €ØÕÔz«¬¡`VÔÐ(‚A.ÏMh¹Z؃50䱬 .û¿ ÄÑü§5(ç3—4`€:€àç0äôb8\ÀPèó; X»˜;žï€ö®– x¶[Aþ*ÈÉòìáðŒ=“iA 0(ÐìÙ1öuw–Ò|&¹nÞ„ñ jôÁSu/ï0›•Õ×])Tü+d{y *xQkA Y|q@¦ÿ² :cÄÃc-߸ãw:ôïÐ:Š$àkcT–W¶ôg#Å% üÉý½- ÚÓºQ²5ëð.oIç|U²ˆMÞ’‚‰îMïùž\’ϯ7Ã7nZZ(Þ»Ÿˆl:-œ#Ò=«ÖùRŠl>`aùLŒ=™ò›€©Ðb¨ý¶/¦ÅöÍY90ß$ô…ÌÏZ¸0>8aE<ÙrI.™p±nCM ]Ž£šÞ¿ëF›m›¯¨#Š X_Pµ,§lçä–Ë,MÑ¢ï Ü·$Õ¾D©ˆTO_l1å—GQ+4ý¦ZÃßh´ t.¿É¿$—v”÷¸6Bþ¦·`µ-Y’G¤vš26ä¨qnÓFËÄ!oíEj:×ÄÇè|¨†vůš4ÑüQÝçŸi›ãC¤é¢ß~Øt³Ü¾gœ.yBjÏ„Y²x-‡’hN‚(ОAÍùГ _e³b!‹ð™ÆÓ‡W¬ÿ.÷êÿèW éÕ›¸Ôã×8ŸÂÏš»bÇîµ¾7< ›?ø;KÞ^†~iˆù4Š2i×Õ§õßÉ·5êëuèÒ°™–š& eêš5%ÿÊ(n3¬°Ü ³«~è‡x‹ñZ¿zuŽ=É÷ ‚ˆ.íz ÆÜÛ$¤…ÜÌØÂ²EÖR/Px2·–ó¼‰5|¦K¦‚.×qˆ…·„ëRK] C Þ¸éçBA”æÈ—ñ-øHcß#ä´DáÌ¿dqñ]Kï(ÿX७`®vK‘è cqTéÑa©>ò˜Ùêjb!COe`ôqÆDÕ4³•^M°¡…bø~lGÜ/uïŵ™³~ _W;OV¦Ý· ð«NÁÃ/}\Úí­ˆ­Áëbí·ÍJH'vBCïP¦Ù­/*WÒ?³‡¥×­ßrš &‹Ç– –ñ€Pã>wžÕ Z>²ä^¶ùÈ”/q½¦qð|" éœv¬©ø²‹Á¨9öÓóMÉú:àh…^jQY>ÈTuˆVAØOµ0ø‡Z‡$Õ1yåV7ÍE{¶$z½ÐÇ÷¿z»qü\ГpX£,‡º:_8‰j©äú0ÎÚ“gù¿.Âli÷>èdH]Éß¶¯F¡Ý4$¾sI›8q—LÍjQ29ý&PHC¤3¦ẍ0äÛ((Ôzš#XIa»=¥¸¬§~00_@/ášr™}aï’vô-H.£{Ô0))n1±~2 K<&ŸÃÛvNý¢ù(äÕ7|¤‡ˆ/†“HàNJjÕ57ß^¾)üBa3&·ìu›Lw`9!Ôò2çH¤c§åÜDçék x£¸Öabƒ<2ÜÅ MȬìÄöÅ{aøU¶²&ÎÉïTê÷×ÔáãÁ7Õ꨻·ÊFJ¢/M}?g…,3ø¦° yú™úî]íÏœ,L“3ï–ÁïA#ÛŠ1ƒUwví:~«P¢&‚Æêkäûa˜ñEKÄð`;cÓõ)Š0-æ½ÂMTD:ƒD]mð{†§,»EGï[ÖTVŒ”kön]çœn±xV2'­‰Lüp8mÔÄú8Y}VJúÏàzÞ+<¯Iû%õìSì úôÊ»W!ûQB‘Z·<Ÿæš½yø‡:TµÐH±M§X¨ ¥6 ¤òdâhÌ¿iƒ-Ì:„P¢ˆæÇ»µñAV!(d>n²7ºæŸÚ^d v<ØgNÅè @‡ÝC»Ñg]çÆVŒ‡–+2RÔ%,I‹;aºûG{Ûië'”}›­ìò­ÂðÍL½’ÇÕ+yÂ3ÂÁÃL”©æ¬úÍ-l¾ùÀ4rjõ’¶„£`2 ¸Of#ezˆË@Ñb¬BÁ0n´‡æh 1|L*—ÅYmž´²Ã›R •È^”gSIx‰™$ÂÛ9!~Gpê5…[9å!:1Í"ËÀ‹¦Š2³ŒÀœÎ¯²×[´?DvØn^°ñšC’0Q <v”KYïuпñrÞÀL€Ê,Š`T5…O}écI3¤ó/z›¬Ñ?…(&…“1"Ýz$ 8ÐÆn†úýõýÜþ82ÅzE¯â÷»Í È™S{P‰"¦äÇ"xHñzW)ùæØ¤T òÇÉØk6ƒ2‡©®ºÄù#ô“µÙšf9aìTC‚ýn‚ÉA?³MSɴ솈ÚñŠúeù x}犲OKô¾qt~6ý*à&ëïÛÒ×&˜ñsâ¡›‚2Q_ÊæÞÏé}KðQݹÅ+eñ²ÐA@ójóêѽíÐó¸Êñ&<Ëì¼!f(±’´¥%f/<2Å䎶|(CyÔñ–N3ÌRUÜefŽ3IËoªMP’¡:ôe„‰[†Uó=hΘ .Î?R^2Mxi”Aû[Aü(„™Pc°[`2NŠº|²%ï1„-ш"Vˈ”ˆZ MSc·¹@D†úÓ|,±ñ7ŒF]bã\ΦDm ®uMÓžô9²¬­ŸCÈì£yü5ššß ¤1ùHum§Ù…á½#•ú“鎵ðÐÝgƒàþ.ô«ô|Ù“žÃc¢e _€ÚCɬټm´UU:ãp: 5U¤¤½çGÜêÖ½äê _³P)_Fiä¨ã†ìhè×´¼¬ ýÑ•K‘¢ËË=™D+·?˜Ö46P2Œ“MpefüDøöǯBáp´‚†㘇‚‚±Ø³Ñ½2º»Yk5ˆ¾ç›Ì èˆÂØ«YÒµ•“:åê³ï—Ús ^ TŒQ{çLÕiÁ´Ú"†Å!Õ5#Æ7‹ÔTŽÙQ^ZP6üVܦÆêª5„ÖÂóˆ<=€ÖŽ2áH/¥Ô¤÷åWã¬^ºÛ6Ñ›üv“9kŠ>Rb8ݤ;¼eÀl ¸–á-k7Uä†0ç’ñàþËPåO¤¸o2ö¶CC°ÐÜÎÛìÓ†öµ’<0F] Û{æ_!;õ Ú*°T|çGû½ø4`‚©oÊ’ENªA=ý˜Ä2¨;+á£amÈ€ÂÈ=@ æ¾9 $âf2!´¹±¦o³~' )Ú“ öª W°ÒVÆßÌÞÈÏòØ=¼ø½ÖKåS>ˆ(3Ѧ72“Ô*NPîåÛÖÌm±®×mOãƒJLÿš‘‡Íþº…¸.F"††¸§ Dãîg_Òd«:/ÂÈek-›|"ðs­xÖ’"&’ÿ–Qn¹o1$Ë~0Á¯jcä|'€9('#©‘X»\Hì¶£Âã×ì^Tw„ݺ³ ¢óød_ª‰?Ñ–ìÙK69ïCÏ_ÀíèG*ÆÃ<\-ƒqA,ýíG–ô‰”q*‹ m³õ…hæÆ:Õ­Ï¯ŽšæNŒàªFùlýÚÎŒ´s-]‰Ž·¡¡´S5|"|%"+n³ç¢*©VhG‹BØ}Ÿ÷²i5¯åKVO¿'EJœ`,ê=ü–R:kgÉ«Õv5IÆeÁ!x¿{/Ë»†QÏR”‰ô Þ¥°ÓsKSCq¢÷´oƒzQ<WÍ~K™mÊPMwDPL&&Ý×áYÜ£ÝÇçm$}òÅ‚ë×·`t˜#Öä` †hJo1£¿„J·èò…d7S9EÈ „r~€]ý ^W^M[^6¼É3#÷§Üóa¤Ä–]w„û1±’\í!дVÅZp&ŻبV¨]p /ܨ~°cÙs¦h1 çúœõ§å_}BoópGxü9ÞI}?,U.nr™)»ì}meb¬pþÈŸXµ#f¦ ÿ%zÑ.ÀÓu+ûD-›ãÑÉ·Ú§„naƒ«Äs<^øôŽQ~·LÍøRÄËwHÊÚ=ÌÝâõ]Q©×Ø}5†÷±£bÅ'å2Ç¡Œì?½ ݘ“gùôÞÞ*\ØÑô-›êÀIh¸€ŠÌJ‡·hAŽú ™C²”ÈÑ1ÔÍU ðäk©»'ÿ¥Hkh×Q~‹Jiýö:ÊÑ=Ê#‹õvv%'²_5ElÍêUÄVÛ {Å ”{.IÓÙ”n ó3±<Þ¯ïòJ|¢d "ü“®Ž]…ç•ð†÷ü³!Ni¤iÓjïvå7Ûù‚*H…î×~fÀ⓹mÅ §-~3œNI}Q،ҟ­Ú>¿l]úÎÿº(YËeK¯ÅU¤jRàaž~»?ZÙÊ»dåDrÁé¨]MGT:®©&bI¥®iÜg6°·4ÙNõâu²Ÿ $ÛwÁ ÛRò¢ó¼è½üRf•#¬ß„‚»FU¼/ifâZ‘T¾‡þ i»ìÊuîÙ8âÒÅÈ4ñ^‹ê³G8^]aýXÿþóMWY+H¬„"cžÉÇ=(ñþÀ˜zæ:ÀSÍ­ûz±&à£êÔmqS«Bâoćn’W+Ú¤žo@'çE:¤7MšÀéËÒ§";ÃWùîã,aþÃ:K )ât¶ªPgTLXYŸS~XßÒ† §RjÛ‚ WñêZa͇ m§Ñm-ᥠäÕÛãRó>ÉàJ´'cOø|¡|F”Ó7O/Gi²ö}Æ¿H•“ g2AË—ÈÞ…rÜlÁþâ™ 'b¨šÊ^ùÝ ùKÛ MäšO¤±Y“„^žé,õýôf8–Š\ofw“ù"ÓOEߘ&'bÆø×E‹qpw¯„øQåHõ8ºc,Æ®vW$IU¬Þf–M hvÆsÍÄš%ÿw.Î.Îi“ÂýZT¥CÚm¥¡^ÅjJôìQ×$ ïI¯4/$¯°}éâ³K˜‡Àð¸Pö{€šLcœ2œbÎÿöÌu¼åÝûü2Ïñ‡á÷ØÕ˸{,¡|·W·YñRŸ'ù¢K…êò†lòÙ µù†‘¿ø•ñ‰÷ꘛ^aýðs:IÊ›ÁS&å+!PϪº•è²Ï²ÓÈð=óí³×÷7†wPSž=1`¥UJìƒNTÞb9öÂ:,µ‰]|Æ›Ài²PÄ h´3§¡öŽ|ž»ž‰jÍ\öid^9TLHG-*,a6R0Ç’K¹$B•ÍÍY¡cy±ãB4ÍŸ·¶¡‹°YŒ/ødŠŒQ\*¶Vãa<8F\B¡€ –uì|üËçªsWø­ÒGÀ°ª ÅåÄO.3fæ¨è»4DZе_æc–Ž~kfù/[µwï>7ºûÚ‘KѼyŠÉӕɶ›Ó¼·0`ëH¨Ž·[(U¸êŸßÑ[›þöƒYá©7ZDÌl;xF|̼¼:""¯¥ehÀ.3‘âÉsÝ„P :L;&5—ü,^Ëÿ­¡ÑÁã×õN ¢Vè«%IÿhûIwbÀÑÕŠ@Y§ðÜIcQã¾—µ,ROºXÛ†ø£m ’L¾&³gBVn¹šaŠB£†Ôé=ù¥Ä>—Ö”ˆŒ©Â°Q’)ÎÞyNöëoœü”R}ËÌ¢P¢Ïþe8·R{3¯DWíƒ<^³¯@§7Sß—vªuýI"š@yWŠS/°åâø\Ýq ¸dPJ…§6'>­«ÔTZ&ðLzÐg{㞈œÌªûCo¸Bß° ÂŒ»›‘öÙ|ž(“ñ&cªNêÀw~öìr dQòÙ†KÔ=rªÕâl7v¦¡þ"œù²úS™™ùñïì¶O¦Ço O ¤˜wÉ…"À5µ%¦½dc¬½O¬ø¨BÑK *éÉ³Þ "k·£¼FŠë±¢É*a¯l!Í ]›æAJ,ï<(¢¥?ðÆe}ò\tCï)œüArÍV¸§xqÀöJhUTÿ£úA5,C*À‰¸¾rF#lÿTrøû#„‰Je~ Y*û-KHÁ¶<ÇnÖ®ÞÝä†ïá¹str5¸Òj1šÚΫ²ÞÑz•½€Í4O “B«UY§>¼ðCÉTÏv*L`——Ú Zø6Ø·Yœvâ—§é Ïí¹ja«ÕÑÈv-“v$ X˜Z¸Š ÎSªhßÚÀS`ÊÀm¬î‘—1J öl*¥K·Î™;ÐT¶ÓïÍz¼˜í_Œf¦z~­ÄGê¿fc¾õ¦˜Õœz›žI2}Ë «ÉBû­²ýá E·ñævЬRa†£Â¨ A¦ë:=ºþ× uQ]>Aº7/³äl(-¹j͕̹ JÍæ]$&ªžÄË=Pê‹xú—FG9z÷ȳéô© QšX:lº£·bžx…„seîx’Κ‹Ö/uÖÜ|W€¬IùHu»®b¼ÇT¿ð¹ì–uMeòHÀž‡J ù÷Gv&7(œÖD%… 4"Ø{‹ŽÐ÷­DOŽ›ÞâÍRÐ0FTS_@QìCÁ¶/î4d%ö5z–/-·¨©š¿Cä_"*ùç¾ûz5ýur“,¨)N@…a—‚KÇ·=_¦Ê¤à‡Æ nǬÙÔ0Ø3íîòŸ 0¦©Ú€©9ŽGZ9`Û`£­Ó(.+d¹ÚÖ+¦Œ2ʳØpkèñÝÙÙÚRœvÒ/ÖÑ[ع›L˜&ø8?íÝ2:—D%ÓÈÆ/€Îb2ÀŽìøÄN +œf£eåÛÂKýÌ>}Aïà áTbD÷¬m1•ÔˆÁÚ„­-<V«Vj$bÜ ~A66Lâçý ÔŠòoØe=Ç*z¡³ œµ>”;‡‡N(…‰ÙÈSWµ<ç 8þs]mGÊ(ŽpO_òŠÔ¦™äæúT‚šz¹úI3^´˜JhÜÎ=Ôhþ:Í*ß¡ÚLo¨ò°–Ü@¶½K¸¯Í$\i)³42<½z3±²ê–íT,šŒ¬ Bó˜ß¼-l“‘äO9nCãÛäBJƒ$?p’±÷”ë`нù$çúIt§ÂÚe"GÙ¯…Þë0‡ESUdY$FFK²Ím¹ý.¹çÞäÅl‚3_61׊aÚötE*d©`¸ WK¸E|rýhßÔØ¦â%ˆZCÙ“à¹xý¶,ü†–OΠ’½i¡w]zÉÃj/îÙNî IÐ/´G0D ×*ÌBvü~ƒÓãÚZZcô4Ñ‚ý××Kt>9,è2½¬È¶Ü[íhäΣ®ÅÛ:º©ÅŸ2ÓÜù¿K<‹‹DÜ¥MM>½ÆS[l"l=HªjJ-iåwÏ„œ^ Wvó³úî"QÆãCi3®{5è¾ÕG±tA÷í bÕÝEúÎXÇÔ&µ¿º¸²G…Ðâ9‹žè„¢Õ,œ$u±P+‘Ï6ÆÄÜûËÐñÑW.Ë¯ØØæ›‚ã$W)h–V–¤xVŒÆ³ÍñºŸÝU).U<ÊÔ¼s´ïæXºxU †˜¿ . ¡ ³¶Sø=ææú¡¥š÷Ç:¤a°Š&nÊN[ðiè=VVžT~Kö@ *e¶±¨ÊQ<ïœs…¦îɪçSY”.˜=“ŠC»/£*hÞ¿bjÁîqhÇH/R”…”¡¤”Ô…¬sy5H¿´¤ªˆ³5=¹á™æ–Î’R÷å5ă`fÇ¡iÁ[¦_Y8çLšÞèÖÖÌåì‡/Ñ{~2= æzä¾q!®pš_øÎP/l$9aþ/£I¬ÖC~Ö^¤/@¨u!#êd“Ú•{ùæÉÄŠÉW]³¯§Ãw¬{,ëeø•©á ÖIkæÖI½ö9÷Àª(M›n€ŠC½±/QZ냥èWjnŸcLk!ÞÁù•E%º©œÕ”Ó*y”üw¥ô”©¸b™§ÌĤv5ZaÚw£Þc¹c Æíœa¾ÕûM¿M8»…f†˜Ö YªÀ‡cDþ®´6x•—®èTÒøÓm©çr¨‡FÉŠÅR¡`m*k$îðóÏTèM¯Iþ¹ÞU"dë ÙPêE,EîJwPfD"šùÕÖ–¢7µÐŸòC¤ytR5÷½””mÛ±°Ñ*Ø–uùyš[.ixË„º}F6ÔüƒÈ?M¾ÇßúÊàÐÐÜh ê_‚eK{=}»_"Tg2?GääÞiñIT—^Fæ)Nz#dÌ|{8îôÝ-YRNß@Q|H·Å–óý «*Œ‘Ã…ŽcÉRÌsœdâR÷f°6m!fx†µþ,ý`[Rj%š1þê:—dÚw“¿}çc˜¿ˆ²T,y¾9TŽœ|­÷µW»Ed¹Ö€k¬} :³¨c’O ‹/§a,€È<õ20oNƒ@øÞ5_ƒÏЙ¤¥r¼ø¶¤ƒÅYœÎ(2zîû`{çJÔÆèE·²z›?V\ßôÈ1u;ÌŽgÙWÈyl)2—çAû*2LŽ=˜l*Å:üK`ït»Ýªöv@*/Žp)‡‹Æ$ßF¿½¶„æF 5lSÞ@ È×¢mbÈðUH ©²÷õ½è8 m{°¢”^Ë'bY…ƒ€ÏóN‘4•èc%&ùî£7O#8…¨–ª?¬½ÉtGw†“ÀÑ„@„Œ}68=â4´´v¡ëU äÄÛ½Þ‘qäè•FÞP½ÖQ ø¾Û$>¼w)Ã%Ú*'›7F©ÊNÃñ†Âè'PŸ/?ЯÇ){¯©‘m"±æÄÆ£zŒ)_s×)Q]5…ÿE§›ÿ<Q£L¥ž¹`w§MÖ6ç"yL㬖f]}€‰iÝ6y-Å«'½‘·Qò“±œÜQý¬Éý×Àö]¿µ<”³Ú>@dD¤QÒ×Z_ s–÷KD,ù/\ÿÃúÿ'ø‚h2wAÌ]ìÐÿb7>wendstream endobj 1040 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 2 /LastChar 121 /Widths 3955 0 R /BaseFont /GIHNAP+NimbusRomNo9L-MediItal /FontDescriptor 1038 0 R >> endobj 1038 0 obj << /Ascent 688 /CapHeight 688 /Descent -209 /FontName /GIHNAP+NimbusRomNo9L-MediItal /ItalicAngle -15.3 /StemV 120 /XHeight 462 /FontBBox [-200 -324 996 964] /Flags 4 /CharSet (/fi/period/A/D/F/H/I/P/S/T/U/a/b/c/d/e/f/h/i/l/m/n/o/p/r/s/t/u/y) /FontFile 1039 0 R >> endobj 3955 0 obj [556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 722 0 667 0 778 389 0 0 0 0 0 0 611 0 0 556 611 722 0 0 0 0 0 0 0 0 0 0 0 500 500 444 500 444 333 0 556 278 0 0 278 778 556 500 500 0 389 389 278 556 0 0 0 444 ] endobj 943 0 obj << /Length1 798 /Length2 965 /Length3 532 /Length 1536 /Filter /FlateDecode >> stream xÚíRkPW[Au¬ˆ€J½JH²@Äàh'‰à &¼DE‹Î’½„…dv7ˆ µâE¬‚€/À×à³ò¨tD (ŠVÆJÊCQ|T±]Pë¶¿:Ýûg¿sÎýî¹ç»ö“|œÅ8½(’uFy¨Ê‚P@yÄÞ^JCŒ%(r.ÆB€ŠD(k”»‡‹ÀCèŽØ)©£ e ¦J§õ‰ÜX iB‘@†±aPÍõP`*@)Èêx@¬Rÿ¾ ð‡ ¤£!ÎCPà„‚!PI¿Ï‘7J÷w0®‰ü@ECšáL©œÉi€³ˆS¤JpŠðåwäœü¦6÷Ò¨TrLÝ×¾?¥OxLM¨tï”:RÃBÈ(Òä@éøÎœ â„F=õf1¡“JΨOà*|GŒ¡…¸/Á*Â@(¦b`?I| .¾~#|?¹Ï2ϹŽïçÚOúbÉ.ÒEB ø¨î¯Ñ5—MhÁrO @9!·>ü8Ì“TP8A*‹pÀhÓ!Ü â*!ˆEAâP  –sÌç‘Ëm\4q ”¢‘¾±º>ÆpQL7•°>²wq|†à"Åè¿0‡©(eßè0îÒ}ð§—H(m¬³‹8‹fpFPtpwÆýM¨ÐÐ4$Ùþ·ÅÅ÷¡%¸È!ÔBbÐSŠYëÂw­?ï™{ýÈþ°WUGÌÎ--‰Ï"ð¸án¿IJ6¯m_SáÖr«ˆëùŠYiôi›dù–Ïö[&í=°t[‚°Œw;ÀJ÷]Rúˆ·ŽmÞåQ‹3²›Æ{”ÑÍ»6Ù9žÙ­©¾o•,Ë=û¨7=ÝûôÉãÜ ‡ÌêMÆZéêÔMì.Y³óâlEçÕ; ½}­¯$‡šÐ9æ!ϰç÷àÐèšG¿ñù­M1Öø›Q>[Ê–k;l7NÞ`ÿ¤"à€¶')~|ì­Ë‘fVµÛ“÷õ¬ö†”ÙJ*믗¯»ØÄOI˜wÖvᄪf×°×ãªåéc”£ëàS-%6Õá÷OG7üÑj6.?þå,"»x‡íÜŽUQKg¿´JŽã-(ÊzœWZn®/µD-¾¾a¦¼Ú3L~Å4ÉE¦)|ž^¶µouÿ‘ÛýõyyÍ êAÃmrVû#É>˜×[Óäó÷›+#ÑUÇÎ_çÔ;åUuhÏÞ,ùÑ5w†ý‰™!¹X<ý3&rt.W›Ü‘­ Þ¦©õ,kp` ™/+'vÕÕ7žðOŽ9óIFgJH=›«·Ø•g˜öcÐíK®]SÚ«=Öæu‡HMsÎ ^Ô8Ôå ÂOÏ=Ž9T+ŸÛØõæv0 Îý2Ê©àj3™?LW´VŸpK´dÂêÏ©SõL%35¥âû¦ú½wŒjχEn*Sá˜%n}þ7í¨îç±ÛÊópñŽÞ«°½~ŠþŒ¬@.î²{Ö»4zåZµ”å!ÝCNM?ýÒHZ2÷fÉ&!µGƹi±Déá’nÙóOE•ekL2·nþÍøzÂJ—Í&—6;e_ ¿ås§ (¬šRÙýU“îèØ½¤3s Ý^{O0—q›Øº9MveVË›O\)Zof!C%"'³ ë¥OR®´8~áÝ¢>œ'ú¹îìuGÏK9vni–= ,K²µÊ¯tþ2¢Uš¶ó‰ë¦°o{ºVD‰/Q—¯KLÖÍ´Xtr¶hÞXýÙO„e©ôͧ°Ê1rcA*Í?Hüj΋®xº`P[P­«ÿ¦×þvd…½g“²tLÔèyňͬ€œâTãÈŠFKÛNövô–ªÃùuigiڵ™ ^ö`B¡í±ú˜Šº¬¢À¨º!Jÿ¦ðà‘‹ÍÜ¢XÖ¶Øhš*Ä_Ýí-<–ŸV>mÃÝÑüÁ’[Z;ï{¦9 Wõ¥š Õo¦|Õ}lSYLbO+> endobj 942 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /QNOZED+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/asteriskmath/similar/logicaland) /FontFile 943 0 R >> endobj 3957 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 ] endobj 3956 0 obj << /Type /Encoding /Differences [ 0 /.notdef 3/asteriskmath 4/.notdef 24/similar 25/.notdef 94/logicaland 95/.notdef] >> endobj 913 0 obj << /Length1 1647 /Length2 16435 /Length3 532 /Length 17355 /Filter /FlateDecode >> stream xÚ¬·eT]]³%Œ» ÎA‚»»»»kààppwwwwwîNÜ%¸»wž÷íÛ·Çý¾þÓ}œ3öª¹jVÕšµjìýDI•^Øô(²s¦gf`â(XÚ~wqRÙ*€¸åèU€æ.ÒÎÆ6€¿;·o¢Ž@cgK˜±3  4ˆM,,fnnn„oQ½‡£¥¹…3€J]E“š––î?-ÿl|÷ø䯧“¥¹€âïƒ+Ðdo ´sþKñí¨ œ-€3K @TQI[ZA@%© Úÿ¡äòÝÆÒ gi´sRÌ@Ž›/& ;SËJsbøË%ì08ÙM,ÿºÝM€öÿ@t{ £­¥“Óßg€¥ÀÜÑØÎùï8ƒ–v&6.¦ÿ$ð×núWBöŽ ¿;lÿbÉ”@NÎN&Ž–ö΀¿Q•Ä$þ§³…±ó?±,ÿÂÙߦ —Júö—æ/êlliçpº;ÿë;`jédocìñ7ö_2{GË¥áâdigþŸÐæÆŽ¦6@'§¿4¹ÿ9ÿ¬ð¿Uolooãñ/oпvý¯,€6f Ì,cš8ÿmni‡ÀøO¿HÛ™ÌLÿ¶›ºØÿæ tü×QýÓ3Ô“06ÙÙxLfŒ ç¿!Tÿw*3ü÷‰üß ñ‹Àÿ-òþ¿‰û_5úß.ñÿë}þ¯Ô.66 ƶàßsðwÐÛþ΀àŸaccìøgàXšü\m-m<þOÎÿu·&ðßYÿOÎÿ ÿ;„°ù_…è™ÙØÿm¶t’°tš*Y:›XÌŒmþÞ¿ìêv¦@GK;à_‘ÿu¾˜˜þ ¦faibm÷ìÿ†€v¦ÿµ†¿ºý«FY I9EeÚÿôý×f¥¿]á¬æaüÏHšò Óÿµø‡JDäð¢gæàгp2ý½Œ¯#7 ›ÏÿOØ1ÿçZÞØÙÑÒ ËÄÀÄÄ øûÿ¿ÿ\éÿq;é?}¤êllgú·õþ—áØÄÅÑñ¯âÿš+ÿõ¿.è4AXY™ð[¥ge8×Í™Óèc† ±/kR+.ô¯õú¥‡osW½Õ…04ÿäùøáñûÄþ}_†æ`¬Û†²7xQ@àCFÝ_ˆ¶AÑÉI{ÈhP†œqªíu¹ ·¥ÃÁ¤q°3¥¬bPúCø³“Õîò‘ڟ̵ГüÁÅ×$­1«ëK3z}ÑÉ)EÒÑãåÐøèÈpï5tÿ>>mnü7^W(dŠ(‡\|Aõ*¯X y¹–ªŸ¿2GØWÁˆ2ØúÓËžœƒQ•dnC‘l-ŸuòÊÊíë’ ɼ~ãÀȇÃ5\4rT—{å=œþù‘\Šp¿è=%Ò­áF­Çf×s0ß•p0*vNFûqô]¢¼×'tlݘgôiÎêúŒOíëdOæ2“ÇU;Ü÷¬QÁ¢ÕDÇLŸRTr+áZY(ÇpqÄ0ýš6)äñGוñ9»ë„úñ)S\[ §2PaTýȰ«³¤;<ÈyGEf¸Æ6NØHTðÝ)#ýæÐ£ç71z{¨tÛÕ×§¬ÅÇ”üý? 1NÕësj» N5Ñâxˆ-ù¤É “¶ïúú:ÎÑìk E9l³Ã¤‡ÚêŸ=_¥‚¥Ï‚¼”ö¨ ŸÏù6ùå€A_(ýøe®±¤éâ ¡õ„¦÷”a—XÂ/…𲈥Rùu>G dL.$íÈr\„2#óù¬BœrÁ’~x(NsÃ7`¦À êCæ‹,1é{8˜½ˆ­'š¦tB×k%qi¼q W¢=ReE…Í9ðËA†ðOúêXÔ@Öø¹v¬üX%Ö^}aÙ0ÄøRgBZ3±1V©b‘RaòHøÚ¬ÛrêÃÀeÐy?•(tT}¤#¸jÚQ’[ æåicƒj:¯MžãÃR(|ËîˈV¤“tÙ"—\°ðˆÏ Ø]âv¤†¯Šžz^P˜¦>DÀ¡pW Ø ä ´ôc…Z¯á·øÒ­U¬œÍG¤üÚ¾ k$êbVåÉlivzÞæé.¦w¶/*¬Sú4µ ëÓ“`e/Œ…«s&eÆãþ–Q;jFì8“5HÑžVðB›¬ûµ§T)þ:Eãà»9ûEº¼Ëb_8+¿þÅÙžx'cï3^yLÝW™cËÂÇŽuk̶ÔdšÜÁÍÒðL@ˆHOÚÜlµì ûô-Lè…¹ð" ûHTiS\š™Û¨MYðBU=NÍÞ}êß~òx¦?¿ŽôžD|ä…<ÆV~ &r?0­[šÏ®*gBrêÕyµS¶Ir êéòáŒ{¡ºëÐ_Jµ¾rÇ~àßä¡*“Î×1'dJ¾>–í6b¤tt*<ð_†ò’é+$L%”9\˨Ïñ0+º•k¶a—3\ê¤ñBøtìŒm»¨ä4GÏ¥\÷€Z°˜iØ ‘ß#Ðá‹ñ¡ I°*§5r íX¿ÇÏ3ÄÑc‡ë|–Q´‹U"°¹ÔŠ_”X„÷&sxi\þ1_;®ó»: £‰ðÝȵ/Ž1Àÿ€+S­}-°‚{_ùÍŽCº%¶Û²óÎÁwŽù<*y©¥rŽUË Sm磱•d^åCLu~ëšél£Úî"LEx´tG5±i[žÌo ’…ºÌVfÆUÿa¨R`rsT·š] ò@ ¬¸ÄÉlÉ4,Zæ MøÝ§ ­@³˜W›7e óù0'U¥{Võs0”´õü.í¸ºíÕågsÑé‹§ˆ–¢€Öd¥ÜZÊz™2nÉÍ Fíñ5Ɉsnb¤0jByT¥ŸÂÎ,d¿#þ6ÿ†”€¦ÕÜY@Âm($P‰)Ö;s‚ª—Œ°æÍ•î¾À$A‰x×cµ¢×F¨¡iA¡çЇ¯ZßKQnÂÛçH¾k¤k0Ó6sT£€Åþq—Sä÷¤öÄõNùv¡¢âÎ(å3iΗ,Ì¥²Ý7lÖ“(;~Š—v½±¥dÎåÂp˜ ¸{5‡«ïòòÔõãÈõ¨½¡Zß<†F3ó®·æ/¿C§ì¿Î9^솲œ`ÝE²ŒF~Ú,ÇêØ¸äk¸çjÝd” Âÿ\èÝQe²_G°+¸sfá÷}Ez}¬Ž‹3¶dƾ…÷«ý©Þ_å‡!?Ì(°hf©(ò®Ê^ HÔîí›þVDŒ–ô¿0E)©•­Hà@~òý¥zœGöµŽV £ª¥^îjV¬ë GŒ…RøNب\Í­HË2‰)Q!–D+‘!iBRNµg¡Ô{&½F}ãaCïá|ÜăÈS0ØqboPÀU©"<µÀÅHz¥·ÆœmO~ç¼?["@ûίϲº•Ýš÷UVsŠs—¶ ãOå¥ß±Æg:ï*¸móŽ—Q!•U®»Y5ºÛa“^ãz†¡Š!ƒx ž8ó€šV¬rPŒ6ÔMTPÃý!¼d¾‘׃ßâï=Lõ‹}®„ïh>º@ño‚¥ ±žZ1GŸL¿5` ó5rÇu5åü[jng •úù¾&ûÙÝNOo fR:„Ä‚3!+£÷xw|OûV`üH¦aLVÑØ'³€‚ô>×ÈS®ÃÂbNq÷õX'/¸Iv¡´e©®¹àU%ûLvÎÍâL¬<©ÌOæ<Œ Âl÷Pý3Ýz(«sd?2ËÐA¼Ð»q›'/ ˆ°Xþy»w!!©[þŠ“zèü”`þmð½Z^뻬¹—1‘¼ö9»éMï§dÏD1L ÏàëV]¸®rÃ81ù ­ ¤[Tn®˜ˆ{åŽ-oNÒÛ1½U?&¥TœÖOlH¾ â%$Ã'ðH¶òjÜÞ¹ç -î£â{þVQ—!\ÈÛ!M/øôÀ/'Ú+¬4e¥1¿/üJ¤Ë?(¦$Îÿ¸_ÿ^µÿS nXV¿¢Íêõ™<ÂØÍÙ‡¯ZbG†&m‡IË ª6Ûfd߇‚ìGìt@T/JGÌ1P—®œH ï;¢¹É­ALJ®Ëš-0³ê®«çš„ï-ϵd5:SŸÄÁü$É÷!›!D:Uÿí¥ß—2Î {œiÖ{tèõ^>˜ÕQT¥qË4gh—¶r“€Õ(ÐQ«€Aµ¾rûiÅ—PÆF&@I.d ¬Oå€üDÀ¢¯ƒ•˜Ý?Ñ«u¿MRXõ¸¤ ò¸LÃ=õ¼¶iÞI|,ˆ£\z{çŽß>€¾O¥p˜øÀÜi&›àîi…'á»6°{¸Ê«x?·•"Ãù±|mÀ YWo?T#DiJ‚`$Ÿ¹x²¨LŠI-}£ ¡¢ÈH½„¿j‰I/¼ej„ÌÏl嬗º’V«ê4äñxäÛ¬‡$²½úCJ×öR… w]ò‡¹ï÷XÚ‡åH¹¤µü(È“4&>aG‰cIe]sLœô4 ûšÿ$nH)‘Opç׃Ä÷™­WCÐÒwÝZ>'h…Ìeùx8÷ÁÒù+ÿµÿ„O¼oÊqC-{=Ez8ù/Ó&‚öz¦ÉH€ª«)­•÷D Ú³Æ üÏq{Sí(©‘à\EGW¬{'pR•·¿èâ^–l+ù¨|5«›IF§Ýÿ¢‹¦d!äõÍÈF3‹@n1’F¾kÍûnÑ8ov2Ü™fcÈÑÉ¥F-_ʨùÔ§»BŸ¾MÝm3½Có}”è$óxWëM‡Óƒ˜qu2QÂÐæ€Ý7˜>‘L“ô#\ošÈ¥/O‘µ,Mj¬òö[_Üîš{¶õí¢Ç† K¦í *s ס …iâ Ç<`¦J± Þ+»„z "¬U±OR£“ª r”e,½D¶[”Ù]_"À+ì‹2©n†)ÿåBËh¾ª™Yà~«9â‘¡¾†Úd“üçÚ“œUŠû|éGÑ“>C„l‹1 ýd¾ªŽ{üT«pé…5‚K˜?£Ù`—]Îi¡”Û~±t¢2žuK[¸ƒ`;Xö̺¯ÛàãfÌuš‚[÷®°sÊõÁµI¸ãšš{ÄŒ‰6÷ÚÃX—!£ÎÞïÆ—Ë ô*­ ʉÓ”ÒÝ mm!I A[_/¶@´õߨ‘žªÙÞ1k^ÍñJg$´­¦þ:V³_–õØç Øüû±+ðRÅҴ題Û\JíØb æ»Ó“}n& Ò;½êFú ¯ï^\“Ö¬çìÐøâX)-/?EëV²äYd?”߯¼ð_÷z†;>Á5›üÅ*r1)83e–ø ¢ŠqÐŒâ­å4îòúÒÉ, ’“ ’êõæªq×3Nsc8Óáš/]éanö³cEµ® ˆ,y×Õ·ð“.¨»}H7'¶œ¦eŽ6ôŒÃâ•Ãå_ö3ã'%À8{ l¡Óè¤Ëœß0ŒEÊuûc vuË! U’‘†|“Gmc÷‡œ¼â { \dõœ‡2žíIAu÷ž ŒŒEŒkÊwLQMµIëÊÖÄWç‘pS¯^—œÉã:˜Ž.½Vp'Üw*br)aþ*¢Rš¶‚- ‹“=F(Fc² +÷&_0Îcƒý_­²¨ÇÁøã øMg›…ñNr •Æ£A¶B¨t¢«Ï‚Ÿc¨YöÙ«¨3ûä`Ù¨| ¨êLß WÒ nãÂÝ >úi4ËUyº*}‹…„L›ÑÎø£Nq¼©„A…ûý³äst¹þLt©md²ßÞX¶ßTµüͯ×Rtf;gdšxb¹úÁÜ®;Þ‘:óš6×±zDQñÓ;{ÌÜzv¨MúåÊu‡ËK'—%ÃÞS¡X" Šð=”èt3—ç r¢3:0º5ð% r«öù{ £¤®QæÛrC ƒ@#_£E(ðÏýœS¿ÂRš'h/Ñ1ÒªÙú@BFDÖgµq¦.Zñ¼J˜2Câ›(–ÿDüΈuC<{µ…£*WÿªSb¥J‰´1Œ/TõêýGª’éQüÏÌzøp’¶> W͌ɓb¶­ûº|-¹º§æ)”|8¥bºû49ìjä¤l‰x²þòãW’›PS÷=Ùzöl$þ‡÷h …çªoµµÀW½ÝnâYn¨n:U<óÐ4ŠüÔÌóÔ¶ŒDjU;Æ TûäPŒó¤¸´?oaä;%Ç={ΞÅ7¶,`»®ÔP\E4Ri/øO/»©‹‚ˆ ø…ɶBó@†w5Àü8ä •5ßhr»3 ½Ç˰ž‰ÔhíKÁXîùäl.j…JÚ êF1Gr+¯Z8ñ3F9¢Ø…6‘“xrB%·Y Éà<>,Íúz?ÇÇóm|ó»ÌÕQYº —Ø »ýlpµÐ/'2åBñAæ*íýt͈FÏM;µáÂ=3yCt("8‹Êg7á´ƒ–¹‚Ê®øº· ž$"CìSŒ^¼Í÷¸ä°ÛÁ÷{¯Ó–ãÇŽ3•«îÎ]iNˆZŠÑê'5ܪ@¦Å¥ðËøõC[ó¯¿`ß0š=õwƒçÚæÐŒT­ÞF×QEݤ.ErwU (:ï›fñ+áùW©–-ªôÍÌšÑ3‡!›‘k-á½i¤ø7R¹¶vöü¢Èi+Ø °2p’ÆÕuŸsA²á‘Öëj3$ÂÌhøbÀcž)Å9°TÚÚU#ô‰³]&.ö<ƒÒdr»l0sËu°enëäË;2¤¯è¬r+î=9$p“ ¤ö[3IÖµ5$ïµÞ‚šG*°§‰Ã‰—ºx|Ñ‚žø®ÐsΔª_tÛ¸£¶oÓ*Í©ØJm‰Ò VXÔ/´(³{ Z#ò/¾ÌÄþt œW.™¥¬f 9ÃÅ'û©Þ/›ÒOaDdóø„J•ºÓ[9 …@½ Ã'&Cº:c GŒÚ·æOáJSr@ ¼‚ù%»fóšRI+Ñ_ÉW‡îªmöú³ƒ4Ö¦µJë[]<:fÓœ” ýýzù—ïÅW&—ÿ¤ð &Cª×ZHØÕU4GÃväÜ¿¢{`g;b¯ºeÖz£ Z’ú`PAë+¬öÚÅçêΆG&°ªl*d køaV]˜ÝÎ¥ÿ $Üa—׃îNê?"ñUâ¿Ô`žv¥€\!κ%Í©L¸¹(l"†iÁc%Nÿ ;©|~KÁù@ᣘ,_onìDåö…p×^ŒÞB\·5ܪ‘Ê̼*FU¬ÛüBÏC׈¤ûÝ’Y£&dÏÄ%¾Au¸>­p6Ù3Q:pût®”½ºMÂd7ƒä÷@Öà3µè\e´E@¥”=P5¾(ºRÔFkU»aÿò« ÞñöFäFw§Ê|Ÿû ó˜ˆÓæ§róV ž³È¤ú˜š¯ãOìV«€o^ÊmÔ*iD?“ìMD Šeßa!šôï,Á²“zÃûLëwñ-u·t¼ñí8ñøn;!‹Œ0¼ïîÉÈÈ”Ç)®^ñ5•{Ô‘Q-K×Ùº2Nïae4_ ©F-ƒcÄÖ—ÆgÁ5|×DOÑp®\sSé—­³‚åþ¤Ûv°®Ô$j'b‘¤›¯PϽ š101 Ky#×Ò'l³ xîõÂ×—È®lá2ê%¯WãÆU¾ «1 u)ê©!ª¯òGÖ½—Uh¸ÿ wf¦H`|Šà,I‡ÒC#)ê*!Òñ…Ü@Ä51Ã>N7PDlrg05ˆ@›4ß2ºÉ&½ÉUV9–yiù(ÿ.A½XîááÆ­RÙ÷µéÛ'ŒîK?–˜ßÄ•Ø,ÖÂØ_Ðzˆ6MjágLÜ'¨]Ò#ÔNpŽ—oûŠÃ¤ŠìYÜ¡#á”·eÛIÌ6 Š’ 96£c¯OÖÜqgÍØ‹ì huù?hGæBˆXa >ÝÚ:%¯ËîôºbxÏN¢¤o¨}„miØÀWk]¾tt¸j} –ØÔK×ñD8ê}üÜÌožûÅ>߃nmµÒ]^ z¦@Q«fÿâÚ£ z_êFˆyÞDrŠ }sׯrÅc;íža Þd˜û³¡Ñ*Û›aJ*w»0—Z,KFB0¸Õο¯yo:OGÖ kY8ñ®Soº `ЬLÂG7J†º¡©Ìw%ì}ç¢ýgoη¡zÝ9·íˆ‚;a$},¡{êÔýÐdÆ›\(íÖ¢´ß'(N"ì׋oõ0²;ºß®wéÚiÛ#€íó4õ2Žò甼ùF‡iýöeÌÚ©^Yœó˜"[6vî?TY$¢0Y‘³f`oÎEà3, ]ìï7Äèû»]­FÒâ8äãjóûŒ¡vjAÇõ¦Y­…C®«È‹…JR04o:HÙïpBhw܈"iÐ>|^­¦·ÂVª1n!|äÈé2§Q¥d¯¾¦tö'…wŒÎ†ùÚ  ,®€Óð;•{ã¤ñÅ_šè4•0Ã:ñBRɆËVÞé'û ñmmÅìfÌè.M~¶Ã?xW™å„Í4 韮óˆý5“ÉqG•Ú…Ýdj"Njw•p¸­<³ù•îôËÚªƒ—‘©AHy3B‡Guߪ˜×kšs>k0Dÿ𸋠 ?cÚÁYó=TùÌC8[öë™ ­b+ <ÈÿÚåbWû0Ä^«ÃmÊŸ½JšelÆ>)O”_!kSüFa:âç7œô%hL©O¶ÿ±FÌÞTbÿÉŠ[KéæÀMAñL¹¤òºÒeÊQŽ–„VýKУ_âŠüènþ••gÐÀZŸ,³`W—&Šù2ÿÝg UA‹I¦š>sÞ/Òü0R4ø$/ÁÏÈmEû ÖÊ$YIóe“Ta}d÷÷–á:RŒîÍá,—6¢àµ „u~Þeÿ´°—0¹ÏÝë\ò›éF-Ë“¼xˆç†Õ8“Êk@¼éf°× éµé‡k#Ý›´0/J“4^XµgÏBÂfóT者;÷ßË8—°-üS½)rîÛ3®‘œOö\õÙ^9EfÕËnƒÝò²–'ý'ÏwãÖ=ðÈ¿`$á_iû’ë¦û{45í¹¹X>zÔj¾˜ö“—wز?îcï‰ Ê´D—‡½gBÚÂ}¹S{g¢:N zðk8ëNx3œ‚_À™»",Ëh¥¾îBþVT¯y ï,ºß&¨R B¨êjLúÝÊë2ikœ”*˜HYX ÷ОñNÐê[m L™®^•Î<™4·d½¬JD/+œ/Ƴþ®÷òø<4Þ Qå=LWv*»B¨á2Œ;ÓY¨CaŠÇ–戶S¦³˜Ä–âh%Ëõ~_«0ÒúÁíÞÝ©ÿÃèÇQ-b\Ôãg±¬a7Y‚³¢˜„ Ö&4òSWÆ­ºÃÑp®ƒâæ. `¢ë5*²¯ø3#fU™BœX…•LËžiPx2çÒË#ëÒ‡rÞ/³(Š«Ù­nëþ &Tn·'ÌØ‚¯\óáíÀ‡ýD¾•wë‚[êöÓK_ŸžÄîʽ÷£^KèÒ‹Mó6 -¥?ë·ëÅ4J2‰(n–J s0ÅCõHMªdpFÛö@å¹¹w?õo_ÓR Ú¤Õ©¬s}öQ(P÷F%];¯7£ÍŸ€Ž?Bׇ@¬Šà$#¡o.³DZ1 EÃ"z5!@õ¦IHè£ B©Þô-y¨¯ßúÓWýVJqlyŠíXÉ9^ó’]P1«÷€VøÙAV›r8iìáÛçŒ5¢"ù»¼”^ÆÂ ü⹜ýqkçØw—#× »ÆH<浌̗[ýY{’ªÅn¯Å™VËMRõTkZ>³Q§Óåìw0's'îrü4‹3ËÛ3ÿ|âiUÃwÏ3¸‘Ó/ªWY‘xsJþ¢\à·¼Éç›l]Hõ"·½²?ñIs·@?M”4(a¹’ù4€I]¢ôø^wkq(aÜ[8M´¬p<ÀpøžòóÃ?yÒ<Ùˆ<ú»7NsSÏ”"€­å“>J|§¾åæ ~u 9?ÖŽ;Áìã¾­F,Aè­zÖprhGBÍeè(ËyY!W4-N[&«$ÂEò»Ö,Sh‡‡×ÂcMDª¤ªÇ½´“àñôøR‘‚)Ò>uivïZίþ#<¿EOU©å8FP‰c[¿À~LOj#”«õ¦|Z¶7¤Ü F«»<¾É û~yù¹ŒÍülì¦/HÌûrb ‘R=5¦[$ìzï›}œoqªÅ'Š“:ë%†1¡ü [^Å)€^îùýŽŠ÷¤™Ñ’á¯_“ ËØ — ·âgó{’ü )û÷k·¥<·v=š†ó…µg*ç;3¡„\/>[ ïSTz„*”çÊbmIsyeÿóÓ+X«šFgRŒL„Þ²¹¦“K4h¬xoÏ .ŠÖ….Ö3¥–ÖóKñçJ®}­2ÊÞ¼ÛÓú ·îPÚ7Ü_‡ÏZ2ß™TM]5íVîFÓK3¥NŽfèÕ¤¡|«å/7ZlCº%ñŽfóN%Ñ­üÆå"Ur¢p£:ãùOã_Õ-ûŸÁŸ%‡/b~r)£×”ÑúHôýº½W—X¿|€þ40é<è½áåb?uöH$ŽîËE¡ècªØ…˜æã§Þsù}»P.tw¡ƒ[Ï_Ó,,ëZÁ—à*¼^TñGš9Ýl_›h‘ТÁÖ9AVÝù‘¯P*UžvŸ‹¾Óyzf½îã«¥“¼æ¿å?6K„ôó`BŠèY¼öîú>²Z»j t;0ïÛ¬mxL*‡cÎ粂¼ERY½ê̪â’8Vy?kÊLLÞ&˳¸­MaÔ‹Ÿò†ºbóåHÅÜ9Á ;~QŽ 3¬ÔP‘"/õoz§ &Á¶C3´ÐorºÈÖW{ÏÉŒE™ÀaãdÒ+—GnõâoBp> tHs˜ïªJ2 ¸'MØVÓqÉGQÅ9JA}ix>cZ9ƒx¡$ Ýl8qáKtô«º£>ß=Šã9ºN†A"RªaÇØÑ‹Ýà(HÚ‰»PžzgíÏP”k*!D?qÌóBaÒ¤å2|jU2¨¬9g{û‚9–ºÞ~ ›Ç;CøVì_ЛDü¬öéAæ´c”¼Üd›ÏWiAC¶Á=m8ޤîn_D¥TÛd‰$,$âýRþàqøÿYMq±õÀcßh’Á=C½|ß‹Û)Ê•sÖ-òÃì¼hB(ÙT(ÕÌš6ªÈÐáˆzÆ»„;êç¿UÓNde\ƒé¥÷|'P:îš ×‡ËRZ×—r|qórPY÷nó’(sÙ K¢TP&®Ãº´}\Øe`bî€B†”¹½kÖéXá¥i‚H3u}†Ü4S| –;/‡6èldžKÜ -7Ð\á”ÞïáÖelXøVÒ+ ;D§&DÞƒósgè(LZø~ZÉo2+s$³òðΠD»I,åDýÀËwE i?}ÕžžÍ©}{O\ÞÛîU‰S¶­äO«³é}ÿvcšçòB¤TŸæ¯ðaƒ¿Be2|ß·d.v– 5hyÄëû¨Dç;rÒet½Úc“‡ÿ6)0W <,3O‡n²Cž $·ä¤Ÿeª£UTöâjz¶XÛjdK-Ž;K#‡»»l¾ŽC±*k aòêj [okp!èì>0gs~›ÚÓ³gYò)~cyÐAÒþÕÅŠ„µÀ4¹ÅÖÅâÀlœ,²4M 2Ur´ÝÞ¨‹¹ZX9ãj ¸ÜŸ{ .Î3º:?}–íÇ]¦‘‰wRìT'@‚*Ç2JªJJue~ô)™að3R¶Gî|&3˜“Ѻª#܉Æ]‹z%pÃŽÞßü ^ÙS DKªßÈ·{ð¶ ’â’€¬²Nïß·øymOœŒÓ<Ü'I=x.;»†Mï“9°g‘,ÄÍZSòТ¬á/oŒÕêuÜÞÖíE# ›ßɽ{fíJæ—ÓûYJABùèÖTÙÕØà&ÁÃ-pãå¨ÙÕä¯ÂŠîÈ bHÕéŠ7n3©s5Ð¥üÙV·×(?äI¶õR¦òp¥ÊG%ŒNñ˜ÿ½¹ [BçW /ž¬V$¨‡K­áÌU#'3I€ õxc»"¶Èe‘ Î(A;çJxvZù÷‹k6ÆœB±Ö/вù Oö9$!›Y\å¨ÀEŠòÞ 4Øä :ÝñÏÝÔå+»Éïåêú›-NðMe ´Î¨x”ý‡bµÕ.×:òÃT©dˆbCZ8ס|'kç]„S# —9™o‡’Ù¿|ÎÁèNà!Ò$…0…±D“FŸ¿C´ÈI¿Ü:År’Q%~ÀMÖÒ"íÙ/6:œ÷­ÀR3s axÁÔ<ÅÅËé/{ÑgЛBØæ³Ãh¿èš÷Ìç©êï‘ú¬ú¶‹Ç•Ú'õЭ ‘±0£) /C2‰«ìö¡•¾×ˆS@6gª\‡B¢œòÕj’~»bÏ­¬É}¹ÇLتÍþ,Ë›Ÿ÷ „ŽÈŠI÷rò“Zäõׯª*TÍœc»`Ê4üÝðeÛF2ð¥n89Â5¿—ÓÉÇä^ÚrÇñþÜÈ£î„Dœ_¿„BPPÎwÀ®ãBÙ4![ËŠFÈ¢Š¢Õ)ùjuÄ Œ´ñ ?5\{z^y»Üá]`¯«‡JPLD”,a{ÂÚ\ă«îªo1eL6•Ð@DzÖãqÉ’1ñ`½LÀše›k[·ªgœÙ´‹ÑR"›Ñ:ˆ¦©I*¾¨‘yçv³MžK6Þ²,?crM`;ÙÛG åRÔ½šàA‡fœjYÉï[Lðx\¬æg;‡ÉvÎ\/*”4óWøo¡Ìáúí³m4Jæ„ô³šQûCuúj”?õ;ãŸ=aϺ4´ñ•B&×u{fuì6[íÆT¿Ô6¾ª©™XVÖwþºPÙ†–Ú”1®ù¢+gTNÀLZÂ=“^îfË[×øtëÁ’R> ½k·_Må=¸ 0**£­~lØ®EiP¯YWßšÎlSun¡}h~Önc90·œºÏãE7ìÔ±íjÜÈ¥uò…ûŸ÷S^GÆFqÀЦ–yÿ¬:lz¶ÿ¶”X„[°WF¿¢ï­üžþ&·…WQ÷%¹õ n¢Ö}”A=6C_E/Æ4톴®TN´}Â[~¥*ý;Q£SµófšíxhÄl!WGQHWs .N‚´Î!I?š)[ýV9µðè…-_åªIJ9‘Ça`àqͪF÷QFFìÃ÷û6½%Y„ûflw«ôE jtuVÓ=•CÚdáøJõjŒïeKM[)ìöÕdûÏ;1=Nx±ô«Ç• %ʦÖS"ؤ4ñ{ÕW8…æBy´|{”ËÛ­HÿRw´žŠ¤ÄÔTÊ?ž´@“E‘om `(HzãmÐžŠŽÅHQÍØwžÏ“:ôT3D*5ÀŠðÙjèî®x<6_Ö+*ƒÈLÃä£Ìß|E 0Æg˜ëNýej>fz¥é†\Ô_&ÐË¡ü¼Gß…™Tfê\`¯I§ÿ6–]º9Å Æä…d±d@R3™ŸÇ!ê©GAçR¦wS6¬–ziÞ o—N’Zf¥¯þ RGSÊ"ÿb[²“ßï)p41ýUP­|A-AH_#´È©Ò­+—€¤@Ö:$6CÇõþ–[m$;‡âGä¸$ SŠ$õÜöžú˜wy‚_sì]þhò/­š~¦Ô¹Y¾X± (/S‘à€$)~©Œ?ž>5²(<¾IËäzÈÑ ùÄ&­#¨.;kÚ˜}ä<ÛQ+rD m“@âœtš”?ðæÞàœ_ÙzÓó”VY5-ÔD¬ÐVëàÃSø—zLo°R‘²RC)HEŠï(|ÞÓmgëBYÍ’ÈN?‚?t”¦.(jß%`ß…'‘õ¹~k‹G­µ%˘Ïë—Lá*n)õ§F—sï™Äصv´¿ïŸ©œ Æo]×59¿ý †ŽµËÈw]3“¿üäØ]±Œ[mëçÞKZÖè¯ü€™;‘‡Šn±}ÜÎ^ÁåÈEP8<×â!R^ºËw¹§àèê<3̦«!Ò¯2£¼OÝÈ`}Ýr3ô“–¦bæÑÀFVÎÚ¯P?kM®KÒÒ­f~סaQ·µÑÞ¶ªÓO?ÕéÊpzòþV™ñÇÛ)UŒZBŽ7±¿ùÑ ¥(¤|y=†26ó'þ³‹Û[Iö¾Óù¼˜±†b9EêåXJÜq m[v#3XCsqK¦c×â«m*Q’2/ïZ;¹1ç¼LNEç6!dȸÁ¶û£{Ì•Bs“¿˃$ —YJÙ Ë×Ñ!˜õ¬€=Åcç•ÂÆ‹ütýµÜïútMðZªt({ôÌ`Äí¶gµHˆÈ;ǾYf=3® ÿËFdú(fð\”õŸ{‚]xÉsܾ…~ÄÙZº\‹3$©ÏõtŒpèCß0¥·˜ØG´('‹nŠ2´øø¼A ÷Ç ?òj3¥´üÉÿcøâŠÖŠzýa-P öš+¶±áAý^ïþûk³ê·HØÐÒææZ,Îm‘gº¤h·w§Û”´ê×-}¹¯}²ûÌ+¡ßgô±ÄY3Êϸr÷nV?Odç¢có{Wný=÷å°3ï#ö¹W‡{Î) k¸ Ê\{+Éeå²-9_îû¬Ó¬¿xQà¬ÀÝ K·l³eWHYþðàÕGúúg2Šgdß`x÷šñTB«¼CòåègïÔÚT‡,œºJ×:=ŒMw#ו³Ψ‡º_T º¾1×)óí½«Ëz–îäTÛ=_Ls™…³´ý÷ûGm¦Ý=$Ø_aøÑngäò^ww5?ÔvØûô&ÿöûdÔqÇJO}«¯&Ûµ‡ÆUqœ \ê ·Ìœòæ÷ÁC‰-gŽ¼ÎšÎöV®äÄoNŽ“që'¼¹Ñ¨¸%¸[OOó‡–ä­‹7¹Dt¦2l+Þvmÿ©%\GE¬>o²Ñ´(˜˜Ë±çŽÕ5manއi½±ÕYëFä(þí›}à¦XTcÂËͲ¤Óúœ¢‘í×779nü$?½pNûa—®V}ƒk™+R‹S_~t±×³O/ØSØý¯ÖmÑ?æW½G’òtv$ÕžºÇ¬¾nîÆ—/ª÷p;û¹-—ù3ñƒÕªÃÂz5ú7_×/}o'6ë`õŸøÝÛb•}—NN>²ý ~ØþˆÆþrq±.­Ëì¬ýï åì|ß|mE{ìn רÀäœÔÄ¢’üÜÄ¢l.›†Hendstream endobj 914 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 2 /LastChar 122 /Widths 3958 0 R /BaseFont /KFGLOQ+NimbusRomNo9L-ReguItal /FontDescriptor 912 0 R >> endobj 912 0 obj << /Ascent 669 /CapHeight 669 /Descent -193 /FontName /KFGLOQ+NimbusRomNo9L-ReguItal /ItalicAngle -15.5 /StemV 78 /XHeight 441 /FontBBox [-169 -270 1010 924] /Flags 4 /CharSet (/fi/fl/exclam/quotedbl/ampersand/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/colon/semicolon/equal/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/underscore/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) /FontFile 913 0 R >> endobj 3958 0 obj [500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 420 0 0 0 778 333 333 333 0 0 250 333 250 278 500 500 500 0 0 0 0 0 0 0 333 333 0 675 0 0 0 611 611 667 722 611 611 722 722 333 0 667 556 833 667 722 611 0 611 500 556 722 611 833 611 556 556 389 0 389 0 500 0 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500 500 500 389 389 278 500 444 667 444 444 389 ] endobj 908 0 obj << /Length1 1612 /Length2 18615 /Length3 532 /Length 19519 /Filter /FlateDecode >> stream xÚ¬¶ctå_·%;©Ø8±mÛ¬¸bضmÛ¶mÛ¬8«b'•týŸ§oß÷í÷K÷ýpÆøí…¹æZsí=9±’ ½°‰PÂÎÖ™ž™‰ `acäâ$og+G¯ 4sü5²Ã‘“‹: -ìlÅ <   @ h `a0sssÑDíì=-ÌÌTjÊÔ´´tÿiù'`äñž¿™Nf¶Š¿®@k;{ ­ó_ˆÿëD àl˜ZX¢ŠJ?¤$T’ jI -ÐÑРäbdma ³0Ú:©¦vŽëÆv¶&ÿ´æÄðKØ `p²[üMºíÿqÑìŽ6NN¿N3GC[ç¿3p¶XØ[»˜üCà¯ÝÔî_„ìíþFØüõýS²srv2v´°wü­ª$&ñožÎæ†ÎÿÔv²øëØ™þ4±3vù§¥ùþÂüõ:ZØ:œîÎÿÔ2L,œì­ =þÖþ fïhñ/.N¶fÿÉ€à43t4±:9ý…ù‹ýÏtþ³OÀÿÖ½¡½½µÇ¿²íþõ¿8X8;­Mà˜YþÖ4vþ[ÛÌÂŽñŸE‘¶5µ03ýÛnâbÿ>W ã¿DõÏÎPÿ%ahbgkí0šÂ1*Ø9ÿ-  ú¿S™á¿Oäÿ‰ÿ[þo‘÷ÿMÜÿªÑÿv‰ÿ_ïó…–p±¶V0´ù»ÿ~`_;€àŸ7ÆÚÐñÿnhcaíñHø¯À“üÿÁ‘v6ü; a[³¿‚010ýÛhá$aá4Q²p66˜ZÿÔ¿ìj¶&@Gk [à_Eÿ5L=3Óñ©š[[Ùþ3zö»€¶&ÿ•ü_‘þEQTXXBD™ö¿¾©ÿŠRú«½³ª‡ý_bÿ³y;“ÿuøCDÄÎàEÿ÷Ò³°r8þäbföù?Tû óžå -ÜÚ[fbþWãÿó÷Ÿ'Ýÿ#nklgòÏ®¨8Úšü]¯ÿeøÇmìâèøWÕÝø¿ ÿÇù_‹ºáÖWíŒyƒ-Ó³2œë±òF§Å´û™ÁGCìËšT‹ ýkíúüÒÃ÷¸« >êBšgy>;6¹Ž4›ÎÀ‡­Úõö N§É–þp2ÿe‰ÄÏqÒê]{Òêu ÜIÌ .†¯;çÞc2¦ Þè{d´‹1î‚ÄÕbQ‘iÔ|ê*8˱ÓèIpÓEÑÝ aFR‡o$׋’T’oJþÏ[Sd)UCvõvä7¢'”“|UúçÏ›Qœ­èài s~b*´tÇÈ"JÒ_ ú4/7l$su?Ïå7úö ‘»‹òFÔº¡l_¤9[ Â7îl@pû:èîf#-YªªÕ¾RDDßÓÖ‘aïcÿTýÄÖð÷zƒOj™™þI@Õ»C2SzÅÀ"BGSj«l ò ™2©ŠÊ0õµŠn €Hõüø>±öú”$Ëû›0UŒgÕ­×¢§çådâõeoJ[×…®óÜåo×ìqkè‰Sl/Å{shg’¹j²‰ýD}³Ó»Bª…a:Âò'ÿ6dôÈüÁ3*þc³‚~ƒñ"•‚šš½O&âí†=Ý=y:~Q~‹ŸïFrÅiÅ™Z–ªßè†a[Q»Ÿã˜YgÅX¶‚—Û3R?nûr}'‰­èßc`K+^°×3Kœê†™™S9XEUç¥£ÊØ6æjl‘È)ÎVlu»ÌL #¹Ú¯'YÖkñ|ø"¿0ÎFLœã0=ÔßSöœ?d$Þ¾@ÇÑÃâ°üÔh·²ZÓÙrœj<Ò8&à-¨y ÄDÐqÅF?cù¨øÀŠ:Ywx* 83¬Í)Å  CÆZè.$ßôW…œr‰`WF¶iÛ¾kÉÍÂS0«Güpì=êvíÍLaÂ[.[ؘbfm™DVžVHkCS£LÈá¬ð¦ì€8s/õgóá/“ŒB:ÃEpKùRt%².Ï\Ogõ6t iÀ}o|µabxIà³j…W}>—.°\jÆ‘Ÿ* æ¾`®㫃—¤»ŒÉ‰ Y«$Ñ_•};á´ìz!é$œNâÞKÇÑPþ/v¦Yg2Yw‰·]å™’Öªe_ê.ÀÆÊE&ŠâËKîõc’*\"(“k {O‡+¼m¿P¤»ÞÀÅ᜽ˆ³€ç»P*½Œ»V¾¸St>{,q| &JO”+ q¡&‹¹ 3eò‰3q±oˆX‚ypöJEé®=ëö¨¼3¿ªß-­Ë0Á˜ÈËy¸Ê jMiܱòܯ{¦TH7l8TQ†úÙY7ÑíÌ,zw B³¦L¨¶½Czæƒe0“©†˹§o,y:Mû›j9³{·¸ÐcåInƒ(!¿77(°H[EËJ_øÞ>À"ŸŒ5aÔl¯Èª‘ö×eëzÁNjÒš½Šð,mšß#6j†¥Æ³¿9ºUÃn+üïvF¤ÎªkV³Þîe‰ùØVÏ/LQçŒ8¨ü¶}‡Û g‹H0NyJ›•‰Ý•Í=õO<~M)„‰yuð‘ÜÁ_¼b¤´™ƒÛÞÏf‹[e£´Má’0:U·Ü=ÌtõÞ¿¸†Þã,´ç„ˆë³f÷îSíA”ßÛﯖìKÑ’™;°Ý“Z•óZGp±Ò»ÏެK@C–{B²yPTV¤}Çé~ñµè÷¡+(§%}ÍÆyÕÍßE3q|}×%®íº|Iì ÍLpº…9¡h®àÄ¡ˆÚ£hg±Ïö†(3ñÐúâ íÉ߬[(-/+tOSuië¤×ìÍ¡Ñöì¼E–ÝmJfŽ¿ìîH—:t§LIªpP²§sØŽérJÞM‚@ÿî‘•!‡ÀojÕ(‘ËzöG§'½Ð]¿¸Ð+M_Y¬ p®Õ•8(s>3ó¯5ãtædЇð‘m`oëäKeO_ß©ÔÃö[?ZnΟ~Ü l» -íDʹgFèA-BA¾ ô¸¥Ù:ì%‚_£‰ôôÑ¡tUÉ<–ÁÞHД¿ñ€Mý¶#}—×ãÇú^Ý#|5âð=2-<›¯D=ºæ™éuÌ®)–©P/ìÚMJÞöKöMÖš MÞ {\'¨ùVžÏ ÞÞ«—ÛQ¹Z²Õ êP× ƒ}^MhÜ*%c7>Y»å;˜Ã öÈJê˜-{?NËNU*zRÈrî „Isò n‹IÏÄÔ×›ZTï3>ã¸xZ&ògÔŠ $'Y õƒÝ§ÚìøjW‘Æ‚aÈÀ‚k‘ƒqünµ>%MW&!Y@ü®M¹D4a[qcÓ†Ÿ¶C€Æu”>iLè¡ J ¡-¢„Pê,I× Xpøz´­ ÖTWyõéÇ÷_; õiÇ›VOîLê"­0G™öj¯btƒsƒL)»t”ç;Óx%òV—ãNcX©—'Àv÷ùŠ_9`–ÃòoôcGBJ@‰Ê1$¯ÀZ¿Š¨{ ôÊÐוª:ßu¹+…x±ÂF>o{ †Ô‡cE+ìd³ˆågp3}þÕÓ£ò›š•çC‘!±À úF—ÔK\×ÅEº’úo~™I”Å›1ðà™;©íÃç—är߸¯­ó!Gxþ 1âÃ’š]¯?;õ€th(óösÓBÂcÔØ?O‰<-ÃÐåjÉ$«*eå“ÜÊN-‡#Ì5Y È `G„ËH \6h>‘fáõ®~˜¹ÿÁ,] û†¤û‘¡”J/m+¹:ÍÀ"úkûlÖOTËç‡-“ kV¬Ýg´ó›] 2î»:pPP9m–Ëâžçâþ-†nT%yA¾3x4¡™=›€l d$VÕ!Ž „ÛÖ[—‡CFÛΣßp«o†)ß*s‚ŽŠùM¢vD1Ç«X0Z,ìƒ ¾vn¹²¼_ÞPîǦ­Þ€ îõ̰U’pVž6½B'œY§èjî²¼¬h›‡ÍÑD‘£eü;.W&±èkœ4©_ó÷a–t £uÒÕàDþÉ+‡šæY# ÌLöGññà71á‹@á*9÷’ÿy⦠ä`›T^÷ [ôìI7´F70&°ö²´‰éùÁûÍCÅ€×Eç’/.²+¶)Q¬7i‡UŸøÂû…†viƒ›÷+¡c6|e‡–ñØ8¦”t˶Mhôé|&"« wµœÐ›úuúÏäêXä]„hÌÍrÈüe³­©`̾ lwÙ-d#EŒ ÜðoïSu½ó¿Æ8`$ý¡6ŒEmÏ‘µ¾6h…K_áT‚¼ : NØšoƒIU(L‹– …æ‚(+Ù›ûKéÞÂÎb@õÿþ¦uôÉæ£üeÜhí­e‹…*V‰œb‘œœ£läŠ¥å‹ .´DæÝ]|°«bB`ÃMÓm8®E²g½9ž}ïõµéÁo³škæìÆh‘•ø\†-ògíÞ®=?zæ¨k²É Ít¨MÈB^àîb`Š%*¶_عó:æ¶K†(8÷»û¥æ¹‘]¤ñüÇ=Ú¦ÇKH50;·í:½˜5×Ò½“r&×|hyÇZ‚v>D­w…Àû1Â1H}.@PM«ZêxÂĊ݇|ˆ•É%ΡY”C{C— }¼áÇüË»Å!’]óµ„y!UR0Ç6 gãù‡ï/Æ,i¡”´àX}įŒJ¼ 0•~1kþç”·í“ðEÛNô_s5¶–?]sZvIªO%œl#Ÿ X&âÈAfMë:ä9c"‚þR—¯ J~`‡ˆEgI¡¯Ü{ºiœõ x>o‡NÒ6VG{~ø‹ªªñÓ¢ëâüf:W*üzýžÛc§ìºQ‘]°ºÛ†…›çý ¹K˜¿ÑvÁ'ÒÖŠ+ÆJ‹ €—ø˜§€_, h4g˜+ ÄUohn§öà)Í”â`>* GSåX½-n=[ê§™… Ud¨Q™§{6yp6UI=ÏW±Œ¯Øä:œ$åõ§Êˆó´e4h5Ù{5ß0Ÿ©æk¤»hEÒQ~Nâiígù¨$ ¶øÓ7/K{׈ž/b_Ž:?‹vcÉ)k¯q´yüBÍ8)^?ù¹d?7q^Œ³§î”ü¼àÕt}}ój™n€`ãÌo¿§´™åÕ¤¦²{™ò³/ž`óÖ}€Ræ1'8ø³áWŽ¥Ë>ˆUëU}Þ Ê‹Áˆ‡¦FHFs¤Òv¹´=H€‚éC|ÀÃÕšT½Ýßó¥®C׺ÖÚ¬ÊÔ9……€t`"¾éدÜCè/¥‡Å{]8¡’£ž¾ß7A›i¬“Ñ÷ß§•@ÿ¾GœýòÏ_è…‹:*suùk稅4;¶W6ìฒh°NÑmð¿Ù– ‰¸ÄzUSñÁŸq­ÿ°ÛæÓÄÂØÓê+÷¯IMØ”9§ÖÎËyv4‹?xQ¤Mûì*'jR}–¿W^Æh~î,µ›?Ê3 ¬Ððêó(Òg¸}T®;‰ÆöZI“_k˜Þ PþZ˜¸–ñ™ V9AÚÌ«"&lÙ1ä6ÛIíAÝÑ¥K[{Þ¸x¥îQö,}-TבöJ“ÑÎÚ-N¯DZx€TjŸLÝý&š±o. Ñûî+å"ÊXy¥å ¡¬92Iîãw3mp÷‚\¦àhž@dUu˜î…ç)VrI€7¼AíƒìØùJúÚ±¢}bJPÈ ¶æ„ˆ5–>æ¼í¶E ¹[DÖ|/`@å dA'nÇþIUìÐòÌ ZCód¶!iûŒðFCMùKÌ †iÿ\äè¥~ÕPDkú¶!Ó± Þyuô–'‘œ Ð)“cÚ†‘USbš ¾*÷€õ=ñœrä¼úWíyˆ“Éõæ†w^p”æq…¿GçÏlrß0®ÑQZD„þÙ¤šæýÏV$ª/™PDš×ÀŸ{?ç §ìFžI½šF÷EÎyõ9#ʼˆ‹[ÚõZ0{½¬¹2$ú£¥aNHì…Ψ69Ñq'KÛ”1”2œÀ4'37ë±@‡Û3ebxÜ|¢ÄõŸU*O&Hp˜`0³;…ËL ƒ%·8?“·ùÃý‘†üu„\¾¿ª'•l±@oN­ñB¹(÷(m©ˆ˜›ß(üK N>‚pr´(Û$²>*\]ó{M‡¶L+­^FÉ/#`ˆÄÚ@µ&Z‹)µtÞb±ÛÖ\Úx‚ºFå—?}[ Ú#e£&n¾:ʳöü™úP+µ1± Z†Tz£žGK¶0«¶ø+$œOY;ÔÃ}É¢‹Ù â'MÙúJÛdOœl¢ÊkzéÔœ}<ƒD31LM‘;ÜíOßQºéœˆpÝ6¿‚\Ê—§þœ‹ŠDÛEbÊ“¤µ›«¼åÈŒ•)/Àq¾ßÇKBGAW˜g‘‚œQzWÍ¿Ð\úÄWö‡bþôDê‹Ëý ‡xÓgûÌý9ÐLɰƒ™9˜ èÝýí9é"¬ëj\Êñ°ÒN(MÓg›+LYHœXQ2YMÁÑ“>æµÔ‹±mN~£¯&õ]D7O³Á²¸.¤yÓ@c—ÞÿDÔGèvÿ(EKËUWð²Íd{𗦄þ2"Ë(áã™FÛÏ:F°v2p»¥~ÉX_¦G`(sNJ£S°/W –fû)êá þ¦!­ˆ¤ïâWw?Nf$•+ÊèŠ{œŒç\]›×$•×gèvK:Ðâ7î£keÍÚu_ã°¨¹-Þc]Edþs{R°ÞŽú'>.y¶FÞxÙ@ì.#c®ÁM77+5{•m°_7òžÃúóë=LQëƒÐ]^y“›}oL˳‡Ì;HÂNÄ"):Z¯"mnj©SÝ”oýHØ+¯¨;¬/Zì3Pp‡‹6©³‰ (+7?3š† %Š™Û;h3¤§Yð Êá[9ùb)i*Šò í”®oP=)cÁjÕvU‚te²›ŒÜ‰Ê’æ±"§î»Œ‰(š=0¥fCƒÇ{ó …o÷ÚTסƒÌ¬@>Ü©SKnÞ&¥É­íö1æ¼Îx1=„P·ÁçÃ}æ2Ûð{p¹ð]ÀãòqS©©1Ý™æ]C=ºÑû›¯˜³å+”av–Ó0‘µFNº))Rȱ §„gGIg @< ÖÈoöbã± ÎñO_t¨²Ï¥tu§žXè™|PðCD¼ZÑ}„âÁ/ϹÊé# ä`Ùñîw’\ì'2ŠåÜt7Ð{À¿ÚM×kPTš&|-¡]”_0´C—«|û¸Èin›“w àØy–á3 ‡cöãùÐsIió€Ïd¤QòZH%ÿÒOÅqikd¿ôTÃ#ñN “7{”Ÿò¬ä?»l›qËî¤Âª ¼W°ÎFÕ S‰üÓªPľö[ÄŽód}èÙÂq7nG ¨¯¶/`§G`èóâÓ#ºôY\šÐ,;ö)_ÝjŠ»ÿü‰} SôÎCáØwéN¾¼ðš»†È3ðßà“•Õs¢À(±&‘Ф<ÍoÀw½¡·ï.f+¡P0QÇ*à$,ÜÛB‰ÿáD·¤eرí;ë§šÄX>¥û»¸`ÑJ‘[^wO°¶Z§€@ Ì7R)´~s”g’çw0q{&M<ë€=³©µ É¢à7ú¤À¬ë1^8OIbÁ¹Ã–>¨íòùc´[¸}H;ÂÒ²[ËUnj*§ú]c$è2³‚¸Ž…C W3r*¨0ðBÐ }ñ Ö(6à:/:árÔ~÷H>xª=;O´Ýy€·dQͼqÍ#.²™lxd1gs-“`¸ ë›{²«˜JÔ•ÈAlÅÙaz{ƒ³ª˜Ïg\¥û , y‰·çêOñáÒÄÁ7_c×]mWš·_TOœ#ƒKlQ÷w/,´ý¼U|]] ߯Ñ’‹,S:ë«5”tÊéû¹…óKYYõe¸Ñ[‡«ÝP„%àχ›’„a£AJ~6hµeyûƒ5¡§–8ÊGÌýN;i©Ò§îh©ûóL©[Ù¯Ùæ¯&…oÁÛèt÷ªê|qfÑÕèâ ¡ÂïãØlÃøBãå{?‘±å ¦R–’J×ëÚ"÷>L¾Q¿'¢ÁxÑ_p½V‰]Ñ—™mX4 V°z2¬·?ÐÇ‹ÊH8C]4˜ðÙþÓy)°œ,m~Ãø:'´/ûèü¢Ä­ˆæo3]F9彈–Ÿ¶LªJÃå€q'JÁ2³gä±^5ãmÉå§Oغ͔e)ö/#¥1*yF ,}?ëÀ½ÔóãÜ2X¿”â!A¦Z#ÕpmÛ¶Š— ÞÓ*¸£¿¼î¦Ú‡’'úÐ^* ¡‰…B¯³9"'è¿a+_H£­fTªT²úá+7˜ø<ŽSj¼ôÇ’[Ú¿m”æ4sšo›9ü´´OãlÅÏ܃lËMe³åD^ÒÔJ¨W1ÌÎì0ÎðMº<Ídê[ÜÁáTn’Ї=A"o@°7èçFëËtSõ÷‚³äu4#Ž"° °«uâì—~ï²`s‚J&ÆÈ·°ŒÀÌuîž—°ÕbUsÍÌC(@ÓØRf¸Eß±XL:Ì/.w*ÜꇕûŒÁÀâ0ë¢pl°Ô« ˜%NC{nÁí¡N“;:d¤·Ó£µþò-‡ž"cÃÇ K`…r á iÀ¹R1¡ÞŽíT‡U>xð×Ôa¨œ…Ä[æÜ¦]hb-<˜R:‚HýƹÈDGùp­Œý‡öÓp~ÄãòÏzw,âLQû£áSîy±dȸ„zi–CjN¼›R7Åœú=—ñ˜‚ÕÇý»x6­YŽš#© ¥ûÓG×{^šŸFkrë-ˆ,×¢ÊÓPirßðÈý(;TrrÞb¤h--gÇ®¬¤dÙ˜²¸*¢ÙSi5mæôÖ‘€¸¡“6D2Ž6¶µ&Hµ“e*ÿÐZëh+^]™æ¹j(ÿ7ñh¬+[Ö\¶hÙ×(ÒN½¸IÈ‘mᵚgú6¸kó/Þ0§à¸dš+ˆ"%‡(o:ø¬ö4Þ÷íwç‚Pvpu _,csü4œCl¶…Úp’g¡LËñW2ˆ§ÅyiÇoIdÌ_”BO &´W×S2xÞùªG-:qL!t&”Ìqò5‹!#ËNù„¾wúU&|’H~GoHP¾þ<0²ÎæFlo•ÇÇ0ß\Î<ìFíS…ç6ýNU¡d”Ùãh :ö'óvPš€º‚"›ªmE_{®E=™‘kúV+#ö­.æO]ßøŽ,X ÂÍh§g’€32ϸÄnåGÅ>t$gó™30¨ˆwd׃5(œÛ‚o•COºè­P,3˜C(éà~1SÌðktuòÁÖDîñ‰Z8•£ä´Zõ§R«°°AãÁ™L = óé êø¡\ ‹2ÔØr`b÷“$çË_d“2Sò‘â%âÆâ×Y÷ÝxÎ×R "›9B2*î+aäŽnF9:g$ò†ö²N™ìÖÚµ`^ˆX‡(½‹Œ×øy‘rlÀšä5ðIÎ4Ô¹Û°møèâ¿ÞÁ•Æ$ óí§&$¬jÞ´{@O?•uÅù;ÌGEP=™Hº9£}O„û‰g¿¿ÁÁ\åŸy¢vò,Y1Ê>3ˆ’\u×°GÕ:O¯Ò±Je*·§æl *“úJ‹=Ua¶Åò€/ w~Áູ^Þ;_Ta<&ó8Qݘ© ^›*à~,‰$Äæ¾o”'ù‚–A'ô@Æö†(OS•°Í1GÑ(ƒXx}©²s(fIMrl°¥Öº¯?ÐQF¤O²~·ȪH†C°Æ´Jír=0ð'4ðß[ª0938"õ/òÔTã9¼éP%¦Ñbƒ-’¶$0$ЉLjöéÒ÷ÍÒ[Ù3Ö™W‹H—åZì©<0Öûó{æuÔ8wÙ1Z ²AV(ñÛÉ:Ÿ–ö%±þjz³ŒgoP²U2A­ÛÅv|X6íÛÊlB˜£,Ü5†t‹Óȵ^Ef lbm³ÑѶ4€1a-ŒÎ#ˆ;Àʧ|‘ÊÐUå:v¬¾¸ñûÛ6÷œÏ IJævAø~ßè4uR\k¡¸Z+øÏ9µ‡²”Af½u&0Nr^Ê%¸áõdç>³f›˜‚ɬ @¬‡Üƒ™ÖÊ€“¥„ÿUñ¨Ÿ‡Z>÷`ÚÖ Hµ?¢w©™æ )vê‹‚|àëÕ ‰wm©êhêáÒ~¢ÒÝI´µÒy˜M§°Pa«x; 3oþn{(Qði`¬Æø.OÉL5~ù—õíæMÂ]÷  0 3Li)Wù×6yaûÆ{¿ñc(ýqèŸO²àצØðí·\VtÝjÑo=Á>A0gsnô)m­Œý v«ŒV´F¼P'ng—5õ+4îkDHB·’Õ™-eçðpÑgö¿ºQ˜«»¹ÙêªÝ,¬Wåpˆ?"}tQžèñ F³ò³­È?¢‰ìÚàWp4¿œ\¥'žYõï8,\ÌånTîèІxˆBkÍòô CÚæàDð¢MbÊN/Ð rrÀb¦”gù®Ò,æUÇyCXWܬºî m5öà/ì ìç;>²ŸÜ ýh&QCs˾ÈUŠK¦-ˆïP&ή¬öWÓ¤YZ7*¹õ-A¼ ñîëæñ—»Îñ C•D‰8ëû„U•¨ßâxbEÐK/†œ¤¡‹›0Y¡«Îß­ë•z—/ÑÖ'$Ñ¥òȼٓZI`ËÓÍDˆÂ=`pa®°«ð‡í¢íà’±CJ—ìaÏ›3ȼ´Ê02ìl„É,ôÈ+§®•àò-Ú2&ÏWаyvÎê-±ÔK¶*ęΆ<µÆ=5†Fw ÿ{KHD /І¥<Ã^ŽçÛ®\çΓVè4’ƒLVò3\Ë bÛ>GÐé2ÏÀȤ¢‘œñ«àîz*î6®Ð(ΑǵðÅvÛ3ТÒfU{Tõˆ„ºþ!ŸêEœnúL'˦ÞÂŒŒ2<Çó¡éô '}cjKuG­Va ædÄÓré§ÑÕ7R«boåòµÏc¨çŸ+Ùàó^ܽSfR_£œSûg“ðUˆ_J]­ß˜‘=Ìœm´÷™@ÅšÈ0Sb`ÒÍýž·æ~ç·ÌæfFõVÁ”ÉZþlL·\ö®ÁêvÔL퀓ÁG&v1YËÞÙ§š½“!O_CpI,ÎDbh^"¡hmµ&¢´¸Sn“¶ÍXÚ¢Ìë[RÍF;ÞÙöe¶éÞÄ ‡—}VVâœ0Üò غ³ {žžé¸µÌñJ‚c®H WKI]fûä½ÁnÄ}³þäKð°ç †›•¸ØáÝc½›aèëè(ö´M¼Ùí»pë¿Gª@‡µ¬.· $üRø~I¨¾HèVÝ+Y­!F,xÒ°UT±ø#˜@Kšúé·ôf£“a.舓c2`JÓöŽü–Š ïÄXŽìú¾¼_‘W#õð \/ñèd:0îãíP­Áå}ý£t{BßÄï[)Žo•u]ØL¼½¯'¶¢•¾Bç*=ø/¦Ï×D (2Ûqœ<í1 Ñüƒ .xðñäʳ{2͸\Ia¥ƒ¥*FåX×£¢p ÅlÝLÏð“GA Ù|žÑ‡½E'¾•î.>ðKÎ…vÑ\¢ÍÚL0H”%ˆ…ØzúZÖa¿jèŒ5FŸê•h„C8ç™”²]ûbl5“K>®ksÜ;$æ2Ç1eÑVK™2˜}‘|]P­Ìs¾ÜZG˜l¸yEPHû°c}ÑÇö…ÇÊØ/“Þ~Jü—o>N¦ì(!Ýõo¶Jè«©_GêÑhß`(öZûúÒq9-kIÒžÙ{J Kr›ŒÉ8òíµ…ú½2zÚÆêbRˆØW0u~ 6$§_¹Ÿžç$t?ýîÀ±‘!éç«ie¦q½a>Ò’°–ëB…€“@ñÁEF°NžNm£*ïÂ;íËÚ¤F…ÌÙK ^'"°¥„Å’Úd_py\Ãs9 æcíú8.N¸`uàkn±½_¥sÙø©£·YÚëJÍ^ŸRúEÆ(»¡ðá2eÑžÆ1]AR5޾Ø¢‡ôQº¾–ÃjnÿÁİ¹Éž-:±ÈÇðÙo²x¼/1Æò+|(‘9·kÙál³D?!G;QœÒuŸŸ uæ·'ñ©!ÙaéUÒÍ £:¹Ï ê £!ÔF=+1v•5ÉÄtñ‡QÝ$;P¼ÏŸ4.ȃC`i†ô@ÚÒýqÎ¥+rwôåJk­3U?D1uüZÉŽóC!÷2Ö0ŒÊP£¨ûù{¶É(û$6àzeˆ•¯z¹ú«šlpG’¡àLeÃiH;#/j›§¦ïW½Ê¼jòýÇiÂÝ.;‹Ì“^4NŸË|Šc/Æ®5L·8„-î[ö ÔN)þÕB\\UÿôÉç ¿Æ`y;ɤaû¼êe³µOŸTD¾Ïð”\vüVŽ·)\Ú‡Æþa]gæˆNQ£×=„ô¦FNEÍØa=ÿÐjŒo(eº²šÌ#Ž}^q-Žm6ö¸×¯ì\вéV1j<$µ˜Y²_*OKãM¡?RN¿Ï •ºj¤ ‘BAýþiéŸt7‰”‰ðGcTP“ !ÇþÇŸJ_9æüŽËG»ývoŠ?¬å4!ðvmš²¨í¨SwuÐv´™á/Ø™@Û£ûžš(áe†Q™ƒ¦ñò¼7©èŠÑÏÎKLÄæ9¸ãžc˜ZDt"Øï|Øæ‰ ãûû<ù=ÑÔÚøw+“I3ÀLàĪ“%9=Ε7Ç*&³fZn©†Ü‹`ç”p“‹än`|Шä|ÚÖ¼’4A>Úµ’ÐX5ª?BÑ÷ô‘ƒÙ|´1aÇÈx_¯#º¨Ï7–$#ÊÖ´X~œO‰hTÆ:4?H”…å,2tœ†ë,[µÄÙØ¶|[–@ ¨¡¼ó}£7³|ŠoÙE ë NdQßF:€Î6­L…¯tì«‹RCáñ6§ÃN~&Pf–·‡G¿–2;JŒH °b ¾r’d=é:%w¬ 3Ü'™D)zß’”WöRøþ»l¹œPÿ«oÄ3WS9§ƒGï{Lᔩ(Ÿ¤[؉QŸ)Ô„‘`)ØèýN½Ò_.æÞ'g¿ûþ¹øˆˆ&­ú‹6öx)÷=áâ­‹î„ñ mfgG0ØÖ·ðÂ34QöH<‡Hõ—œ÷?Èe! ÞH °+Â[§±E×;ïJ™*x~Ô§Ž=S,2(­g¹m©pêH«/ŒÜÎG÷I?ZÏâ_~{ÕÐisü¡Á<\ÑÏåÁçŒÓÔ¥ª®\èlþÖ+«Hا6LÒ²¸éDïa¥Š g œEë­^ ’¿z7Ñé™ É墠ÂH!åÒû ‰bñ«ðgä}·qL¥yÆåãâ žMä)‰øC(@ÝîatýªÜo_Ü,Ÿp+¾$¼\õí¥<¼›¥,ã×ú­5³aW2Â×Õ{S~ûÕ›í½ñ£Ë5 S÷Éõ×+Qs°×7Òúú]Éá—ººÃ\m5?ÿe’Øõ¦€v»œ”ˆ £@Š¢Ý«ç±ü°†‹‚š“A4ÍCÂö•ÚÞ—sóñTjØè&-©S¸îÈmY?ò÷fÇq= u=÷Bõ¿yÀΫ/ôL´‘‰™…«A¨On]aàœDž i§Éu¶~z!K1LJàÊLkXî\}]FºþÁ@“`Œ…ÚRC÷ϘxI$ÆÙÑ×^ߘ?8k­>µ–­¸|{¹FÑfK5Ρ8Âk Ÿ†Í÷´¢›É¿ ÂK8BeOÌ(™$WÆRÄÂ_ß5[LÄ„&ËÁªÍ¡ `ÒyöJ…ªXa÷ö¥nl8¢ó§ÈD°Y;¬MU¤¦vW—œ¿(í6:ÆÐÀ›¨6ÈÀŽefÃ+ ,ù+¿ôVˆ¢åШXûFî©X·K€®=KÃ$DA­»É'ËÆAÏ®¸X"ïØ±:÷HLEª.ìUô±ñLìeô?<÷(D-È¡¾CÂçäè3~ö!òÝídO¤Ä|E+Šät¶Å)6°]üZ~ø™ì•’'¢¸Ÿ#VPHïVìJIþA „uðûq‡Sþn3Yq$d §oMs±Gñ«bËÄÔù7û½ÀüÂLˆ'*d’}g;¤Œ~L͘|§ p<ܳ7…-æäV?ÉšøÐà£E¬$‘7iwH×Õ"7àe¯Ûb›Pûri>)îøn·÷—ûùǹD\¬vš¬Þžéi›?x‡LÓÚ+ú7KX Höhƒ÷¯,ª%>2 ¥Î;k©38ã†×E¼}+bb)»yã±Jý@V6q¨õ€òo‚û. *Š`‚k;vEƒRÅy}´å¿‘Øpác¿žæÌ›ñ$í§¿Üw÷¦D¤éYŒ4 #γ¾ž—„Ã[¡6GW’Ôæ Â]B’g¼|'á\x™SfÅå\;Ê®+3–°%gˆŠ‘ Uñh}ŸùÚù¢ø ‘af0Åìu9}æ!8¡ªR°¯æ&žYßûúQ˜¼ß‚!„¤u§1\¡÷£bö¶²>ÍâÝÄuÎ0¹eB Ê€+±ªàÁ3jR=;ÚV.¦Ø“Wê5ˆk‰ïIÏè°½„²ú¼=PC‹ûa=·±†º<0YÁ6¦!a{ôÏœ°œ=$K'³OWÁ:ÞçŽ&Àù>zû¦šyŽEŽ£„‡*>f**i2s§u|öŒ÷äõOÚÍ.+ç÷½UQäEU¹é‡üZf±~0ùû‘N@„(J¦ÊBdE.¦k¡Ú¢ZW²Pôà…öÑ-oäÍðsY³–ôκSäí˜zÖ›BÈÈÚ…üû‚ÕD©½]¸Å ÃàU¹‘“q·Ìt ˆ Û/t[RoÐÓ‚9³w[2EfÚØ8¢<ùóÚ-ÿÂ4³bÌbqYÛ¢º\M«â•ì30ÆÝ³í;+l·ÉÁˆÇIs³1Æ@]N„ëF³Ù4î€êÛ 0âþÊô¥vÙê]ËÄg×E¬'ßpÓæ5©¡âçÖ¬ÞÁuqóTzªé’vil@+£‹D¶ífR;滺k2†œV%î±!cï“ã²Tˆ4J.ÏêBÈ&-½i7¬VèÁÆJeŠÒ õp¬s‹¹d'y«AÂxT‚ìåÐÜö.PõäÞwh‰Ãö½c YŒÒOðKó³—Ðùné\$†®=ÇŸœT3­ˆ`dyµjUðB–†ä"\ 0(w@}¹"x azwè”M³ãæ3Yá‚Mµ€\¾V¿"‚’L™™ä•ÎAUç#È®²Ëö=4‹„mHÍsB¾'ôœàmt¤­"ˆI=°gp{ ­¼ìt=qf¦¬Úk0Ë:4²‹bž3O»î†Ú(1óš=QÉRÝSÔÖPÄ_åÚCÿ’‘•¿hÝà°)7ÜÑ˺.£ q<8@ù¬¦jMfAQ>\ªž¬v±TG=ýO/z´FŠOçW¤ 9ÂuíX8IG]qЃÍ[dV¥Ì“.æíÀ¥½V5È“Ö$!w^Ä鸞YZmÀAR1°(vK?]1á(Ÿ›I ‡Øåë:ˆ–äŒ _\Ë“»(_"}>#é=§Õe]Š}D0Íz¸àáOõŠ!áŠ&éž ADíã kŒtåa%x'úȼoK@üüßâ1¿Ö0c>ƒ“É)ÇÍóJ¹k¹÷ÓyÆÁ•³“{?L¦‘!>¥ùýsHô];ïs#S¸d× îÇ¢@,2Юý? ¥M:å¯ãK0 œÙ¡¹«Êo¼OíYN ÓªÕ•ÖMâ¹P<,o¨»žàÕ¨ª8À/;ºŒ}Ì!jPºåo±¢$Jì#N¿}Ì.CYÈÍW V³Vs\˜ÞìÂ9â‘<\HÚ=³ÒÉ“, ‘‚Z*¿n߆¢'cUDé/3î@£^Û'„ܳ:‹(0X³: é»ÑpÞßî0©ž|æAb"ÿ`S<…. ›ìCà (ÌÿÉÉ+`0ývTG-ÍùzÙD¤9¶šüAv{¯ q(äÜX³¶ó-]ïZA 1Ÿü냻kÖßcö÷κ1þj"ã%£7ëeó‡þ¬~ŒbËf²TΣ¢^®g ¯Já¶ _÷¼?>W³hL|©îNÌVöIûqœ|GšE 1(-¾äl´È£•óž\¨½IòÚÁÁl´ë»ÜH~Ͱt½bVÄM0Š ¯@ÊMœ~›ápo_4 ©¤)ˆðÑ«,ïÜ€TTJu²\‚„ã6~ †ì"2ÑN“ÿ û®b‹A=°Ë;Åb 1Üá´oßÿP8ŽÇ]öìl ©¸Œ¬Œ¤G²W‡3²Ã™qHì½säœÍ‘·-£ÌÎ&ÙœÍÛvÇqŸŸ¾Á÷·ÏãóúžÿÁë3¨‘b«æg‰Ð»«´mbû¬…TýPæà•ÇÕhsªŽK”îË?åDì&"ûT v­ôίZ¦cÄÇc=aÕC[zO-{‡ÝÈÎ!¬N¶~6ÄqFOà¶b{ÙŠé¦Ú>ÎN©ú;¿Âp“…ô±€Ôª{òtÌ3¼¾±éä%ôPañ:M³‘U‘ùCJi;6wE 7 v­@›K bÅ=)~„ÜûÌ<îŸØ‹3UþÕHÒCMX'3r•ëqË=WšL¦~ŸlYTìí%ɳp®[$–¸c-ïjMZðˆòÞWêÃÙ$ŠÂ ·T:(ÔYŠåo+š Ç~ÐslÐ.$˜= ®”ê.;3ÒlËHI´4a¡ Ÿ77Ñ–úº—u·zÓ7Õy(M#x²uÆ„àÓ ë¤?k¶ç.$OÞÜÆˆ4 j<¤*ÞX·8UÍ£œ ry*ÝÇ…óè ²üš†åI~Õ–áL¶¢wÂJ*•yKˬ­IrODÏ^cű»6(àݱs~|? dŸ§T£R)$JK¹Ž‘dØ“Ñ4²2µaÏ ;Wbì¨qµ&[Þ5Ô™½ K0VbÂ1!…³¥êîË€øB]¾cÐHÀà(€å> nñ»)mКPèí¶®Í•ª<—ð¡”•èŸCú+…` ¸6 -=3Ξ•ÃÃ$9¥¸“²áΙÃ_¯4+ï‚§s¥=9 m÷wù`­ ¹.ÆfY}!›a£…úÀZ)krDzãªd⣂I j‚1žõÌ×Û¤Ùa‹ª¿·ŠP„œïè”'"åÇhΨ…“¢ÂÝC¯€5.vØ8ñ ¦«7W´¢év‡à¦ šY†lÊo“¹œÛ`^=6ú+—·oJ5È1^{Æ0C¼«k_=Jë%¾ï±À/Geëñ½>×ýÈ¥õîî®8ß͘‰À>ˆ½él]vóhO$¡ö`÷àm7ŽoØ¥ï%±ypýÑ*¬;3€MÇžéØÞ/1›J$ñáˆu…¾5=ºÇZþ׸åtdâ’0Œd¼µxË9¶Ö’ñ6ɬ°BJ\çx¨‰?âàbÓ)4î²õ‡ønBw…䟠†i]™nOºBtÌ&„sVJÍõ’V[MdÄmu·\¦¦m g-}Øñ×!÷Vò†m@…B^¾[òêä º‘V¿à«¦|6b÷§û„Ÿ½ˆ¦ü¬*,Æüe`Ê¡Zó's”4äB¹dÞ•¤ÊªvÆBMã(#|krm1ì ì'ž%¸é+?Òg'F!C‹¶÷Œ»ŠÍÄ&<±FÀ•h  ¿)ãqSáª!à ”²Ü‘%Õ54™6õú@†*©Ó=ã¯éF'Júë€-»åõa¯×˜»Eғؘ˜Å¤SŸñ%gf“Òööz2ô~'Êqd½«Ü^Ð8%Ü÷B³ã­2ltù‚;”JârNŠ;Ÿ—à¢Ê› š»(3µ¸z¡Šaãdœ¯+ÀÏ\Éß^Yäi†4©­jƒl®0¹ÌEL’», ù .“&~µ~ç¡Ôºå‡BÍ7s<‹êH\4©`ÿ¦1B¹ž"}tK>{õv‹›=héhÁÈøk{N> Pöïéù 8î„Cå2¬¨F ¹®ýp ~ú¼5)ÌV!V“ o–¬V´wB}ôÆ÷pÀI7žç]ÇÌëO3e|§HZ«JZQ0ϰ¡,²Å•ïøX¹Š€?×Жå.‘ÈzלÉ[ø…ŒVyÒóܬ$3&ÊÚVK”Ðã`jR[ I5ÈÐe^É­Çq‚~Â)}¯’/ºžEí\o3ÀGaîƒ/Œì¬ŒmWæµÔߟù1–ááþ™ä•kƒÝÐ×dvc½¢Ñnˆ0;óF‡g3N£ðû¾K7âý‘s$|ùÙA}mÀú/—*°½ÅF iõ;®Î“G(•µì8‘ý`Ho²¨6F’íì5÷½U¨;î0%tš{Ù|]XÍ€‡Hÿžø×€j²“hè´Sòã{sR4›a?ã±x!íôf«¨Îµ5– ~¯³tIîw‚ÖlÝb¾«ù¥Èf½ç4–êOÿØíf¢1¹‹ s%YÊÊV¡iê}á”ð³÷ªBÿ8Bô—ëuPk³“¡Š¥%¯ Z¿ÃɺoäåÏ[~M1>·ÆYõ'ÔT¹›2òuj[Bäþ§ª”þ0GÛöÏ€û†âݯã ÚÂW¡¡£³öU½.›7pÃæZ:®­\Ë¿ëƒv– ¥‡M +WO\‚-Ð[6Alƒ2M;ýÑ{*@3Ÿ¨÷úéCæW÷‡Ö¦3¦57e»½Éö„Š6øÛòÒ³/7¨B)nqëô‚}ˆ~Ø)YºæZà¯[z.ÿÉ76‰È{*5{„ ׸cCï7—˜úêc4džGðk]œ±Ši,á ÀDè1ÙýW攸oBœcלszÝý>ó¼„ÙNû·ÉÁt›Ý/ÉcÂ_))üˆÚÖU£_e´Åzâ%jYÙpnŽùK!ñoÒL_{—¡èdJ:UFË(g-œµöíøû_ó\q E£*ø÷@Ë2ÏS»ðê†RL¿¦mæqÕ€q‹‹7J[À¹7ï rÒ…uȵ°üÇãsáÒ†ýB¬Ó©¸7 d«ÃÌ;EÕtŸq<ø ÷eÑxVežõIÁÃÇ.[Ý-6ŠÁNí%ïÕàoœ"¥:ÌÝùʦÒtôæp;ƒYv=:Ÿó| ކ&työ Ôõ//WtçÏî¢H­#¡¯öÔ¥ª0`º­¸Õµ´ ÛÒÏšÃà˜ûzkûÖ\B|ÑÈF_~ÓfRÁĔʠ€…C켘䵑·ŽÇZêãSMÆqR‘šÒ<§~>8¼(ú1À·¯¾îéÖ—2…*‰Ç8¸vÒÇ¢·:ººª&¿å‘×ÉÒ”˜uD[,GRî,מ’tѬN—òfyCFñ%éÜrÃ/<¿ˆg1ë@2ß+ü{E›lpša;;A¾Bxoa׿Œ£9#Êšiлµq·©ëç¸d|¢Vªë£Õw É÷y¢±ÃÉS; ßÀTš~ø²î4ƯK'ÒƒÀ/K9¥ÿŸ1üø¯=œì~o<íî ÿÒXÃ2endstream endobj 909 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 33 /LastChar 125 /Widths 3959 0 R /BaseFont /CAAFBR+NimbusMonL-Regu /FontDescriptor 907 0 R >> endobj 907 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 /FontName /CAAFBR+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 /FontBBox [-12 -237 650 811] /Flags 4 /CharSet (/exclam/quotedbl/numbersign/dollar/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/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/bracketleft/backslash/bracketright/asciicircum/underscore/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/braceright) /FontFile 908 0 R >> endobj 3959 0 obj [600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 0 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 ] endobj 902 0 obj << /Length1 1625 /Length2 12414 /Length3 532 /Length 13284 /Filter /FlateDecode >> stream xÚívePœí–-î.Á¡q÷àîîA›F‚4ÁÝ\ƒ‡àîÜÝ]‚»;¿|ß™™3uîüš™_·nWuÕûìõìµ×–w×KM®ªÁ,f6Iƒí™ÙYØøÊÖvf.N¦öŠÌâ`[s °½9ààB¢¦–p™:[ƒí%MAü9@ppØùøø¨`GkK+g–º=##Ó?-]˜yü;òîédmi ypÙ‚ì@öÎïÿmG àlXXÛ‚*ªzrÊ2:e-€ Èähj Pu1³µ­ {'=Àì°ýÇ|ÏÒú¯ÔœX޹Ĝ¦'ÐúÝ ä9ü1@ŽvÖNNïÏk'€¥£©½ó{ œÁk{ ­‹ù_Þíà¿98‚ßoؽcïdª`'g' £µƒ3à=ªª¤ô?t:[™:ÿÛÉú€-Þošƒ.¥ô7öNóŽ:›ZÛ;œAîÎÅ2Ì­lM=Þc¿“98Zÿ-ÃÅÉÚÞòŸ ˜Ž KSGs[“Ó;Í;÷_Õùgž€ÿ”½©ƒƒ­ÇßÞà¿oý‡kg'­ ;Ç{L ó{lKk{$Ö¿†EÎÞ `gû‡ÝÜÅáß1WãߢûkfèßE˜šƒím=æ $Ve°ó{HݯË,ÿ{Mþ_hñÿJƒÿWÚû?kî¿öè?½ÄÿÓ÷ù_©¥]lm•MíÞàKð¾eœŠ€¿ö à¯Eó—`óÿËËÔÎÚÖã¿ðû׋: hý‹î_19gÓ÷‚ˆÙ[¾7……íFk'ikw¹ªµ3Ð `ajû^­¿íZïJm­íAï]ý» fv6¶Á4­¬6ö•Ÿëè}Qþ‹ò÷Fý­›U_BRJW•ñ¿Ú­ßT}ŸgM‡wqÿ–‹Øü?ñˆ‹ƒÝ^Ììœ|fN6ïûÚåãáòù/BþÍÃþϳ’©³£µ;Àà=o6ö¿³ÿ·ÿ?O†ÿB#e›ÿ54Φöæïsö†¿` ‹£ã{{ÿ~õß³þ÷óß¹ƒ€HKó` À·ÏÉi)ÎUxYý£’ÝìÐýA…µšy9þà¿äÐ ¾R“çÊ –ºqþ×_sG/;ò »ƒli;~€Î²‰}(é»r0WiZxwY QSŽu"½Îg×aô¹Ù´w7GÕÔ žáHÆ[8Îïéý)]süq¨îÐ|I51¸­uXU¹GÇ4ñ÷w´½Cý}—°];DŒ™1ˆÔ®0¨4þ_2‰DôµJ½"k‰‡Ì½î;_>ÜŸa.a‹W¥;‰Ô"dN’J',¤§_ÑÛŸ-!ÐsÆ>ÿÅÂU÷¢}6˜/§QYájcK>åZf_í™ÂŽ3¥<×1™îD7α' ¥j5‰‘%›E1NÈœ²)v½³¬·÷ÊþyŸØ0Kƒ¨4uÑ*áÅÉÀ¬+§@ø Q!ú],¬&~2ô–t¼Æ¦ ±û»¼Šì{cðž~ŒøŒæÎèm3W +OìÕYøÝ)ß3¶iVkÏe³01ùi ¿x¡éëô €1KbB¡³îçQ¾.Fî8%ƒqNá̇Š]¡µ€ÆéG¸)Ä5$PÙ¥¥´„ýà:}ü_A³  Lû¹¶Ù¦gõ.\VÍ.ÉJãSA¼TZÝè„Øþòef¥3T—› 2òøˆ\ŸÓ{|À}JTpøªö`².æµÕUñ¸Õ—dÉDÏHþÍ•„gÒ{³õÍž¬kQH¸+~ˆÝ¦‹Æ¨ Ðz‹0*•ë¼Wëº]¨‹ºÊã&än)1¡J°Ãϯ0²Â®ªç€Ð¶m)€³8þFó¶Ù¼Ç…';€rMºP~Ÿ[À§†¤”bs†º¨|ªCî£,c"H3#§”Æ báÚm, ÈšÙÚ'ŠÄ·„fþr€Žã«Kf‘PftÈ|ž–tai~ ÊÆ.£lYiä‡âïšÛd¿€ü•Ñy%jwõ…Š‡Ôž×‹ÚQ#â/nmÞ/Ôå‚hÑH¾>ÈŸØogÅMÌó61¹^B6œÜjY`ŽNd<*O´ºêÖ‰¿<7ø¯ü€ÚÏJÓºQƒJ4Jtò.{JS»9ë®x®ƒ³ŸPÃW"›·éO(v¿ö¦þáy{ÙÖ-äÀ#¼.ó.WåÂúÍ;¸AùíD0Z~+R†€ØÖa‹Aü¤úk OhœÖx°†…ˆ×ø¿ˆc (µ›à(a0òìþ.nŸ¡È.e²ƒØü§ ƒre¨µõ”¯Î‘;ó“ æêêš&6í±Ÿ©)³(>‚ÒÚó‡Â rÁo«Þ¨ÐvëŠ;|l˜YŽÚÑ‹ÛшZªô’³×D|Ú€&FŽhŇֻŠû­Y<þ†«3H|Éá0lï}Ë9±Ãü…¡ýÞ ÞA=¾& i&“-—Y@Hñ­’ã±€ZÅÕ +lÅÖS/d„‚„Ë’Ž¸)™â]tý#¤ö.Ç#Õ;¦ò†¿Ô9ìÃñ†M5«#|`™Æyl\žЊœã+›’Ãàñèáí\Téïüä­°P—µŸí¥? æù¡S~-€e¶AR»RÕžé«ØƒU ?ÝF§“ꨈzj[a¢]'“ûpHô"þD´TâsºÉ„’Iní¿¾‘ öx¡>´M¨AÚºœ’)i€: MÏ]h/,mIÐÞMd€ +k?Øè6§%8ZðƒPñéú¼† «p½VSc‘ÔÕÜ#K‡àÛÇòª´t&í·Þ _MöqxkF&û+ø8ñefjå‹N þ²9%Ù|->K›;ŽRÚxý‘LµœTwIÌL”árýÂ|?È约q0$m4ÄöñO mà÷ô±_|¾)ç5S‚A3}üö‚ºá5‹ cÓH-_ÜØˆ>`¥™=|ßcŠ Øc™ïjlqãÄSxÌcÑâÔþŽx¶ iU\Öì#=_ƒi]ûb ٟ̓' °ºTÍ)J`5´é± #)jØP0£¼5(ùs“CˆŒ4˜¹ ÛÞߟì3Äm²uÀ¸h‡(¨éP/#÷0ÑZ—!ŠaÆËÈ}^¤ýE¨å³zS%â‚T!@I"º9ãi½K—ð°ü?5V Ï ­ú&¸Çút—`8!?Ñ9GWv)Þ">]Žs+Z{ïù'¥Ù謅\`£#Å4ûÍEÕG±cÊY¯B§¬Þ™„û¹òjctÐ#R’|'‹{E]u¤v[Óì^¼?áûzkv¬Þüà+³×»à ‹×»áx(•¾ƒl§TÎKá•ïkëŽÙXÄÛ´«ØÄô¸ÄJ![âãJ,ÈÝ=Wr*h©¶, } hÝ…¸§~F‘M–.h†îÉddhðˆâC½®ðùþáGË3„ î È?R t_#iÊCB=3Ëýö”$öåaèªLðGÄa/HРޛ–¯onACα_á« úNâ­³wδ Ô*Ñ—ˆ®®¡“âB¸È/Dz\Ûa4µ˜ß–˜æNͨOÜ­¢èäßÀ\kêéôQ&4¼_!³Ðð‰)€èË»±¨|T 䂉db¦wþA;¿/÷ ŠŽ8MýHÃGë+eìy£ì~ëõ/ ýbËyÝ û,>”|–Ý\¿$èÌÉ¢ZOXvpëï¡ ={NèˆWÞˆ=† m´ ¼ðä‚p¿ò¤bEMïd%:]¯jó(1ÓžÐw„ŸŠ£Ý}<Ù"c€+û˜ýC0T¶Ã÷±;¼6ÕbA«‘¸¿ÏÔ"B—^”„»“9uU•ixIð…qZwÐÓUÏ«çLÛÿ„*„ø§šôiãbâ›ínÈúÃö¬ÇÂ6J8˧=÷7,vðYIf’¢Æ¢ÅÒw,ê?Q@bL\ ŸCM Á ïÝXK ¡GóÓ(z‰iÓ¤ûî#WÕª:r곪×ÒðÕ)Uî«£QWι1A²§–Lš£Ç C8qÑSžêãòšÝ¨œ°Q¬ÝÅ)ßMÃú•¦2Ø€dfß+/-¡CÑC hxå1“EUª22¥Ðû§ûò'ª”Ó±~‡Kdßà‰‡Ù™mL$Ì^5¾{hŠh¦‘½byB_ðÍ…añº~1ì†vU1Ÿvr‘öúcCͼEîK¤íЭ…¥²¾¡-8Ÿ¥>\o¡€®8¨r¸Ç—eáGÑ|kúa ã—¥`ª¶£žÀÈgŸü~ËÁ ç7°gEÍ…+ø8yR.ÙÞÏ\žÈ ê6CK¼Lf2²ò¼ÖÏ- ‹þÜ«jæ•{+Ú¨Iàé¢Nnó“ýIGw ËÏðzf4•~¿Éí¨•øÛÈv?!H5½¶š$©~=¡3{ ÓÕ¼Él*Äù¶¬–Cµ!þ§Ã×|GSÖá 4¡¢|2šL`«͸,,\£ÊM—º„S¤Ïk:é¯xÛ2$-|W¡>†—6wå»/ Öly/*º) $ŸÊ<ü îCQÖ†9jCÕ²tšdÒ.ŸQö_¦:{ò,‚›” •ÖÐÙÔÕ³‡ˆRý%pº„ðÂ1p'4iÚxLòf»A“¢µ.èÑNÖ$h½XÂyúk@fjêì”?¿Äpe<Š@øþD7öÈ|Mƒ …àÂoŠ«¸iýg©2+Ûï Ó¼·˜,ôµ)<ˆÏrœ1õ1 a”™'ê,êFÅl¤ÙªºA¢ô»,±~¹¾ErþÍQ»•EŠRåɪÝÍòuº8(ÏÔ¹jõ˜´q“mÑ÷ùÿ@r µ)oñ%ô‰DRœ`qúáLå½ÿ¼{Çi½þ¢q$ÅŒ¯üŒLØ£(öúù¢úo4F9Å5×nr¸a kL=«ðýK5øÏ‡â hB`Feà¤'qÖg±£|bùÔ*ž ›¤ç¬!¶ÚVs2Ñ><•‹šÎï‡9uÕæñQ$Ù„˜Åg—ŸÕãNnA%ÃÙ¸7z(ͪ·Ò"\Wî:~»›˜«V'd7\úÃÓï‘õ5€ŽanªAEÎêÒå”üÓ3• z­EoÔ\3bè>^T2Jâè ;øÛŒ.0J’ƒjÎý.‡—R<'ÍÒx)TØÉ ˜äBÜïèQl¬]ÕTò‡Çœ®<ö€ó:‰ê g Sð¤ægäaØ(ü[ìUëNàðz>G-pûáÇZœÅÏÆz›3uVRUk\Pùýuñ&+Øžû÷IO5K@”3í§ÀTû;) ̸Êè/H,® Í{žši↋ߴN¾ÆËïoËZ9¶}‘%Wʍ²+Á´o±:ù6‹QQ<ÜÓÕûç¥&áV4kؤuÙùãǼõLØ2eŒþ=¶Y:]Ü‘ Ð=µÈ5ªaÇf›À³zmµ Nù¨³Ÿ¥ûp7uü”tk®Æó[[Áp”ØO˜Gšeg1”vU Þ‘rmýÓùœ0`º7Z3üG„¨7=6‰ªmŽUI!cXÛ$› OþÞðrl#;2!ÀO˜Úê?y"¶ññp0W[뺷V¡šÌ,ÙlÉ—È‹¶ö’ܤ­ðƒÑé¦!Ô=“òÉVßÜè†[.òYx×kMöq_ËÕ’Ê¿ðÖG÷óm‘’æ3Cwr’ @²öB×Þ³_“”aB<%à»ãã3Ùñž#9ÌâÇYìƒÑ…rÛˆxÞ¶D-ÒއqÈ!‚Ï^yIÙUÞŒãP±‘»i(•ª<$ŸýÉü…îeC…ŽÌB‘i\‹TÄ>¸x%éÒ¡Ë*¤Í!›$còµj"˽þ¦øDÉ+˜‚­÷åÊ7˜9˜Qšqh². èüQ¯!âH®oÒÎv’Ó'Ðôå%ý÷3ÆÉ5QÔ“Åc üŒ‰çwK~¡;úе¤å}½‚ýümg‡`¼5•x-à1‡„;¡2ìQõŒ…ÕH…5ß$Z?u ÎR5ryñ×4~yßîêu.[¦ûöO/:±ûåìÅÀÛq™ „c/FÎU(hA°†–²´Srõ$•V"ÏSÒcÔÉxû©0ò¸÷< ±YŸe(n£¨êJI$ãNžD-À–ê¯uê·˜ÑΰÑk² ['£Eh©lÏ—#‚F»¡ áw-ùB¿™>û¥Z98Ü$¯ÙH-5@ïva*­S;[v*¨,T"vüáã‡î|ƒßµ“IAùØám†5Wßj„î‹É@¨sGW³0Zª†OãS'H¬ífGû _Í~)b †k)ØKwÞVëÊ0u ‡CZÜžp£‡HH¬ä°N™¥ÈòðõàÖ %Ó[ñH\½´AšOO33-íàQ î,A„¤–aW:S \¼ ¢M]n~Zøò›>¯Ô%îÞ×iûW‡ŠÒY½.ò…÷Ç9^8×J(Î…ô@ —–À´ȶÔcJY,’i(n³ÓKÜijÃG‡‹Kü­F,Ôµl­+$TqÚ|PDÔ¥º‡r*ªŠõP N]l…Al™)÷x\Ë;þ7ÈÜ3¸ AîÔ/¿o­ÿà¨*vCÿúì$vwu…%ŠD„læ8ã/\[à™‰Úà@ ÌurÆo4+^±G°æ;Œ›e˜,þÒš‡#;3â–HD²oYÙU¡eq5ôZAoÂ&¦)ñìåØ6fëº[÷áÃ+QQ„ÜŠó^‘,]Ø÷+÷5õÏÕLa‚nÖø½Ñ¯|ߘŽR…kÃ¥HÆ­cå•=ØôxÂJ@×½_i-š^Þ”.4€Ytßô5ìkE_wµÍù„ ˆEnîÑ#á }Ñ G!ø}‰TÌ6kBÔy°7ÕaìE-»ÝSãªøõþ%o!zÇ"ñžË_Ãú¦Ø7k[ÿÀ™´ëÌWƘ>_‡gêøµ¨R­îH£w8:ºRA™‹£ÕÎXùw¤'íŽNšþq¢K§ÏøƒJÕEòµª’¯†ÿ×hSáPò:ÅØKÜÔ_=&ˆ(’„Õ“m.‰T/ü)óÍŽn\[ýSÑiNˆA%š‘îÙ ¯Q[Kn†«º>¿#÷í€Å‰(€¢ÑtnîÓþÊj~³a¡-ÕW9ürþKjYŠZ]ƒöäàý¸ôkµêJØß ÚJ3Ð`'~4‡Y‚¦£éãÆv}z˜nâYÝϾÝ#³ª"o£M˜³b¨ ´ÏÓ³þU¹¬þPý}R$ûâš:ê˜ßž+TMôè–ô¦‹»Ùû/Kæ±YxUÓTƒ$õ-êVak“ô'ƱW:`̳µÂ›N£*_]º¦?—M¾ìP‚%j5„†í4¤¿, euLß>¦‚0G5~þp_jNìSÏ~TF§Ióç©C©Nã£tb[ÈËY¸G.uåw‚(¯¤ˆû¬D§ûh(Ë»*߯Š\\Rb(\^aA&B¥wƒÂìœáÇ ÚG*ØUÅ[Ž_ÆËËè9=ÇÌ=ï wÂÀ¸Ý µÃj\;pÊFÈ©GÜyÎä[íÂpqшi¸‡›”`OÝ{“§¯*[MQ­< ,ÎEÕ9›{¾¥l6ÎÈœðÚ¡ˆByÏ ¤â‡ù1WפÝþlæ93Š‚È‚Wˆ¯ªò?nÅtp±Am•mЊ±™þŠ­àú¢›RÓÔ¨Ò6´°,5:ˆ hïžÑVH6-¦¸ñ*zæIPYM¤¨ì`… e:åö ,Ï•~Ê:cCB¥¦1V/Š!~€€WrÍ5&#­žÀ\ HŽé{©Ô`Ê¥ŸÐÀw4e°—H£Í´‡¦æ#kKw~h³ÿsT†N-Áž«‚-åŠ ÷¦n7f^öu5Ñða׫ÝÀÙ´~ÕÞ Ñª¨dd®/•?‘âóÍ-ë-î>ÒîŠ5 }i€ë±#&€\KLËù¢,.ÝYÈAxÀŽp\¤›ˆÁQ´Ì¼&|Œ×e¹©Ã=b²¢2øåG¹ìåMá^ü57 {VAŸIX×;º, ÍSÜg•Ó EŽŸ¾HGy¾‹Ã¬EÕ¤‰ÄQ3Ní*ï›Xƒóö)™õÑŠ„Ûõ0KÊí(zµ.rš†6-´)z÷®©ËæNA7¬öB øZ<Óð|]áM (7M šÊS‹·îË ‚u[Ž[Jò >LËД²]®à¤³iD ˜{åü@¬}³!)×Üå¨d4órŠ•®K{¨¾û@Ý´¶Ý+¶,ÇHd`üpÁD¬û ªr "*åŠÛÃmØ1+¶¶dnÜPÝ`­ùŠ­÷"7äkNDî=# /úM:^JŽG¾Þ£;C@^Uë‰+kœELÛ1háÈõ…Í›[èPÙ£(ü!àk4*.í Ù5×Á ‘q‘I½yvMÛ§µ¢<+Þ"Ê­§ëZ7ƒ…¹µ¢NhIÚÕi. Øên_…… Q1¿®Â2† m¨š8$=œTý™~§‚ÙM×B†MyÊO¤Û4$¿T0ŸuýFî(ûhwÎUQs6Fêe“ã72ôÙµì[•ó ¶ ~jËÃç_b'8öüžhĆŒz Œ¨ñ²PŸ“zâ~Î"©ïDÈÝ|øê¥µ=$ÿk7µ´‹¸]fç- ¸t-œ¼g“{ Ò !qåGêÔàð!V6I#tï_­=œ"§pA+ßOG4”1JQ¿Pwp˜!1V6|ƒ=ºøˆñ90ãñå—%¡_øv£3z#¢oŸÝ‘xnBxâ©>7ú "[Q }g³êsb; ].qˆˆE©iõ@½¾kV<^=aJžµ™ú³ÈåNÄÞÞü[sI·{åµMKBmFä(s¹–#Ä ’§d¾xkm„¯•Úø6ic KAÇOru¹ Šgª–¸l|G©C3Å”OwšbêU!ó¥_/ùvꕺOCK€ªÉHp!ï{ßh‚/;hñÑÀi$©ˆ“˵ “ñ±€û6òÌË’#8Òü¦äqî‹؇ð€ý†ã3ø5xR¡Éd$:Ž€I¡²ÜÂ$¥‡£úÍ÷äñúØéÃ\¸6dN‰'µñ¤lâ®9Ãd§~ BUûË 0špÞ€x? l—õ>öûÑÍ,Ó]Ñr¤CÃR]ŽJ~/çyT4¤­WEù™U]ÆvÆ-ý€G›y}úWйÔWÚ¼ž¤@Ì Föb…ëÙÙZ«hÝð£hf{÷:h¹p>8'þ¸¶¬˜[&ùêÒÚźõf¿âµ³aXóq…ç$u㕉s²Ì)<-“OC]«>/CÂ]>´n›<¬$^GÖûìiy¦Ô÷{þöî¿ïì ]× ÕmTrNÆï=1y{Ÿm©m°¾4:Jg8ŸV¿º'ÙˆLtÑûwŸû=ý¡fdÞ‹¿¦®«.çIÔ µR…o©7Êëï¼hé{©}ÔÁ z©{XB4ÞŠ¿ #ÞŸh\Ó¡x40ú,Åç´•BPhy ­×8†ç“þ LEõ^›J½ÇŒÔá×׸ۻ5d+¨Ð…2¹~œ”gmë=]íZ­g!°[sÿÐåŒn¨—³\¥à»o’ñ¾qO]Îû"áªÐ h÷P{n\OߺûÚ7'ìŒs7fXÜ‹5{™ ½µí#²²³ù(Š”äpgžbTÍDSò?ÝMëÑ}Gôù5ÝïªçÐ6Õr;ÈÙ»k ’d'Œa i¨ TÕ¥Ñ/âJS®‘H8h{ÄÊEߊšg—p+TXd5/?+öw}V¸„B^mé !nØ|ÀüeóŒ;*†T{óâàª0Õ܃¿õÅ×kY4é¹é¹«÷¸î"ŒŠ#]57-úDš\UÇÆ˜ýܦyh€ÃüPšÂ‚öGLQyô£[¹ Ú 8Vtûs!‰战üMOöÉO›%‡‹ªÝ/ž6B9‹ÁQ–cZjIl)ŒFõp+)ŠÆºT!!ßtˆá{UÇÚ–„oæ'¥Cš–¿EDkþ.ÜÑŒcW4u šÔßÀ88.PŠ”fŽý*"º%ý‡×@jVqyêw&d=¼œ=ù:s,W^Çñ‹çcþRXC³}ìêUÿú¥x»ÇÀ¨ÉÒ¸vÿØ#ð“g¥I‹jÏ}òˆNZ¥ŸaÞòÞh³2ó‹±d§ õ6y“ºÿ툥GßqU ƒ™}a¬B:Ó’æÞT1•PTk,YÖäôQ‹¯ÓÞòpx£!pÈzÒÀUCã6ùÀ¤7²ø eŰ$Yð%F ]:ZÑ5ê£`»‘jffJmº ï ZÎ%& Mšw±$`R¶óœjÌÖ‡RH³Û”.dxëö8È­*øv;xO².kÂý©ìéG Éö×½ †?¥×ØÛv¤MES¦Ç©\CÌu“?iPOu Z8+iÙlÒg¸øœ‡’k$€±¤vÊŸNòçKv‘‚ ´ãÜ3BJt¿²—ÕJ xOwÞU* „|”8ì!ÐПÀØùÉn±™¸ô¹£:#8J®Ù‹v'V±¼áNßPZÅ·jwÕS߃/âØ­C&}°ö´Ö>sñåÓ|MkŒiJuÁ87 c#{¬+éåâF¤¾“ñ©„UœjxeÖ Í F[ºðg®unM—b ù’›¸He•…¡H%õu ÌN 2ïu~Ýy- `²wž_xà¼Z]AX‘Ëü®PÐþi0¡´ÀÊwïáp~¨#¤¾•úfÜk¿ð`@ G¹š"† „˜w4¯è¾Å„î;KíÞ„8Áúª±bëyå^"/u>ÇOÓÍC1†êèÖ¨éz,Ì5¢Ü9¶=ŒÑ«‡/N¯YÑlÙ,—€.šÕ'Û+ükfá 5VÂÃtÐJ»ö–_†)ÓQ}’êÚ¥;ôëàä÷C< QUýÙ2Aü*@Í=Ò8ÜÎÿ õ†ÎsâÉëEKÏÝTaáH¡ÈGUÊ•¼¶wKï¡°egI",a–$ú8ήI¤/ÛX5uÓNnðX°-'Dó|§‡üÓÛè—Íʘ·Ž®Ž³\#Éý¸‘ff@'œÔú„:…lúdµ§‹ öMÿ!—^k»½CwÝ‹ÚB ŒñȆ)é^Û‚h(=Ü›g¾%¨K•ÊQÎåÕ~%¦á%²¬OÕIY¤¾i'þp~„š™¿ûCª=†¸ºbì÷s´é®Úˆ’ðÎý&wœÍƬîvuH=’Jï­³1 üÛ÷ó³×ÃT÷Xù’ì6§XQ~ú¥²_Eäzòãå{š%“;pòr:–¶þŒFÝ«_ˆˆN÷ñÅC›v RnºVÊ´hå30Dy7ïÅéâešFå#_ß¿lï‘9¥ÚqÆÅqëcÏ…4Þ]÷­ßž›¼7VÜ…yG˜$…À\6? ‚ª/öPŠúâ&`ˆÌS‡s ç}ÏÛ]¾×Q¶°Æ;UZº¤>BÁC—Ük˜M±ù“}Ü´5,?¯¬óFÄ ã8¨îTdP ùƒ*hÎQ)+¬ž”Þ8ZEé¦IŽû7¬9Ûôk†òf¤j;¡S½¯Ké†ß|ñÔN*göY%ñ°õîÌ¡øMz%$®e$¥5WA¯ ‡ƒVOÏÆ¦/ƒé2ƒz¨ˆëhFØe@$&7"Bì‰FMXD—_NªÀš5:Ôú»î¸}&L™MF ,ÀÛMÆÃ«±D.ùfçiÍr­ XÇÈ¿F?Ü[`ì.ÑË× º"Ùï&Œ'Ž—vÎPXJÿP¿h¨HšÄM)8aˆããoMÅ!Ï$Vš±;i ¸(¯•?ª5W fûîD6‚)©èò­XÍßûi,ùÆi³©(b &Q±œ¿;©nq„^w´åøøèñõ¤nã”)*™b!Õ˜7ksq"_oˆ23Ü=k5‹œª’áëçÈ[x÷ØOùpr’ÉÔìµ°ljå^ŽýzÖbŠvu_&EbZcüezNuž4²øƒ ë«4†ò /ö¼öxÓbœ¿<[Œ´?¬&R€âŸ¬ëU:9æzÌÑ Ì¿Ý}Z9øWXUÊŠÄj|a¡Rî´½ÍðeÀ4Øc|½U »ÿð~_oÖx¡ó4{Óݾ­¨¼­¹T)c„†©otHªÛ±}Þ;Pû{Çm®c{w¼žÔÓñ\N µf\ÿ„nýŠÉ×Å´Õ"Þ7e_@¨§†=ñÉѼü暪ñF›‡–Ÿ}Â)L!ZŽwñ…úâJ™OXƒÔ­xB¼”èÿpÝçe‡š ˜°º8T&a“œ6(¼àKÒEv= œ»…sËÕ9þ)xA‚MBS XZà[u¼}‹lÃ4ΕýI¢¬¡òíx`¬[§¨>þ†—Y¿ä› ªo¢·z­HIói9l§ñ|l´÷óbÖupôk+ËxçX|»íÄþýóF¿äæÎd·Ê Œ4Düsâ´8Æ>½|¡µ øâÏY3a¤¦kÆ »„gl\ú¾ªFNŠ/c$T†J&¼Ì”>sƒ©Þ6›IÙê-+CMãš1V&ùÌ:ªÞ10”6ôše¾5z^ذ¹y¥>ÓÛâ4ñ%Į’¿Ü‘( É—1ý¬]&;¥ “p Ó–µþ]ˆT&Auc©º’~‡ERUpc|>½‘t‰ÔÙíV®fµ¿Î¸J¬æ»ÖG(qÏ·ÇøIÊz|!éó«ì‚·c®¬s¾å«¬œä©Å´æá Õu—Ù­,|—ÃáAbOî)Å~#ë\ê܃»„G´T ÆìÑô²x”*-Ÿ•唲L Ì4äsœ¤vU×l" ¶ûò¹ÑXIýäš¿HÉKpF‡Ëf;û%€ëö(\Øg&ÎëßOíèF› ¯ µ£_¨îR_hu^’`òFh0IZ¿oïà ¤A’XÓeg F"Òœ*c½ <~á?eâIq}”>Gà>ÿ£Ü¯YN'xÂåÒ8L¥4…Ñíªô!ΖkÓÙÕ„UhÛ=Ÿ±ÄH@ÔzÉ"[“’°ÐÕ[ý*¥<í:F í“f¢=j­°'§.ºÓˆˆ ŽçÜ“YF7Ÿ-j¢_ˆ[e¼$jç‹%Éîw»é{G¶ËŽ˜¾ü“<µx¿uciÂu““ÚÛ¥î8ô㠨ߕ3qÁˆÅ!Mˆ îA"Ó¬h±Ã *fé1'añÎ)–ŽØ=[“Ý— uèüevßòÛR°4KCC”ílva¬µÑc›_U,ëVLœþq¥&óAfÝøs/Ú™ —áj¡òÙÇÒ–Ç,|S-v¤Uo*Ð}е«33Žªzl¿ôðbà1ôíå;Yó(Çñƒ[cäŒA&íÎXx±$ŒÇá¤9²“ŽßCEÀUGü’íX'¬&íw‡¥=sü$É}A‚VÚÚÊÃAm>é*Ê* QÓjó>D–WßW¼qq=ó™’HànJâˆbrĸEú*O·U­½Þ#X½ u?hÄâ}ŠÁíï3 ¸wJMTTÏÒOãˆèX‚¾SËú©:ÓE}Ú9‡"«ãx³ÛoÄI/!/AÍÀ” N,™â+úÌ3(Ëp½S ^¬!9â».¤tÎÊÂ’'}×µµäµèXxüp)àW4ëSÐVó©¦ú³5 ³ÙÂ){FORËgv¼Ù½•õ{«zwÂHWñ8˜ "ÃÝDZÜ5L¡å@Шý)²)ƒE#ÜëEñ UµžWyX`n¿“A ]ä±4_=¦)ð¼§`ß&g¤P5;I8Ô‡ºj—Ž«˜“ÏÁ³x™†“&Dy6²|kÞá"? .mÅOÂu©Ì—-øFª{üqIç ‹N;(Y½\Äà»è€ç¾é%Â=Uª¯IMXžSÕ~½H‹Ï Éޚ9,=*Ï£ÏS“æ^ËÌϸ²òõŸCÿÉ—ÚSƒFF^1è7­‰ÈLÖ1W£}©¬…°é .Z¦¼?óû8 ý³dÅÇh"Šl¥“⺈ÉGÛ938ÍX¹ŸCR][}ú5innË2ãp·égÃ÷Š>+'ü1^KGE’[ïqiv#°è,¤„ø¤a qK±)°‡Íò‡Ë† ݧK¥…/(e«m†ã‚Ùm—CP­´é”#àÔ¶k¸‰zJ'.&¾tklˆaS+ Lplvöf/ï˜àý¸Ýv56 Ø$±ì9Ò„·D•â¸Ê?‘ûp uÇø§æÑ–pñ'OÈZ~fǶ¡š8§ÇWW"ÃvéRÌhÒ•å PÃ|8 |KÝgÓã•,ÿ3²T¢>3€À¸¢æ¥ÍO¬:T³­•< K½CLÝ\âD"W²ëHd®õì‚RT±bøÙ›Â”Z¢^%)êª½ß ÕÇôºËR¼‹èNîÅà>¥´r’îmãvn_á,Hx…»k?ƒ‹YÁŠ{䞺”nG§¿Jpí$™—ç]_IÄúƒ…ºw©†:J{XSmàØfw+áÙÏ‚/»A} fM{~f³ÓD‘j…Õ2ÅÅݳÞ¬Z°Zr :SÃâžQ Wû¾éÝø¹ù(¥ñ7úy30ÃwW¸qíýìèûÌ×AÒÒã¾,¬££êÏj3IóhÛølŸ¾^ï^¡õÑu®Ó¶ЦÛCm]ÒN',”FÓc*„y屯êwø¦17 ‡¨M´]qÂk…ÕZPZvsËöb†[÷™¦ánï¶Øy‡`{ ¡œ¨¹3¥¹â®¿Õ™l¦1i­ÀùGäÑa°î¹ÄjÛ¹MB¹!#·9C/×rQ~òÑê»°‡™„e=7²˜ð_§ÝË…äÚ=²ÌâÑYÀÚÂHŸ·M>‡‰ð¿ŠÅ(Ÿ |jÄ{T9ö9A¿ ©}4)A?ú´”…•Ñe!\#ÏðQDñ3 já¾7DsüÆÍÛšmçÀ,‹2Wåz ºR,—\1Û~ÁqÂïêÝë]8F`û䧪tÙ?Lq$ÁsÐ.cD<çDéç›pÅ;ÜÏ…50PÏ‘UÇ%ÂðUÞëÙí-,gåçMƒ½/‚G~ñãÀR…žá–œÓéJ„¹ß9Hf|ŠUµ.ž-K·Æz[³®ÎçÍ/‹Æ½¶Ä9µûnÌ ÅÓÚÌ0£R˜¶ +[†m÷Z]3l(ýÍSÎÓ‹lÀ.ü‚OXž½˜Á+òµÌÕ-¬OŠ²Ô½¬šúP2Ð mÖlY²–Å.¯¦¢³“˜–8ÓÈFåÙÍÊò‡w©Uyœ(‚»ñ³{´}¸:+6Êwk8Ê+Ðp ”œä…û¹“6Ä <¾)·fÿj"F¯¶+ù´‘DPé°+æ,à×LÀ=³1ùG8ßã½d[ýdÝlƒ§‡L ¶ü{oXIŽ%fñM´ð”&"ˆc¿¢c×±Xãîr ­ªÔEhôìËœ»ÔŒ©x@þÙ%!Vtæfχ¨…S ‚ßPo‚—Klñpí$lfté¡“Wºë³Ãåg¨@>êjÔ{{T¥ö^Ù9aPsI&í:Êžáøìé “Ö‡2½"vÅJ|eGPT!¼åôBÃqkëôzšhùIáœÛQóÉK?ž:ŽþÙÿÁÂÆZj"ðwÇìú qј˜X…ˆù.xÆ@ZÄ["9ßÔñU’žîiÚÙ|Ž;:tžwËúçViFޝ½àX9a®St­üŬm±²®í<ãÈãC´êg +<ðæÌdDçÙˆüáΕ˜^ã‘ý•œÆY“„ŠÈãàM$JnÍõ.Qi,ÊaqIì`ª¹ÞžÂ¯BaŒ$>xÆÃ‘v9úÃ'¼t©ÀT‡™Ûì éŽžˆÎƒyü~Žäóbü™Wq(¨¶n¥Qd{; "eLoà•b§¶ëã¾Ùh€ÃåÒPäNîG»½’OægÀv1 2ê–¯t8yÀu D‰ëWt÷¯s½×£(¿%XæÏ'‰K|‚ÛWjIgª¯HÞ4HÁÜg?~`]|s!8º™cÃËçÏ@EËâ™üÌö?ü!ý‚ÿ'€¶ SGg°©£ ÒÿÔÈ6endstream endobj 903 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 2 /LastChar 122 /Widths 3960 0 R /BaseFont /ZCDEXP+NimbusSanL-BoldCond /FontDescriptor 901 0 R >> endobj 901 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 /FontName /ZCDEXP+NimbusSanL-BoldCond /ItalicAngle 0 /StemV 114 /XHeight 532 /FontBBox [-139 -307 822 975] /Flags 4 /CharSet (/fi/fl/ampersand/quoteright/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) /FontFile 902 0 R >> endobj 3960 0 obj [501 501 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 592 228 273 273 0 0 228 273 228 0 456 456 456 456 456 456 456 456 456 456 273 0 0 0 0 0 0 592 592 592 592 547 501 638 592 228 0 592 501 683 592 638 547 0 592 547 501 592 547 774 547 0 0 0 0 0 0 0 0 456 501 456 501 456 273 501 501 228 0 456 228 729 501 501 501 0 319 456 273 501 456 638 456 456 410 ] endobj 843 0 obj << /Length1 771 /Length2 1151 /Length3 532 /Length 1712 /Filter /FlateDecode >> stream xÚíRkTSW‘ª¡¬òRIÕzX%2yj   b,’ð’‡ÄÜrKr/½Ü@Ò">¨¤*Ë"6ºä)*J…UE >Pj‰U˜¾H«,ÇAªVEÀ×\°®®ÒŸ3¿fÍ9ÎþöwöþÎw6Í#RÆAØF8C ‡É‚`©TÂaòÌfSh´`V††(X8X­Óî Àæ y+„<>…‚±tޤª àLŸ$ñH ãˆR©‚PÃZ²†R¡2L‰À„ D ˆš¼‘¢à Ï„!&…â$ÀF8A)¬IMT…þ[Ò¥¿KeÂx) xMɤR$„¡€`…µ#»Á¤–ÿ†¬éÅCuÍZ…v²ü”SÉ+´ˆÆð;Ó¦ëR ‚qt:5~+N CˆN;=+!D)BS50`pV2Ù+ßâHF(¢‡¡H„PªJ¡É€§p…¦+!ý›ÒÁ’DËÃ$QÞ¿íT2R „Üö쩘óGLš„#zÀf²Ù’Hîw§¤iÍĨƒ4py>@ã …"2â# (ë¬'³˜(FWéLPa8eò_}Ø€¥32&Ñ·°R'gtoûëÓ‚‚0½‘±‚ \ÙŠ½Òðyìœ?•:‡Qbj|HƒÞÅ*„ô†õ°’b½‰)ý¶~ºïôöš\qUç1{zÆBó‘­íç·2û1‡{ý\®ã?Éá~sÞæü)rÜ©d$â¤âõQO‹²-Fk[³ÅÑ^±_6ë¡r81yÆå²¶Ö´wܳ.Loô~ø³ç³»™çíëÖÜçð+©#…3knÝ|õ$7mSGŸÕákÈs¨„’TvfÍ^8æŸw‹®N<ê0kõåù‰ûŸ¹¾¶R[ït§Ýv4 LeR»fÿ—sØt½ª¿ƒÂ9¶ØW*X-Î^ès=¦Ü l>ô÷0Ç47EH=ÐE x˜ßï–ä甄ÇJ¢G«pQÖ,Ðø‡USmáúÖõ-ÚôbÁ`ýº|—´úN®1'½q/-*eüí·%;g>Mzñ¢÷ùµå¡Òèaã~bF¬·ïÀL/ïaz;›jí ‹G¼BýÕ=BÞë°ÊÔ¦ý{`vó˜Ä nä¹Ý<ú…§•K¹/×î+ÿ›t½÷·M–=‰b½ þúqå£]j1à&‡'ô¦œ•ßò¾\Ûp¡*ĵ¶`f’¥)4´jIÓl¬g h¾G€ëB¿¹N¢ÄA9Pï²^ìÖ=PŸËváMŒ/:.ô9ØýÒoè§’hKãÈŸE¹öC[¤íb>/7úþjw>¢6ÅÐé[{Òòã¼eû y6cݾ´ã55Ûµ†Ç‚9{ êqìʳÏ=5ý *Ë@WĦgËém´ WjNE‘/*S˜x|àÙ–VGOŒ3¹g?ÙÀóKL}Ýp$êPµq÷¦‡o­\´cEèÐß3  ¦‹?/É}³u´'Lçà,njO°¢÷Ž™ïü؇¶œ;ä¬óôûfi@ µîÂ?ÆV­cpUr#[ï]hÛ?Aƒš+µµn4Èmðr"ÕËên‘º~/yêŽZšÓMÛC ÚáW'«JbX¹ƒ=«NùxkÆ*…¨l©ä´f¹ÍŒ;3Çž”¸>Ã7¼Îo(ßÞ®ˆ\?Z1á·kB—çze¤°ã—3+¤*é›ÙÞ”ùª,ƒ¾s^VSWé§r}0Ãkë™OŒ_r¿:mjÜl3_+‰„¾³U·o¿îz5<ÆQËÙ+ÐsŸëÈ·{?§p5•újZZ7¦ß_^:Øwt祬è ,w½bÜKÅ%¯mãcê†ÚmËs….ÊÆzÓž‹•ÅŽÇh‚ñRy¾²ívò–ÕÃÒº†»vp©³‹»æ4ÏZ¸sóÏn—eÊ*¾^pžŸŸs.”×8ç{ÏÅEjJÎ99T$®>˜zOÜžý<ð‡ ÷ìCF—<‰=k.,x1¨î=ã[^,¾Ò)ºÕº‡VÛ¥iª.-Ø#[ã²á½0§ÃíW„לüw··ó>k§.#^¾N8µÜí[CJ'¤Ûô(¬eM„iÁB×ö6º´2óòD¥A]7v¨“:®—åý‚F˨mUûçp¢óXm³ðÅ»Y÷?ºÿùw)Õü± â–¤k=_Ž®ÛÉiMbÑ“Š bU7ožuãÓ¬ÈÃùUÔÚ~ö¸(ÿ/ð?Q@©8ixåßÑŒ¤endstream endobj 844 0 obj << /Type /Font /Subtype /Type1 /Encoding 3961 0 R /FirstChar 60 /LastChar 62 /Widths 3962 0 R /BaseFont /IUTGIR+CMMI10 /FontDescriptor 842 0 R >> endobj 842 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /IUTGIR+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/less/greater) /FontFile 843 0 R >> endobj 3962 0 obj [778 0 778 ] endobj 3961 0 obj << /Type /Encoding /Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] >> endobj 710 0 obj << /Length1 1626 /Length2 16552 /Length3 532 /Length 17461 /Filter /FlateDecode >> stream xÚ¬·ctem·&Ûvvl§bÛIÅ©;¶ÍJŶm»bÛ¶íTìt=ïÛ§Oóõ÷§ûüØc¬{òšóš÷\{Q(©0›Ø%ìlX™y 6F.NÊv6 vÜr ò@ À_ù78 QG ¡³…­˜¡3 4ˆ¬¬nnn8 €¨½‡£…™¹3€ZMYƒ†ŽŽþ?%ÿ˜Œ<þCó×ÓÉÂÌ@ù÷Áhmgo´uþâÿÚQ8›¦Ö@€¨¢’–´‚$€ZRA ´:Z”\Œ¬-ŒrÆ@[' ÀÔÎ`ýïÀØÎÖÄâŸÒœÿÆvœìÆÝ€îÆ@ûTô{ £…“Óßg€…ÀÌÑÐÖùoœí¶ÆÖ.&ÿø+7µû {G»¿6uƒ)Ù99;;ZØ;þfU“ø7NgsCçr;YüUìLÿZšØ»üSÒ¿tÃüÕ:ZØ:œîÎÿä2L,œì­ =þæþÌÞÑâ_0\œ,lÍþ=Àhfèhb trúæoìºóŸuþ·ê íí­=þåm÷/«ÿ…ÁÂÙ hmÊÇÂú7§±óßÜf¶pLÿÌŠ´­©€…ùßrûÿйÿÕ êf†æ/C;[k€ ÐŽIÁÎùoJõÿËŒÿ}$ÿ7PüßBð ½ÿoäþWŽþ·KüÿzŸÿkh kkC›¿ðïø»d m÷ @ðÏ¢q±ùÿ¸ÚXX{üÿ9ýWk à¿ÑŠØY›üW´³áß–Ûšý¥…™‘ùßB ' w ‰’…³±9ÀÔÐúo¿þ%W³5:Z[Øÿòú¯–X˜™ÿ‹NÕÜÂØÊö¾ý[´5ù¯ðÿRõ/ðLjÒ*ŠÒtÿ‡åú/C¥¿Cà¬êaÿÛÿ,EÞÎäþ #"bçðb`áà0°±³ü½{qs0ûüRþ+Ëžå -ÜÚëffùWõÿó÷Ÿ'ÝÿFÜÖØÎ䟱Qq6´5ù;iÿKðÚØÅÑñ/Áÿºü«þó¿ftí.Ùóþ´LÍHs®ÅΚÓîëa ¶/iP-Ì÷¯¶ëöK Ýá®0x¯ flœâùlõX<³ÿ8¡=éÁ²¦êN^åøÑôæ£nR¶sÒ2é• ¦kDz]/ÈmCüà`V?Üø®¬WüE8ÕÎæsýDãOæšïAþhäkœRƒÙÒ‚V[pvN™pòôH50:<4Øý²÷Ÿ.;–‚ב2Âß!_ð‡Z…W4vkº¾)æ™oË™«ð<&Øn{²áqí‰Kõ)z m̯_Ãåb‡cfnpüh§þ^•)õ2ÑoHTf÷DÃh|¢vQÓéLÒ–qŽ‚†!ÐÆÌVâfP*eîÈ÷°-ìÓ%rh“˜ðàì"Iq‘ + oFp‰iB²AèÊÝL Ý®± ³X‹W”r ¶û»ä(8Ib‡?.ÐäÓå}|¾M¤H›ÂTm’9i.OGÈhÏbFn3˜X¬vÚÚ¤]ÜÉðQé[Ä"!¢ÕdüQÑÔ9M ¿âÿ2† LŽnZí³˜…ÊT˜±c¢²n 'B“À0µÛ¼7||eD%…ËjRÐp»#d÷$Õ)wo°7ve&$üܧƟ°Â)n&8ðj®Ä¨ƒü*¹´=@üI]ósg¾ï«S‹ªà`„âOÞz¾atüÄ!º¥Öàpd!R>m#Ò'Ò ¢™Ù¤ç€YBè5dØ«õEí(Ä`µ?µ©ÃÔÆ ®ó¢¶([Lu‰*kk Yã&3ZŒÆ“ŠU`oD/.RH#‰ö›µëª5Ä þ®¯·¶?)Å›{G%zœf~3n×VO;rËñu±Ã5Â%I_·Õ #YA(Žý²ˆC=§»Qì±ÿz(Á^à¹[TâΡóƒ>œÊæÇ°K%:ý4Õ–œ$É£—ñ"#W6æá67–óDóèå>ôr67ˆy òN 8§Z°ØÉ˜VWÝ%HïÍ^{þM|Á擃àmokk“€wÍ䇮ú¢~³ ¼¡X&¾^…j)5è»6ºßkNãþºŒ]^=À£‰jz»¤¾ú\y®ÁÐu /MÏK1EÞ«Ÿ[ô7Ÿóæïù}÷‡öúŸˆRº*X&^†Û7rúq³†µS•­«>_'!¹úœÒ ÂÕ‹W= î½öÄ®fBù‹#>³ h}˜@-‹?ïÛ0ž”…v/Ó{ÊNJ,—ð‚üÇ¥¯â+™{5ÝZÇ;DÍ%o…O{ãÐTj)Ôb1ͧtàâ‡óU¾ °$´Êó<à7š†²n3¨T£ Ï:,]Ú-¤â$!N6(<¾3ÍÕI¹¤†I?§ÆD ¢—¨Õ%jjg[n" VGÅ,•y Ê7ŽõA:ªªÔ8D#òÔ#2ciâë7“Ëu„(º¥ó1lÉüònÐòEý” ä%·žCt3¼Œ`›³©àýžf½p&a®ÜYQ¾i•m‹ïÔ‘Øb,ÍYq‰ñçÍ5§¼]ž(µâwÅáïŽm<žÿÑ$Y+o‡™}NÕûñHÛÒáÓ:Í:ï×:^aN÷§¿:dŠ"ΔEŸH~Œ¨NzC~]¾¦Îznú2|Ùäc8?t.'vÕV¡¾˜àS>è9Œ „Ïl°ÞÞy؇ÿR=äX¨RÌËá¶jo…!ã)%´î§ÚGñàd9Äu„è=³+¤[VÙlZØØÄ-ÔO( 3yÉ0ü¹X)–„-_m»ß7‹]¡îqŽþŽ“'· ÎÂðblGRIÁ‡š@´è0ê˨ˆìêÌO^STß~üÓð oŠ9Æ ìèæ§ðMo©J¨na§ Æ ¦î¦FÂŽ”á1ÝÈTNÞ¦—ÉÔ=ìyìBcW†õu”f¢Ñ3Ù;Àj–‡˜v™—|t×*­ ýY%[ ŒÀ.B邲j«3„»zíUãþÛÜ+½Çš0gÓ´ONE¤à`Ì«PP']†h.wš…‚ÓÓ¾6ËéUÔ6kÌ¿WÇŒŽÛIjˆ«;¨ªõޣȬQOÌÊ{UpÿGCàG_ç”ÓÐnJ¿€VÒDߢcÄ@»NiY$àä–½°ÛòËx[„8~ÐUË룭ž>‚³ž§ö» ðÚdYëÚaä°AÛ“ÀknC±ÉäÀŽª"@íÑnRQˆè¯3ä‘ÌuÀ•DCī߹ö.Ù—š¸¾Ks,0yâñœf›Í9Ìç߸ó“/9DØkrOø¦O%Âÿ ÷3m¥pDǬÙ.eù!w1€ETè´MF—1^èÐϧ¢Òø×Ð¥’ú;>Nç×Þ/Í÷{¸”hªÕvVvãÖÒÂþÎ}ÃèÅH]ÓüO-6oê@èŠjþ•»Ê™Ú±0¤£Õþ7dãåä™ "Üa.þäÒ¿±cÑõ¤4ó»FÙß t5ac‚u•¯\º™•ê†ÆïS}˜žï1+-‚6CÎÆ-»¶’wŠT.ºçe1xØuåqåSxd`±Æ¼dZ*{¤½~+LßÞµï\ÕºR‡m}8K®_ØBR‘aIÒ)*~¤~€Åè/r5ÝZŽ¿ˆÙ6CÕœð#çÊ"§÷Ç] "€ nÒ8,J}Hߪφ>á¨Ñ TÜl\ÃPŸâü¨©§æÒ‘àöæGÄ}׎VpQoA ³-öeJvZ·ÉÞ>')^Ïø «2x‚WÎŽo yõ‹‘šbT©Eù§ÃßP^dˆŽ¤_rJKåì!/í»gý ÃEÎáäQ¸3ëÂmjgª\-)ZK¡{£ª!Éj•ÀºjýÌJqQ=I•Nkvr­–ŽèL£í½•õ2Ž/K÷Û Œ™¿ô›EêïíÛâUéqÄ ½ÀkûÒMå&#›¹)²i)¯×ø0k€˜9xNoD AeÛ°T-)âýÒñÕÚ‰(9ú­Éçô² âH°™êÅDK ôÅÄS²k†î 6WˆÔ—ës¶ƒ<¦oêNohWÎ0‘Á´Ž µŠ–~ù¥êݵ¡ç&ãwÉoª‡ƒöÇ“‚Ä'PÏ´U5BP’²†”šú¿N?îid îmªšSùÄÏË“¦)Z%J‚P€‡ýÖ¤µVJ¹PVë¢;òÑì켡-lKÃ‰ÞÆù7GÈW68~?ѯ?”@P/´ê{xý©#M´Éfãb6÷xO!ªIˆícÁ'$v̼^6Óΰœ'KÎó ž*Y€¹}ô“:¬]0Éf»­Š`ï­9“‰ŽÌÏôßôH%ÇÙ·®lŠV`Þ — {éÞå!¸þ3͵sDvõŒ‚ÜÍØ¸¤1'*µëêfÊ£±îówfQÝ]ŸÒi+•)øñôèáª8å§ozXÊý«f£ €ˆ%Œ…èñœìƒ!fp?š6ºMqZ}ä«Ò°–`kò¨IcPìÊY–`¶¸ÙÚ=¼©!Ä´êiöÝká5릮û#å“ÎÈž'ÐîBòÙlà=Ù†,~ùÜÑ=WCÉGög¸Ÿîüó0ÛŠ[æ¸ ·—o\½²æGÐ¥áF¼ç3CJ…RßIVûˆ+æ}×RƯ{uc¡úæLó| s+¥ïF‰9]£ I[Öô*} “‘ůÕàÙÍ£˜EØõ „×ÝÎÁq)A„„¶£¾ê÷¶ÑšåNÊûÈüúù£dŽõÊÚaï‹T@§µ^ŽWÏÇ|þ\³°»CoW·ÌúR ß–0k·Øòk.8­õÚ†)5Ò<~àÁ}XCÝxpxØü@ÎYo 1,: è°©ípØ1žRú¿òˆ‹Á–B Ë=4 0H˜%dŽSU³Z?WéË—8óÀÖ\oø;K5F’€ºmæä†ÎŸ½ùɱHlå]ó8Áa=;­ò˜nªê‰äáXxd.1Þ 3Å}ªÊ_‡Ó´¥9Ö —[ñÐÂ2CMë¸fÀqfxc@Íì¥e•hm:C±åG#»]¥ ,3 œ ÄÚV¹„ ”¢ÑH0Ü-,·¯PõoùÒ@ÄÈõPWS·²Qß ^Èaššæ¬ÊËÞ%:²Y¥pèþ­MMU¨w(®Ê¸ÃP^ Ê«™'Ù ÕG¯¤ð㉌²ÿQiºj@&>/‘â¼2­ŠcÉòØÐ–›©´¿¨±¦ÓÝÚÛývpnÒYˆÔ…þݯ£ßÇȉPDó^©Ë‚ÕQàu6ñ^º¹ïë)Q¢&̶£-óío¾Êã—@þ¬Ò bž¸‚;-¦™¨i8TA"Uû:äraË~sá ןöh ²x—ŠðÉ*o9Õ[‹I“}²×ëXÅë¨MW8+ wõ%M™rèæY_?SêD›íØœY (/¦¼Ð&VyZønD;Ø‘ï>5qÊäÚ)uÌÑ»ƒ¹¯:Mèª%Ñ[^d4AÍ/tñ¯]0;œ‹^J#¢r®Û”˜ç¼²÷â­äÜÒ7k±sùj^æ•iI ¡Ô‚Ká¡„TÓê“…CR}N; T%²“›—â]—Ò˜•™Ùö(UB°etðIÓ×øû}uÔ'‰üôóZn:_'!ýÙNåÑäd¥=g¿I6^PÖìÇlÑ@„÷ÛWí6ž s½%3Œz!Ⱥw[Î[d.¬îaþÕ•3S<¥å3J>tTJÁ¹³õ)•íÉÆDâ 9Ify†Ý¹¸”¡F¯óyŠHM¦°‰µ‰„Ê%G—†ÚÓÂÆÓ[áìK‡ÿ¢ùË‹c£cÏ Må•ÁÒYrð†÷ó‹í}¬` ©’Ÿïa·ï”™Ïv©ñ¼~‰`Ȇ¼– ÓˆÐ0Ël„›Û˜±Ö¼nƤy]Б4 qïp ™A%aç…hËÞˆ’Õw6óÌa¿òãgÛÈwب·¸–§[ŒŒ±µ" )G«½bÍ…×ÎÅÊžìÈqÆõJ-j»aöH^¾Ÿ¥ DzÂi]‰»Œíyp*ï¿@ÜÉ“¿qž¸ë~ÞR¬ÿöÉ<”PõΦÄ‚ÿà¸×õ¨{•¼^ë&`è—ª„s¼æ‰Êhq;K 2·¬ûKé:§D·îXŠOMöˆ/ÐÜþ®ÍrjÇV2¹ø„ <Ùí8úYŸNd¶€±±= ÈmeÅEEM3ᶦ¾Ò/ž~ ž˜½spáúÉd§%³…”¥õÅ9ptL}…ÏõaXÒÈÏd"ýÎfí¦¯W‡Ü6;zÞÍ®Ñöh‚A¢ Tk ³W»é½ËGzO-`1£¦öH!¹àL´–ÈvÇìƒÀÌ•FÈÁs ´{¥ä¦¿/:f¸ÝýŠ˜+¸SB¢þ Ä̽ÄÒŸ±Y¹’:ƒ!σŸÆ¥¸YáÀ2&^$QŽ?5PðÉÃpÑ-­jE¸¬Ï|ƒÂXbgWž–Úã[£+É …¥\H»¡Æþf" rZWcLâŽ{n)€ÿd;„¼w.zãpC§¢7Žf½Lš89f+ÀØŒE~Uô>À»Ÿr‚ªÿGö$w;`ÿjáP£)}¤”8ŸŸ®ù«ÀV²RA§rßÛ=U½,Ó—™Žq°Éåzt Ä⪵ûÐÁmÍ5Y ÀÏ%’ß'œ\LüÀüù|¢Q©K:iz~…íîR†8°“•+³[VnxÆ—ùrùÄ‚Ñ@LmfõHèI½[âX7Û°•»ÿ‘–Ô^¦öDúÑuñEÌËqú½Lé1%|ÅáìùoJu ,Ø9*¸xcŠ@Mµ|J:µe…EßB¶SâºÐïÞÉײ×Jc¨ê­«ô¬6c]::z ›óËwïŠx6ù±÷F¶¨s~ç)1*-dô8öœš“þ*#«!“8°XHgAõ‘9{å0†/yh·f% >‚«t>zÅÃ9g)Æ“p˜ïç ­|Z221V½PGlˆAQV1[„ìJÓ4½Žà}È rÑŒkK±› G¯7Dë«ÿæ,{çÝ÷ü»¥‰N?oòzËAÀU·)WÆ©F&¨¿²úú%D. Ëó’‚©šq»´’š†]Ѧc¼’¯h¸-+g®ÐáZBøADTºÊ§È|ö¢l£:®Œkèe:r&àíæèhÈÌìê‡F¥wYOÛ ¯YiÎW=µTA÷qte½fP%~8©ò>ˆ‰»$Å@VqÞ {£}Õ E**‘!Üå.CyqÄ…•ÀóÑ»nBz2œn|&Íሄ…—sš@Î5ŸžÓÿ“Eñ~®@ÃAËJù½Á³£?I#à£5닆=<ªûx–¨(âåÛy“œÎhÍÎéåRDã¼…‰Çvé®zºº;=)OöàídmÀT¿|ÆSÃ:)ð>ÆQˆì†¦$ÑðT_0΋à’(•«m´u7OêÜ&ÆÇÔ‘Ni Ó¾ªHVy";°öëǡ̈́¾°¸òž»ë­²ÇÙ2BÎ&…‰íË‹[äZ­’ײ—3®1¯ŽÖ&i‚-yøþÎ𹸸_êo‹ýŸš ò—ÍpKaÚ /¨”¶×ãÔo»ˆÜ¬?Mïi±Î$#± K`×Ó;`–ðlSYsteYz0”¨íz!×±ˆõMoœÊ4RÖÎÒ(n;ÇaÁ,âÝS™ì¢G ôä‚€_oÝA ä-æWÏP@˜Üb¾7î˜å_Ç¿2÷ªU Fâàn~×®^^¤ ÞŸƒßï* 镲ÉõÝZßFGaâ ½Tql¨g|›¼NåA6÷´Šº3Ú4Zñ#í]z ­P‚^2S²è¸o0!Ú«aôŠ8ðýÔyϑ眜£ƒäBN­ÐJrÌ(Žm||æÂ]§ ¼XºçáÞV”yoS*ÝJH+ÿyÔ*³À4M¼õ9ÄZ Ä¡%í4¥Uû¬o×% äX¦ödÑÆÔñ³€†‡à¤ŠŸÚû’“{”Ö J“­¸‡èƒø;þÉŸ}< E%«k;>ScöüÕzÐ{2n¬¹ˆþj…åž iÔ¤SË—„‘=s!u'+8Ç(¼ÊLš˜Ü§ÙHTË«@Ä^:MÜÇ‹mY¶ÀØV¹jÜfyæè¶ÀëëQ'X°&ù”LÿY¼™¬ ô&ݾ ÇJöÛÞ*ûºC*ƒ^åú…††=ÑGfšôB£ {߀þ3&s}TŒ÷›6ÅþL# j³¡¡¬%ýÀ ™íûÌ4Ä#,÷ædè…Ô0ZLÃ9qÌï·ÞÈjù±°! MeQÞ𷑃62Ã:„+æ”Å:²AWsÌõ)1ÓCaŰm½à Ê^KvÒâðš‡ñC±ž'!&p·€ÈÈ‚¾ò›jªeUR¬ÌnɶAÃXš»I—ÎÚt°$µô·ÑŠõ¡ÑUwC·«Ôn‡7ò´uc›6±UÚÞc#éÇÝ}ʇHÒõö —ÿXõãgaGЛ¹Éw¦¡,’áS”ªSÈä¹Ý˜ÇðÅßíG·›žTbÞpÏêÀ–D™ÃÉØv\L a{Q§’ê|švs‹gî»ú‡%&YÍq/oÒôDžç?ÖvÜ•WX/S߬+%x—K›}/ÌÈTÛO]DŽHw¸f4Ùk* ç2å‘I¯kùKæ52É ªøZÄ\i>F“ôy¤Ù½Ã¦3I­:Òtd) Z”×Ó àA’tð*Xr1ǼDYR.%*]ýÝ)”úÞ M¬É=ð™öFNf”Oü§Ägî0ÒiI¹v[n­ð“—Ÿq ¶* JÆžV.?áÑŽVøcí61« ±€1"åå„ï£_–цà ã¬Â¸L«½Ì±[`Úqö«¾u™} ÙÙéfIäÎq<ý¿sµ<—­,}¦ŸwQ„%EiaQ$¿Í$ã˜ßkÆÀ¹©}S‰ðžáÇ ž!Α7UÖÊ:öq­/°Ðòǰ 0a8r” ™`›ô ×¼œdgçò žúh0‘µ$Oø³*Úx?G§Pø<º¦Z9}ù4B,bbØmTÿꦬܦ™õzÔx˜‡œEª`,ˆõ ‹×öü5 `J¡sº)i6›šúµµæ~)†Y®¼‘CMÕÖ»ÝYcéŸ>t­ò9ºJüSmä5‡y…mê‘´ …ÇÍg3cÌoX{aCÊ@º0x b¦‚ÁëÆ*y*wë‹÷jܱ‚:Å®Íàˆ tǃ€¿dšR‡<•!eY~ªHãR–O«¾Ôã3x/udÎ]CZ…¨*¢ŒÉa?µ0ZÃp®·ú×<³}©3Ž‚}oóqM4j›djï&cË‹|/ ¡_Î2àûºõ[¡8 ©É<3DmëŒt‡­£ÄÜ…<žXž»wÓ&lš1˜"°³îÜÂáö|A%"GRòèO€zî­Ð·Û¥VE´ƒ3žŒujíË ²L´}õP_ ÆÈBcvˆØ1Söîâ‡QµÜ*m®)ˆƒA5?‹!‹Á ¡oI:V ƒrJsÆ] ?Ý©¯C©oÓ2ß?rð¿‘M÷0,"ªõhèÕ(tåvç©2ÇÚ½ñÕ×X[øDçÿqu,ƒŒ´a!(Í85à¦1.;}/Æ–µ‰RÐØæ¶"·W¦ oõ ±« 8d³Ó·¶˜%…2·]ÑÔ?r#;¾]:ŠT¯Ö§…û®þSå* |PãÖT{q‚³Õãàù>‡>ãÕø:U»¶8ºW¾Sˆƒ©<¹ 2‹†þÍÌyñòŽtTƒnC~²}‹p-fã*asò¡óúÜÓÚ†6w¸‡ù"ÍÀ÷ß´µ"D^©1P úÌGîõçÔ2"dµGMv¥^§í™›lOŽºm  ÅÔ e{ÊMq´xB!Á §&د{Ú æ[Fñr¸9ö‘¢JêfàÛìI–Yr³:÷–Ùøxt Ó±N˜l¿D<'Ä­¦MCÏôÙNcZ\ÏÏ®,°Ù†zJ?œ¤…3=Þ:ûcŸ: ýx>‘¥çá–O+¾I;*q•%1Šž;í„û F ¡ƒ‹y'‚Sì €#O–úÂ`ü™#¾R"\ºûK3Jxâ÷t^ vÝ &ØPÙpÅ<¥!ÐŽh@²7Ýòdöºãc&)蟃~¨NÀÿµm K|&·ƒe¼ßÕ“¤€‡æèÇ®>¶« ­&Ù§K°¯G.ª¯–¿d}úqG&ŠÉnî ‘.]Ö£kWÑR:$¶õÃVk0þø>²¥Õa¿î²QoUM,,oÎ!¶»ßqÍZÂ0sŸ„.Ã*ÞÍË^¢ý|÷L2éÝ6‹£”iŽ©ÈÿÎ=¼2#úíO :sšóñÕpPaÄIKÓËÊåP‡0Hû±}0c¸k!—×5ɶ£žÌ¸Þ"ñ0Øo.~¤þ×Y‡ú³#q«SÞÀo}7Ë<|lÍ’·ÕÕ ÈUÈÜ¡‚@Žþ# ö?UšU&ááwUp‘ýŽNùöðµ5¸—qÞÒÃ̘Áf÷‹Úê½9iFÓó+ýt wáø]~]¹KÇœµYBš…V#T–5OuC寠Ìx1²0# °\ :kðô\ oìf¯­õd£r‹}.øø§¼F•ÒÆìüˆ™Éâ|w5dдÃM¯x#žKÄcoð/Ìf5îX…BLnlÓE éŽ^¶»IJ^Š)öNü ´ÂÊýý8ºAÑê2Yy?Ofm;–«˜•Ž"˜´CÙ ‰ÇÈF¹F °OËÜbæÁ÷ƒº5S€Ö;Ñí=?Yô‚KšAÒ3¡Öª]ËÕ;÷>ØΕhç~û,ù„Å„¯¸ˆ½ïqÄ»àŸkªƒ¤´–ª¨÷eøN›³=u‘Xmû»sV#áÛð§Õ½É¤±?yy’ ˆ½_ã"ç¨g°Ž ‡+MÑeì?²(á~nF¤³’.Ü·£øÊ#í«7ðTÆÙbv*(¶÷ihiIE¹ý-wÿ´$œ k]ú>`?á‡ðV«n:N |šÚ¾Ñd¡ßMl¡äd5Ú[ËS“ŽJ}Å—ÆŸK?2á–¶{‡% v’J¢O>Üy(2âB±vžÑ™Ø´?ñ—tyà‹‰øTà\Oq¥Ûx·£DâìßøRŽcÜGT¦êÞ·žS£eE ÄM—ŨF1nÌ$3xdüzv¹Üì‚´oö‡ßn Ï›¯ù…Dl« ‘A&,7g% àP¿SÛzå5º1'žáªê«£âi©‘ˆŽ³C0†IÄö•*Ùªë×ÀÀåÊi»p|¯òBÔ‚Â]ÔÞÂ,g¢«‹kO¬Ð…Ë™„T-²ðë /˜[[Sê[H–ÅÀÁæ|àøÓØÌé‹ Þý‚2€JÑ^VƒÚ¤Ñ#‡àê‚k~…tùÞht4ÜC:Vë#¤ (f8÷=•© þó˜{ø´ˆŒ®s²9 e¥"Déøeð&E×Zh[·H÷(Œô=ëÐ^êaÙ;"ù1àù7†²‘º)õ°3Œ†Êúí.glè0eN;Xé FAËîÅöˆ×ɓ䴣Kß›Ì.æëÄül•»¿b«M,?Ì{= ]^ÁçÏÍD‚É€nœÁà)Ï6kä–ÑîÞž‡.èGr”YÊ2DÄmò™÷•¨ 5×£fÔ• ¿ ~Á ûïöä®WYP |ƒ¶.ý´öRíª¿¬Ö˜r§x½@CtϘn‚»‚5® %üíã˧Yl2•àέoÇJr uJrËžÕÙÓÚwe”ç+îUmƒE>žr3S2ÜÄ·Éàg¿¡æ){¥/óXÅÀç;òp°µP9Oµ‡çœ"ïg¹Ù£dM—¶9vô>}Xa­-}`¢ßÀ²ö†žp©[ÛØ5øµ:$à‘f;²ÀnE@ÃR“ÂjxqÔñ]ýT*‹œl¥üÇû—HÂ~ýªb¯v'°‰fEu¯gÓã<ÅCƒµ 0$òaP`ž,_6ºîVãnŒÒU]ÆÛ, ɧL«)[ø&&-@%I¡”¨àT["v¦cA²_W釮~„* 3([ß_Î:6•V+t=†k•RºÓwùÚk÷ü–fïh°šk“y%†ß‰ïH‘ÿòîGOëdGå@zGd)Ò“gO^#nBÈý>œÜ‰iâmùúƒ¢‹µÌåŒ÷ =§ûq©ü®ûñ…½*=03>Ì\ åq9Ø&Çï\U€x …A[¦—@Ëëº(6.LÒk6t{öz——ëÈÛÅ(A‚‰º’¾a°§®ÇC‡>ŠÖTÞu2H׬Òw9ű=j˜2y‹òñ-EØÐ#a\ ‚)†×«’w8ãjyGIH"ÎKV[À¸ü– kt 5:£=ŒN®øþ·ív[–fŒL1Þñ27pÜ–ü(Kš Æ´™ÜÙ?²N°‰ä‚üê«ØZRóûìªîÕ©>Sø,ϵ¨éE$p Ï~P?¿"Žéf+@'ûÎ<‚¼ª. ®Ï„/²øÁX ѲFùö9 ,¿É ÀÏ-k¡‡TmŒkŸM¿±I)×Ù}Ÿ¡k•䊸ÙëTéAŒNfàaÙ»_zKHíQPElÐÝ€*}Ýž˜«« ÕèNfPÙ`0{HªJìÑÞ ÷âå}×Ú¿2£¦Ù»'V›`Eqí·çÎöS!÷òò3%úÊ¡èäËåZ­¨wÐK&·³­Þos9Ä)B»±7†'PBÞ³¯¤ÊÕœ-žóïa6Õ¤U9ÙûZ— þþµQê?ö3÷ê,«{[§âècÙYïŒÖÿ~ûŠÁ,/ÞF^„Ž'40gDWu¹L1°ÞÚ:f`Ǥø³Ô#õç•d%ÀÌ=W›×¥ÍLAà îaLW ßÈI¿Ã_‹Þêö^†„d ‰n«@R/Î}IíÅ£uKFWמŸRNGh’L½À[ùýg'O#ÎìB,µS4x²¸séãG&$?v°Q«Zäö ÝáQÚX«3¹¤”Jÿ¬rÆ‚K›±t‡×µZ^°§Dý GàýÚ{<&+rü´NÒþ·Ì6+7ËØE´Úu”q40½O4®Îä åÙ,õ„AŸ`Ô²&vw„cªêcÔ™Ãyã)µ+v·Üž¡P¹ÏkoÌà’´¤5DuIç=ïŽ)PË=×#Ç4ltÆâ§£".ZC¹ëZ¼ou¼©Å Ë<°—œ¯›Ð_ޤ|bÁöç4(6¢F“Bø#]÷A'P}¹Ê«4=Q­PM—ñÌ"KS6樉7 ¿½·d<½%ýHFûe8¾¼ªC$B½nYõöÌ#*Î5ÚÓ½ñÝ•j˜m ðˆíìÒ~BVH#Ʊ|£ Qh^xÝã†åGQ-ä>§Xn~W(”´PQ¹¸ö+¼ž(@ø¦å/7_º“¯}è†4¢:¨î‘ùç[hèÏ~û0ƒ›u¥ ·Ì8»eC-ãaÜùï’´2^¢éþ{žEìL!N¼OëpS׳Áá~àX€(¢ÅP8Ëkop~¼O±¾¯°;…„¡;Z{ Ãè.ÄENþ51Áè,aÌüm“,Dèw¦Õ²?ãÅv»Þ8x+r·áÜ\—WÕe»ŸNƒEå;Ùf ¤Ÿ \²œéÅC ÙXq©f˜ì ó£3*Ú\<Êñ§ªc¥Ýå÷Ómè+9T2u®4º¥núÖŒ$Î=ôuAÒõ œ¡º„(G7ÚÅ@‚—¥¸§…YšzCìpµéÖM1J¥ÔYøŸdóôzH|_¯ŠÂDMråP¦@}ö?XQÐ<†j<¨²bÉ•©kl^WFPdâµï®VmE[¢ŒQkq2’ËöIMÆêÍj ­„çSB‹z}jºV™àÞ9ye êpžßJZª%óñò¡ÂKìIJíÂÝÑ1çLìät£‘?z À3>P¤^”Âøi+F%¨·œuÖNY»&ÏØ¹ º}8ÄÝöÔCì¬Úµu3mÇ»úÜV|sΕ*$'œÁfŽ4¢eåsÌÄtIöãP?@åñÚ”—ÑRÖáp}gPjT¤‘\!ÂË)Ë‘€¦ßüãÀNr£¿¬9AÈÝÍ,Ò+ ø};Šî¤°Dq!uM—­X ª©s¡gæv9Á/°Ä +ÎÖ»yߣõ`ÏûÛ3>ðóÆ+PÞ¡YÔŽz[è¯òIhØÉxõâœê)_§æ'„½fTçـܠé%’Š¡\Û¾IÈ9Q²;xÐo|zÏmZ—v¸Çöpû«q¥ZúP£Tñ¿l(Çìœ3-sÍ–þ‘p¾öáZ3÷o^j[ŸàË!8ô)MA×Ù`‘±A{¬èØè£Ìo.¿7hû%[ia;F7¥*m¿Ð*Gðv$ÌoC¥×ÍQãjFH0qwÇABèÞ?À GÊ]]ì”i>¢í7Mî¼È!ûÆ3ã}Ñ…!?|¦µªYßz n!FÔž.¹yšX4Üðìà"®pÄ‚æ£%Ž(µüÃ8rºöò”‚ùÞðrp¥sЋ›7 À¥UÉ5zäå´ó-‡ÕÑ »=Ýë¼O•ªÍÆ%Z€TÙCæ'y°¿xr¸÷‡—µ¯ëýç§½G„qÏ)7èÒ€¶·é"iÓ+åeFJÖÀ)ØÃ®ªÝ²#´WA4„7ʦøB êvgQ|Ö~Yÿħq%¼”ù˜¾=–×Q~}Ôm@EJÀÎÀíUðâ,­}æ?È/mÒc$|ï³ØeÅø±«Cú‘'BÿuÍo0Ûâ©úö,‚«Œd®ªµÔ·Sk¢/‡…PØ;ú—PßKK@#;‰†â5ìá®\N@V“ÇØ²ÆºJpyðU•Ö n6èÞú^µ«Ï•ë°Co/´V>&œéŠk×Aî*²LR•1ë†G™V;zœm`d‘ß©¡ÅNtÿ¸ U’Ñ[T‡žÁê)¨ì†dëÇ—>ƒN“œ}àAa+% È/qÞè0Y;«zò3¢Êàè{ ˆÇ&EÐ×@éÅ«OÆ‘ÀÕ¼Ôâ—âê&Õ˜9RdR³sØc2«¨ŽU[«µ=á¶ÁLœ"ì9Ú|†¤N.Ðù…"P£©‡(¢ž…Ñ–O {p¶q íêeXTU®Š!9Ù\ã4Ãβõ8¬ yáä6†õ›a®£Žc˜ý˜sä‰ôb90ÕF™±~+0'| _BÚ–o³è-K²Ž<¨×I7Ä¿é™?àÈ*EãÈû7¿éÒAÊ]Çï_gNKÕ2*¡>¹öçÙlOTn†„ŸâFv†~Ï›$þb}F¦Ÿ.¹ÍJÅÍ´/…9\€ 5·7Š[°„m+ÇãÊx™ ~b Ú;ò×U`¸Z }¤Žµžóuo‡):ßÖ†mÙKd"lŸÎQT`”“>µèeD{Û1ž»™‰å>«l£»Âäœómïº.Ýt¾~wô.€U³ñP³…ÊÒ›¡0 ´«Œ7¶¨ÁP” 'ÝÅYýÔ‰‘éSÛR°k„-—×¼¿@»Û¿“<§$Ûƒµz›ö9 ä˜S~]húµ†Å^½#©Îât„o‚žÕŒªŠÞòs¤3ýÒ?”(Ç'ãù˜þÔF»R©¬‰³bj}a†‚Šyë"bäˆøj*ÕZ]ž„â³§ FyÒÞDT@QâRž^Ã>ŒV ¢hÀ` Áô¹Ðh·XßÂH` ùÒðèd¨ó§$t髼­Ø*›Ô—»JUwƒw¹ºp²‡ƒZE£Ö( !ƒË¦”Ü\×ÔK&§~gz8d†cz~ºò“ªáµ¬ ‡ˆÚ˜Ó:=wùu](¢ph¨È3 UÐ{Íj;SÔŠ6ßâ¼7­ÃK@÷[9{¸lÇÙ“ÌO¸«Iô¥ŸvŽÓIvà§§¢ÃÏ”*ð±»Ø¨æ÷¼Î¨%?@Î2„Âznqò.õU¶|ëæi侨eOÌÚòT';zùÝ\±&: Ñi´„Ú|?}tôÔºÃrCS°4=Ùô¶[7&&´‹ÆƒGo ï/Gë±Jµ°_Œ!ŠpDÓNypj´qHf&º'þt¿¿_žè=2çÑÅ%HU pœûËu˜ãàfß±?&ðÛ{­Ž]•ÆðõG®óýé™ÉÝê3ðRªí5ÔïtˈÏ@K!€l9*âËè\“ï¡þ}=3$Of©k7èà Ÿh)mŠÑºj¶uúµÓÀM¸J„¬ŸÜŽ\p~õ Ïᛂçœ&¿£$ª¦_±ã¶Ô?3Ðû« a¨Ñ”²srž?R<]±4Ü ¯¯o#E7`óü²ˆ·:‘ké=ÓêNŽ,×ÓI*Þça´"’ù¯{4 f¯õ¸0ÆöµúÅØ¶ së‘AíMÛÌ [¨~¦Ö!—ò»3üÈ4ót ‡Ë0ìºo¿ˆL‰·Íi{Ûp}DÿYYhl±Ò8›7Üû'_Ü2MÍBÝ"øÑŒ"œî ‘†HÁÒ•‡=³ԑÜÓk„9ÕØ†u,íVW…n#ýó´Î v;DdqbÌŒïᚃWJyzú9µ)U>[‹¬ªæÿÕŸûL„dãwD/oªÞi-y4b™]¹`ó Œâ.»ø´â¤VZSU|cŸÄYÚ+uØ‚ÖBS ÁhsP³\“ªM#Å ÎùëA]5ö‹û@¦.Ô¾ú5? Ñé³vpª‚ãËbkt«Ý*ú;WUvìŽÆžª]ivÐÙ¥úX*Ç5=øóñB¦ùå4‹ß€AY“KG·`×§i¢/ëpJšD­qhpNDÆÅ}…Š#V­üJ)¥Üç¡ûQÑЫ>Y,]GiŸÏxŽÈ‡7•ªßbÄü»÷[Ö…6xÜ'ºßY0í±™ðÛò%äûéº|׉Üþ0Jâ:ÊÂYt‰TFí!ÝvGYSÎ" Õ1ëvb¬Iú|f-Ù>ï¨Ø"‘®2Xƒ‡‹×K«èC 5Ï;šWT½Z_Ùü& Ñ‚GYÌUöÖ±JÑFmãEBQ°}îÒu¯ŠW¢ó/±4ô×ÜcT;ᯉ^³ýqlBª_oó„´Ä5ô ©S÷²i°rb–ŠŸ§ö&¾† ÝÒ”a/«PTb$TX]â6JFº2']=Ø[?:ãùò†îèl†«‡Û ‘ÆXîÑ\+Sôæº1é‚DŠ–5Y5u˜1ë}…‘“6D(`óLtƒH€Åo¶³—µB€×ªÂ¬pÆ}( é°V¢Q/m³ïUU*HnO<µ¦ƒ½lè¸kÀn(zUrʦ~»¯l€%“p°bH¯‚ÑLƒPGé0ôó©äT«O~*G Žâj`§V²ÎÄÁaA‡ßìC[càÈ=úY‘¯üx¬²TÞî­y7¢­ïÉ]­§Š½•×®ÑDWëðä([Q³Ò؃[‡ÙÂvÛÓ&ãÝ,ŒÒ:ž0ŸÃÛ"â…uvl3J·rŒý‘f‡ºõâ“X6t<‡kàV°§Ó£àT’Ð4¨y*˱î,Û‰¸¡oYºšqv_z¿»>ÀaxýŒ1šª g¨ˆþ”Jh­†yö<>?åÎôŒõ!Æ£»`¦c]‚Ê-y,thÌ¿h[0à¹TÈ/¢UmoS[Š‹Lð(G£j„Í Ÿ×¹‚êŒ_Ö€#O±ü~š•@lœ&Oñëz*£Êª·¹ê`…6UÙ‰D…Ê,qu0ýçæáâWš.¿*î¼§‘ÂMÖüøÐ›·Î±«yípØ5YR‚|›Þ½KË{}_PXƒuÍ3È•(ŸÇþMYÚE)šN)-'9FÈ£vÙýúÐ~Lvš¼™=ÔK!õ­OP]ºÔ_¿H \H y¬!E®sÐû‰æ5‹8M÷±äŠVÚþp u}„›Wsâe8º“¿Uz°˜ÞHì‘®›²§`'ñÚƒRÏ4NWûªí¡Ó?ˆ9ÕÀ@ä;Ø ~ù0é¯3òó8aåA¸Ð&‚œx$õ*@P¸OÒUGÊ+L¹[tU"­oyL® qØÄw:»Þ°4žÒ•BVdA¼Ë²ö Œ˜žªåb;)ý?Fù*a\¨7,2ê%ß.Ÿ2 ðÉÞP}èYë~®HG#Óô|©åÆ#3œ¤R@?95Ql«Ê9»2kWÍMc(©‚îlöqí?­»,A­ ¡H,PxÔ0ºŽâqËüf{çJg6îôÿǶÔäNÝ÷øÎ|¥þM÷í+‘3º‚÷ŠüV‘}"§k3H.•ß¼GgážÞª‚$[Û ºßê« yxrÝ äjXܾ1á­Y•ø²[¾¶Lxò‚õ¡²Uþ¼ ­ê 7ÚV³LY·a£ˆÊ‹3«~åyѾ‹sªÍY ÓýR«õCÃ’.SñÚ¶%æÉ¡ÕGU#gðߟ43IÑiÂĈƒÛ-óWOŽ,ùþ­)ÿdÅìäˆm‰ÿÅ.nÿrlRÀþËZåë÷ç~áîÚ¿dÑ£»yõmNÞñ½ñJS"[î’o•ÎL«¾w~‡=;;ãŒæ¶X±ŠbÞòµfmoJ>—¨1U˜y|t[¾2ô”Ñ™k>U^ø_c`xLé›ë)â£éŒÏ?ØÎV["}g™CöŠåeÏSwÛQ!R–ò Ç¦*Ëé¨Þ°g‡V®v+ ñ—[õs”t ÿÁ"óü™ŽNœ˜¡ÎÛ^¬s¡ÉsÁ{q§M;n~滹ÉöÆ·[³-î½—«žumî>ëãù K>Ìqý¿ëü’g2R’ÁÁ?›Zö¿Sÿý{!3×]a~½ÊæíuK¿˜Zþ}$¥±l¥·ôR/ç^׆Ã}óÏLúÛøOñ§áÞKþL{ôiÖáŒ3¾e϶¾åû·—ÑÇH‚«cc« ;§P–÷Ö‡3Š\O›²`ƒ°ÖéÊcÓµ|gèÅ/WøZ'(Ó)ôéÛ).=ËNçÕ†Z5³eŸÞ¶L*}έÿ7çÖ­rýn0£§dî ÃëUysB®.ʳ¬y»È{íW©¥k•ì~8UÒp­ÂyÓéúknª)Þß}çRoõO—´ ßøßÒ6lŠ×Îa ÿüýÜ´¦ ¦Ü÷mhþ~kb䀨£Ë+^¿{õ|æãG§ä/9uâVöL=/³ÐlÞÈW«6üÜØ_ò§MGó_ÙªþEÊê>':™¼~)ûùÚ¾OÙEøœ6c{eÙ¬ÐP•±+k:´÷ÿ1{rÑ0$àOP¸?Ø8¾|5X_èÅôóÒe•Í–;W½ô4 p0, HÎIM,*ÉÏM,Êæž–¾`endstream endobj 711 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 2 /LastChar 122 /Widths 3963 0 R /BaseFont /UISAOI+NimbusRomNo9L-Medi /FontDescriptor 709 0 R >> endobj 709 0 obj << /Ascent 690 /CapHeight 690 /Descent -209 /FontName /UISAOI+NimbusRomNo9L-Medi /ItalicAngle 0 /StemV 140 /XHeight 461 /FontBBox [-168 -341 1000 960] /Flags 4 /CharSet (/fi/ampersand/quoteright/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/bracketleft/bracketright/underscore/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) /FontFile 710 0 R >> endobj 3963 0 obj [556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833 333 333 333 0 0 250 333 250 0 500 500 500 500 500 500 500 500 500 500 333 333 0 570 0 0 0 722 667 722 722 667 611 778 778 389 0 778 667 944 722 778 611 0 722 556 667 722 722 1000 722 0 0 333 0 333 0 500 0 500 556 444 556 444 333 500 556 278 333 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500 444 ] endobj 703 0 obj << /Length1 1630 /Length2 19212 /Length3 532 /Length 20137 /Filter /FlateDecode >> stream xÚ¬¹ctem·&Ûª8;NŪØ6+6vìì˜Û¶m§b»bVlÛ¨|õ¼oŸ>=Î×ý§ûüXc¬{⚸æ=ÇcQ’*©2›Ú%ìí@ ,ŒÌ<K[cg{[{n9 ¹ à¯ü%¥¨Ðdio'fò4€¦1  €•ÀÂÍÍ@ µwðp²4·hÔT4¾ÒÑÑÿ§ä€±Çhþz:[šÛ¨þ¾¸mìlv ¿ÿ׎ª@ d˜YÚ¢ŠJZÒ ’I5€$ÐèddPr1¶±4ÈYšíœ_föN›&öv¦–ÿ”æÌøKØ`pvšXþuº›þQÑ€N¶–ÎÎß–Îs'#;Ð߀ì–v&6.¦ÿ$ðWnfÿ¯„œìÿZØþÕýS²w9›8Y:€£*‰Iü;O…èŸØÎ–Õ{³¿–¦ö&.ÿ”ô/Ý_˜¿Z‘¥3týË0µtv°1òøû/˜ƒ“å¿Òpq¶´3ÿÏ èN@s#'S ³ó_˜¿Øÿtç?ëü/Õ98ØxüËÛþ_Vÿ3K3ÐÆŒ…õoLÐߨæ–vLÿÌŠ´™=€…ùßrS‡ÿйþÕ šfæëß$ŒLííl<¦@3&{Ðßšÿ;–ÿûHþo ø¿…àÿzÿßÈý¯ý/—øÿõ>ÿWh #Û¿ðïø»dŒì÷ @ðÏ¢±1rúÿùÙZÚxüŸ¼þ«µðßéþÀ¤AFÛ"lgþ—fFæ -%,ݦJ–  €™‘ÍßžýK®fg t²±´þåö_m0°03ÿÝw Kk»HøöoÐÎô¿Vð—®åÏ$©¤.¡.N÷¿Y°ÿ2Tú; ïsûÕÈÛ›þÏÃ?0""öî/.+Ëßû÷7!nVvŸÿMȱüçYÞädéÐù[73Ë¿ªÿÏžôþ Œ¸‰½é?££ 2²3ý;mÿSðÚÄÅÉé/ÉÿZ«þó¿ætš ¬.Ù›ðY¥e¦ƒê¾äOŠéô÷²@;”6~/*ð¯±ïñK Ûæ®4|¯ flúÅó§ÝcñÔác_†ö`´džº'x™OèCþµ¯}ƒªƒ“î €I¿9ýL#ÊëjAn J›ƒYý`gRYE¿ä†èW›ÜÕÓWr×,ŠG_“Ô†XìN´&0ŒºÂÓ3ªÄã§GêÁ±‘ᡞè¾}ºœXxJ^W(dªHÇAmµJ¯lZ¡ƒ8áéÛý#­çYU ‹=K`aˆ„;~]ëcá±òÚxQÆVßÓܹ‘Òºž ³Ò#V T±Qu4#5éÕs±Ã›H'Á&,ª7Uµ9¶nÐØ7×yË t­½Âƒc[Þ~ËtÚ%KLAµoîdMˆÁ`îÇ8XʺDdCÏwŽ@yîš Y⬜P6èÈ×ÖñzT¶ë­)G %i¢Ñb±õŠû¾H ³*þ!K4P´-‹ŒŒ¯InT€Š`?©¶ÔPR„øžÌÅY<‹:ÝK"^6-u_Ê¿¨wO"µúÅ¡{‘5¼¹Œq] è¢Ã:¹*#³Þn™ƒZîùï8¤ˆÇ Y¼F{w~ƒÏ´:ø^‘ú&•¾£1\P¯×Á?]Ù¶ÄE¾uYÄ 5®gŒxoKVÈž»SkñS{Z)Ô¨R.sœä€wMlZjä&\ž“Éšk\®›–~Wë0Ó»§E‘;jϼ;Z²}Â|YÎÿôÌ6xªå6÷¸!Ì‹b+€â—j!«cª1€7×QË*b¦#>F¦sÎêý@#ïQ$yé%gÔš,í7DoÛn™ËêÏ¡Nø(>Z\‰y‰Íþ™‚”¢*Çõ=D¿2µ`{idPVM  ´¨ïá’—Lø|[?|vu~v0欭nŸ]·~ k¯¤>Ô®Ž ‰šiÉSskŒˆ‡ŠrBj»€ûsK>†!:XñÉ/zeÓøËu£j‰j£`¬ý–ép¦{«!wÐØ,>qú ÇU82væR!œWüµë³'}ÀP]qÖ¢/̰Ö:äja·ÒÂ&C]!y„d4Cïd(¼ç  Êú ‡]8'ª¿vèý.®Óã)µXõ;~Û@" )o™G6²ÞyÅÕa¢A=Þ(­Ëò¦À.Œ UÉ’YëËIŽ'x#µ°EÅILQоfêa¼ejËqÇ#aÌ Î¢eðÝ\êqÕ»Ý4Ùê Kko›æ ®àIÀO¬êùNÊßñrÓd'|o×rƒÈ{,éÄq.s´Í—(A™ì`J‡ƒ_†MKfÔ¤3>8Ý$Ö÷ÑI|ëoÔ9Hlj( †ižS_É£CŒ[[?ÇXæ‚8Ù’Üykh´ pæhrNË8sŽV<Î4=º®y3ζ_:Qt`VPäv,ˆt(C!ÀsèÞÒrý?°jš\2jÖY$ÏMö¾$ãKˆË‚´¸zÜ­~~t›Ò§°£_óŠŒTw]~/2ˆ¡­êÙ¦7:Í‘"wˆ…ïE/÷#åþÀÉš¯Š\½SŸoïõÖbôæÒähD?K9+ŒžÎ?p¯z¨¯ÕºaÙjÁ<Ôsä>MÏ0Àɰ†ÕµòÞdÑ&OÍ$H!¤Fà£wç'`¹xvwÿ˜oHTp¾%‘—k/gFi™hG½~ñ¼PbÊ…–·˜ˆß4œQ¡û]š´®Ñ¶#B›¬T°Cÿ3fΖ5l÷µuÛ‹4¬ ñõ~ òAl·^xQØoðÀšA ¹5n’,§Ù[1H ‰ì]sf¶h6…£-»ÞWÕšÊMæ…0”h9~oücß5#«ksÌL§g”è÷ÛÏœï¯ÅãW)¼o“ŨõŠFÍò[¾܇OÞqºK0"~JÄY2ü>ŒH-¥µÈšºœE<²RfÁ¬®æz²ñœ<,A˜šâÕ‡Æ,šÑÐSƒ6+ô ðHÝ#3&LP´“½(¬§oªaª³ôPe¶% ·€ÎaR'˜Þ#vô™Â„w?ú#"üìKÎÃÁÜqòµñ…Pž[íS÷j½¿ÜÀANJ“š±·°ñ¤T&f¤3Ÿ<“±ƒœ±G¢¸ž+7¾òÒî ˜âïk·„ {âP¼l$ÕèÖ2l\?‡ZgDë™ssÐnB\Q˜«Ø…Y÷df†ÞÒL{dv8’å¢Ã×8k(Js>Ür_ËûR(Âæ³-=S¥±ˆ Œ-Î,;ik¾£JÜF´K—tY»jÑF—Òúæ›”VL[¥”ˆ˜iû.›Ž¹¦¡Wª(È?ƒø’ËÇnÉM)Ü¿¤F®B3VмŠcj48³|^O3}í?£*"븽÷ž&`gwÛI"èê•ætÞð}7,¥n KÅ¿gÐGûJNt‰J£å§ª`ä÷½h' ²;ðhíqÑIB©Ñ½6îö—eðŸÎQøâÇ«RÝpk‹àIx¥Ÿ7² ¸¨ÔÔõÛÀA4í[¹³Ú8pá::X—Ø0û(cŠ}»WƒÌ«þØÈÁ–m¤|šéŸ#|þ –~?ºŽ=ÓÖ íxE-ûBµ&Û{{h¸ò:¬Ê¥ÆÛy5Ó´ŒÖm/ª8d+¯8¶“ë§«\q;æ—]-ÁMFº@SoŠšSY›&™—ßÐ •É”M'T'{¾ÊúyÈÝV¦—SóÒ£(©í‘~k3h@„w8ún‚ˆc6IÕØR¹óøÔ?%·¹¯!hU§zÖâ•Íi×ä°´Ý4~Œð'Ä]1EE½£q×ÈÈxxêsµÏ$ú™‰Ê.À|hŠE•oÐÀcî)Ll•¡ˆ¨]ÍÐmˆÛƒà"9RÚN• –5k›¤Å¹fˆÇ­«²V7ÀÒ¯Q„9ü¡Œ’¼vdJ’JüîÆXŽd[Mñ•,k§YH= Gkñ#z‚߃æ`TÝ”ŽÖ Ü\e!^±80bSC¶â:ÄËÝ,’aû€Á;»QÆü˜‚Iœ…˜9lôõªÂopC´€D,ºÞaIuöÍ:­I¬Ë… øäØC<]ØF5TaÚ]‡³KE Ó¦È3ﵘ§!|!Ô••J‡ÕS°@ `ƒ×Õ©?ŸK5F@Fl‰TlîsàLm…ù™h÷i0¼Fö<‡j$¿àÿ-ÉFIi¸Üò>q'ðËÇn˜kÙ‹#4Etƒâ”,'ð,×ò=AŽîëŒQWöÑÿxêƒøñ½csj…ôÄÙ·<×e"ÏÚêvO´2rúˆÍ©…XÇ€‡aaÿL/ÒÙaÎïÚö4)dá‘JÈ:åØzï8–R÷‰ï\ÇÝ Ö·.ÒJcÕ¦O„÷Ø+‰ÖUƒ ÒêWóÛ/O{—ÀêOkÕ¹³@Ô×o÷y(ËüO`ûHLb Ï•rõF.Yæš/r³ÊSx4›ANË<;i)L¤V©;¤¡€Aþ|E"ý™^”’ËbN½œÕÞû­soò dïÍÙŒû{ãáÐ8®É©ÑR¦‰wqñÆŒ›ë%HÈ ‹A#ÃMô guáW¸ñÙ]̆¼Õü»º3*’ŽÀüªGl^Œ¥Úö¥¨A:£ß)†GÃdòÐ¥å Ê–ul£Ylc –¤šÝ.©S®&OîÎ&@9&Ú9Ý~"Lºß‚4½ÛX‰¶—õq#WH~ßHéGú˜.ƒI¯L†}É÷;³Ž0Fs&÷ýS`®î 7§·­ÍŖ‚¼\/B¾');ì}¹³½‚u®»¶JéÊLm,ó·Ë[»Ö-#vUÝGNšð«nJn†y'$M7âyôw–Ø!%pìóÒym–%Œi’×\%ˆ æÁNƒŠƒø:%SQö‹eŸÞÎe8aŠÎQwÇGmÌO½ŽmŠZ5­Ðsj^P` ¹mªžâÓªõyÀ®wÃ{ºá¢–þ"-àÙ cR¹LBAÿøH®sW-õ¸|SºÈÙ–˜—Ïh#6äa¡[‡ÿCjbî;|>§°Ö–9; ÑZ¹e"Õž îPK Â<~M/‡‹•ŒmæŽ;g¡Ïm‡åí<ó-ÏÕ½ÞMzµIöÛ“U°õ u]‰¶! ¡-ù"úmßÔÈ ðý^š*Nud=ÿø€°í|écâ(>Ý"¨¢(–Á‚m$öÈŒ ™qŠ|‰}ö—q:xG}•'÷“8ë‹- Ûß8Žlm#o…Ñ›ãè]yƒÕ4TYq‚!§{]ºoÍÎÒ”º`ÞÖxÀ èk§rd?Ì­AŒEëíÆ,{»ëçÅ$ì®®áR>¤#53¡©جäß³jÅêñxi„‹b§ØÁ2Iàá|¦=ˆC&¦JÄK³ßëþ%êGâ—ìfDËáTSˆ©›õa GÅ­ˆ)é5<ŸaG@ÜlÎ+F÷`”ö_ƧMM¬ãçTDk˜%úžF i[gtüä.ŠúAæî£ ßS ‹½`º®?ëûv3R+2ëÕ2Õ¯¦? ÜSeÏh6ϱn*M)‰®R®6ÚbÌÛmD&Î nÐ#³ºù/Oaz¢=YýÅî‘y•áxÄóæÊ´AáJõç¬h’|³Ü׋( qdÞÞ´À¼¶ÞÅBëKh>ßA˜°¤ixª9ð6«žƒ)H3€4,Æ»“œË=s´žòI,.b˘Æk?Ü&[Ìti†ÅaX4#hù=ìL{ ¼Ž¿0‹ê€3=@f™O?²Ý0ÎÊ#Vz^ÙŸ¸’ç{;¤Ð%F„¿Ñò¼É¯Èw_4g³³8tLgäÁ´ï£%Ôôr¬ø¿²˜×ºø”¤Ç³©aåI1·¯~qÈÏ@²^gŒ¸}Åâ–RûTÞ™)Iö&“H¸tÌNó H v,ÉrÀ2ç`JMbAÚq ˜QûØ,¨–UèÕwÛŠÌÑÔõ0ìÿ”ñé)ÌÉ xØx3m_fc‰?Cü×\ÚË0»XI‘´8 ;vfÀx!µž$ϳÞUü4±Q˜šë™ $¼ç¯“ú¼l€¢)aO¡ã\—ÚSý”et™w’¨«Ê=[ë{F/i ¾]<=;êŸcÍÑ vWÚáì%j¥`zo.CT1šä_úYHk<ñsÆfNWs‘³ÎPŒÅ¥Ñ¾‚êƒÇ•ê '1òGmñX&‚-¨7<­bÏ=èîfêš=XÓ¦K£Hzù'M{$Ô¦ÖìP$ªÔ¯—¼¯V oƃq³Õh®«. |s‰ñžYÌB§åÜ+º$g˜Æ2÷L*_µ‚„fùx¦™‡ó“ÊU—…^/Qf¢R9F6Ù„ed\µ4$»ÂççFçá“RYs»ÛßÞï§6˜ Èy0r¸´ãuÏg!‚Êf©JP™C_ç!SWäÕ„}ÄÒçh¼;´*‰œ£²!*à*#ãS/Õì'ÿ$TdÚ“ô•béEÀøT&Úìá¿è¬OÏO€ÓHÜØèÀéu–«Û9Ô;ï4í.“¶Ù"Q¾~Qƒ’Ósâ×7‡C¦]ù¼ín¤s*iF%îïEaT©ææÓì2ƒ_†ÔCkq×c88ã Õy'åÑØdˆGã=6ˆ%ìj 5¡»ªÇ-Q´·ÁŸP®‡{ÇÌÃ%œ^EA«õÜ2µ+Ÿûšù€M·QººÅ§ÛP‰µ—ö£®IÃán÷¿ê9_ä59¼QPl•Ð`ªðžg9óQ,yŒ@Ú‡ÇÓÅ2ît  WÿÕD¼÷-…_}’oAfAµë«ÿ ¡‰èܦ'7UøÝÔ ÁQe"„7›»½ tÙôRó‡é/ %Qˆ{«|-ü‰¿¡_ÀŠûŽs.K(¦bªâС¢ ‚Bê}˜Â3<þ4ÍŸ~’âf·vxÆšU4”U®:uCûÀÆ{Ÿ1i¿µ,¤¦Ü,r§FfêÞó,ø9ÈÂõg‚•h³F3u¯-×¾š®ª(‡ðÈ™Dþ)zV¤ÑìKS§`[M¤‘AËt¤À\Ô—þ˜ÍŸ§ Š;FhÎaòQô”2%¤ôZ§Þï%ÀR†¼7ÛÞ³4ïòE¼î*„zé’™‚£ àDeÊÜ,'ÇMLÐ5_…hÜaMÛ2»ÌÄp,Ì5x)èòî†(v,—û}ƒï›bT •Ö çnÚŽK´l¦X’(+t.}§÷DøÜ梉î&Ô×gòõè%˜«Q¤¹–y”Ï8?º°÷;BW;J€´x¬ð(wŸ[£¹&»ØùRÍñ‹½¾vÒÉoP’<8ã|€¸+s×}BúÚƒ'™;´,W/+H¥,ïCH3òËü>.Ç0ÛIXÚ”U°fÛ`¸dЋåŽÙa1ßk«Ë$M1{à4‹æyQBp‘Žì~Eöý˜ã& •9›*¯"­ÉÜ Nà ­ÐË>™dF>ÒLÖô»›àÝ>ë‚2äˆ6-4gû{kkä"w]G“KÕ üsç¦ô÷™ú†DU·Û©ö“°œxò/þ—þ¶oÍÎy»áÉÓ‹ýs•KßÖüþ|érxDõv³(ñ !2èóÃùV1MÆEr‘\$p=6Ý… ¢Š“Äg‡S$TSï.,Ýr”PÿVÌóy•ôÁN7 #@ü¼&9ºÐ‘#ëÌêsÒ4¡¿‚z\Ú2ŠüçwA+FKX£W­w±-z hÀÜ÷kE§ûh¼@¸BwØn½¨¦zq29çsìsÂm¤¿= "¼GÝÂûþ;uØ.Y­?òë²äj=Ø/…zòÞËMvïìH:‘N·à½õ¶éßci[»[Ä®UH2šT{¼MÝÆ¦N‹uCýޙĠ‚绢"Ù„‡Ó%ëŸN¼ ÷‡,ØÅÞ¿öŒ![5oîÉ!Jë²Üe¸Šy5„±ð¾›\¼>m™lv÷òšà7<)­•êJWHI¶O«¬¶¿ŸàÆ=]íi½,5F:y¼Ì&Ãi$‹2|(G ûUq²t­0¯XÆn™ÖzȽº“ÞÞRü"ÁçnVHGQ´Ç$’€Qß|…#Ê®îª3"›.®ª [FîÏæ•gÄmFùq»2 b´cr¹Î¼Õ¨B¯¦Ž\Í.ußñ¾¤5@ôî6]R>9iý“¨K/ðÒêŽàªyèIàv¾Ï-ÛYP•äÑhtÁøáYû…i=©˜<¿¤L)Ÿ¿H÷dE8Ô¸€KlW€%E(ÔÿKémḄüið“J°ÊEÜ8úSl‰{ÄÒ ¹eú™Ë!_!¥|÷#Æ.•D¯ÁIxB.–×ÈÁ ~ÂEfŒ«ù8볟¸ºÚd0n5lч•ª¨„Ï4yqb›ê¼,ýä7±*ŽÝ0Ä!Kn{âu,‹èmž?Èa°§é†vx¾€p‚5ÏL0[,cý‚BóJÜæÌ}’µ¾à’‰u#cås-OzÞŠbvcêR_~Búd ®ÓÈœ M…Ĺé‰V.ð•F'ǹ‰¿ÆK€Ró1X­¾½¾%ˆªá@²…‹Wð¥Ì•`Ù² 7žöÊd1BŒ˜8ìkzÎ …B#œ’‡ñx„Y ƒÊ+H‡³ÅÞù"Õ)3A‰»(c³Âu@ÌuĨgÇÓóÅôdÒJ|»ŒFÑ­]JxÎFŠ?!Žpè=0e1â3XÆGS?U¡°çx¶·dÏø†ÖXÊÜms#{Õé—ÉD‚pXšØ'BÊ,1Ô°‡eÜÁ/>Ò€îžÃ¯~°üÔ¥}AϪƒ·AÐñ¿´ÓÅ.xèŠxËaF¨…¹Ù#s¾ß…â-—’Ì£Ô^~’çoÊe*sbÌËIpÒåaœ6 »úQž¢™ÊŽ—*¿ùëpÖ¿Vï© q9Zž“ß ¹«Æ9r­²…¯x‰xmj€„î|…>¬fGÊLÂ#Fìº×ݶñБµáÈx@ª…”JÑÜØräýÀ}ÿNÿ~äA_î#uBLVÎ×m1>¶¯xòSò£zLß]¿­v}%¦ãboºžîS°(éáíu‚PZ¿]`”¼4²aú©p›ŒÒnß° ß÷Œˆ‡Å4,±A‹ÄSï§CÖ§_[Àºu÷C³(6-¬ò*ŠgäkÙʈ¸ÑDz­eÓ9›ef&ë(«ù°ÿ>H¢}ž[æ‘iD@† ¡óÒ,sÒDPï¼ý£{Õéœ!¶÷ïy=§e…~Ï £Ÿ;9•\^ Ï ÞSÚž:VL?%ùñÖg¿xü§Q8É4),pTöúä®cyÀô úÉ®f¨è ÏÒÈ/¼„h=|L“M¶]rÊÒ¦eÍ·1C°¨¤½dwKf²;Hˆ…²h&HÆ ÿL[ú“¸L܇i·¯Ku%‹#¦ŒÖoØŒD[`¢–ØùAâ!sQõ|ƼzÃcß]­ÅR)²L ZœwÀ¿ZoAÏ%¬ŸNtZäz.µhÞœ ­Ë¥…U£€„‡Å¢Y©Aç|¸àïžVWè4Fó5¡@ŸeÐ D õ­´£Ï<–ŵ?&(ÂižG¹ ÓIYw¬žkm!꛹…«§ïózzS ëo¼Œª÷ÐCzm4NL¯ì‹˜‡;mTX¯ù*®ð¿ §ê0%L\ÂßPÊ@ ˆµmiá°_¾ÂÚº(‘j8/o>zÄ1=äð†@Ë?4~‘C­uÔ+(¥äCmƒP$OcRVTPÀeàº×ÂjN͖߯¹rZÍÙå¶(õ?jÉâ¸*—ma!ìøœ›”㈘‘7ãlêzµ‰êø®™üˆÓáÝÓqÚÅJ•¥«¶½ž7>÷µ9îðg¦ c·°øQÏ«Çg^w\&¤!ΚџìiÊm0/™Ûôñ9Šåª:®b©šõ[ïf ˆ#ÐæW¡k`Ÿ62ßÎߟ×%{ü (î!ñý«ßGIŠ»÷w`£Ì¿Yrš1»õŒˆâ>Çß>•ui:Zßs¸f|„5É_2wÀ ï†3÷›|#@'üE¶Ý~¥ ª–gØñS\’Ê=„Ö±ˆ[kõÀgô1lÖ­l‹Ý™4ÒNù™±ûÉúh2Ò?É·A¡GßL qT‚ˆ9¿ºM&qûØX.̪Êeã3ùÁô̳te•Z앥ˣe„ÙE¡i‚¦;L+Μ•p¼3õ. [Êì¼uôUÌ\šóB·˜F„ ~DähC YšHFNËãz(‚IØÜáw<3|˜ó7ý+Š~†!¾¡öE‰Ü´yã”uX¶:®€v"¹fÏ\ݯ]}Æï—+‡v¿Åe·t¯ÅEñÒÄü÷:²F2ü`Å")£¹uíIRÆ??á«åøNOè¼Æ¦%ó!&|BÕÃ"Í]ÑdDtwýC[Í=ÛÈîœæÈïšÒ<Ÿ5ƒùÓÙÒE8êóŸübƒ®éPˆ¨ß‘B„vsCÔnÿaf¡ʛÚÏß#uÉ[Þ jdü]E(ï†ô'>ÿQzÙ°õà BÑA¦ ;Å\Öz‡N½üðÒ ‡-Ü<݇JæíªCu”Ó_Ï«Ê_bkàfTŸMï½r²Ój|HU¢œƒTƒÂ…‡|!ç…!Uì²ÞµPÐ(&í±ù«Ä7²”beD–Û'TF^úѧ© ?‘J)!À’‹ŠÆ5ÿèì~fÐ>‹a’¹XÞ."¡o’"ÛðÏÆTÈΈŒôL½À¹¡òFnptZ¢§çÃíÎÊ‹BîíàâMf·çdŒÀ3½ð²{ aUâa\Ú™¾5ú9+ˆ }Op#ÁØêKñê3‘è§¡Z§(ò´;][´„K@ðÏ-6bõ|)•™ž–P›ÆÝ„Ó¹iG¦´¸‡C÷N<µ®_0T,‚ O ÿ ðË…;•D¢òæ†]3ݲÆúøï_)àû»ÃA]™2yKš”BJÙw±µjᄉ®/)<í Jµ²«Í%¢ó®G…ÕÒ3@g2‚öóƒâ¾ÃaˆÉÙ£ÊWHF°Ò÷ý¹ò[¤Á·Ò-bmyÃ"§¥ ÛM ™Mc—ó^LëzÝTô¸±´å7«÷ÛÁi•Û¯‰Ò]Lés ¢Uþ4Ý™•ã¡%ã=º%¨Šú¼+`ß3áµC©èΈÓ†­áÙ@–fP³Ü’?N‹«n¶þÖ/÷½¼€X\$"µ}b4ÿtÛ!½Þ$TBr,¬1·}ÑÝÿh­Þ$« ÀVû{WY´æîÅ»–k×`ØÓï.èå¢íd9¼„õF‚c2nÉ"{;ÒcšÃÙ£ŽˆôS&¦DñÔO vp·õÀ8‡‘îw>ß„Bá5GMˆ>Ìô¤VjX;±bÚÞqœ`c¸7DxgÕV‰ãuÉ]±f[µŠ ÙiÇ*·Æ§×a&Áçï|ýl'ËJÌÆÁ¥/ë*Ü5Ï› —)ŒxÕÜ/—rZ5´®OOL‡QŸC}qÃÐhæ#Ñ&WŸo|~äÞ£…$_ýš– ;ŽK¡ÔÏÍV”J¦%œ´B–š©y›œÒߪÀCÊÊøb»Áì ›º58ìcDƒÔtO:û xŒ9õ“œË¿CN~8ªóc~WÈ9YǗƧti¼—K€ãs/’…R[Ák z×e¹æ‹£ÓçJtw !k¡v¯Ÿ† ¾þ*ÍåþÈ¿O±†Î\êH·×j7oF5&`€v[4Æ÷, µAAȇÏÐ4‚mvкþ«–ÊwÛÖ˜``àšŒ»‚*•#åüe¿fà[x¾ mwm­e«j'r¹Ð—j‰ßmŽWwëšï„9—P|2y29K (h©¹Ë’ÆÙEùso·(âgÅ+Íã.Þ°š>÷êVâDÂ?šš1Þદe0åÂKÛ•‰»0‹±½g®?Š@ìè;…­Â+PÒ>õÐC¸ÆÈt‡UÆ“{SY•,Ð~Çî#Kå¹úÂY€òøæ¬Pâ -bÒ˜| õ®Ë;óFö'Á<Ò—ž›óËßÏ94@Áy Ï\½*á/|¸r›®t-búïÁûí ¨&ïb]ê´|®Š¾ƒuF÷ Î2Û ;îPÇÔO¥ÌiDQq/±áÞK³,˜Kbuƒ¤ ‚KÓvVí”·=ÌÝ ì?©8è“õùò Ïa¬‹1Õz0cÁX77M="Ç8t±M3 Âív:Ë^?_?¿5É^Á˜]qÀªmõøJ4â“­ý‚Ccë7uíWÃÒ3ß2 ‡Æ¯K*ÌEU5€ýÉ2BX<«™/ýÂ:ëßiÃ!sóàFn(áoŠ¿™ýüIÂð˜çWmò•N,Ü£ø¼ðÛÄÿ—_¢*Fà0µ>/1=‰VÓY¼t£$ NŠ‚ï¦ü)?§e¨Òzºt^ç Ø8üÏ¿ªCÁåg{t_Á%R5eÔÝüafßÃÚ‰¾gÖe˜÷j{£·Ü\ xL3æÏL™Q`tÂû'íPËoøyö°¥ˆ49¸ô¤øŠT:—\é(Œ>jzx]‰Ý„.#XÎ ‘»< aAÒ–†·bÙ–#eæ4ÃE-.ÙšþÁðäxZˆ8Ljtnбò'¸&Ñé;$RMÀ¨ï#7<7VKˆ¤}‡ªáÙÿMö”á> “¨ìŠñ»<Õà2ö{n ëžàÁ=ÂP™æ:º‡]l ‚ߤœ ]“5Äïo p 1:(8§)³§Q¼Ž.ÜóåbtZ˜ ×i4´ c Yù0'¡K]ãͱqˆ$1Ã>}7\E‡“Rš†&®K)~½ãíþ™à>ç9&ýMY°oÚ’ó“{vÛWyi HðHÆByÄHó㪠É,’Æ¥¥‹yS ‡SϮܕÀGÁPó†µVñzdE&4Ñ‹0wdœÓ°Í­gâпîΖ¿ßwŠÍ?4þëkÆå=úÚ%81ßDcNDBj޵wÖ2‡R(Ñ™ ‚¾wêÎâ"X‹Ã2ÅjóܱœJŒ ÇSëµ[ëÉ¥®F“D)D†Ôf ÛHxjú s%í¤„Oà«Ùëè/à¦Ãs%²X^å¸ô]g1‰ö;B0Ìp=jBÚ” Û —™™ç ¤Œ]Sìå®i¼þCŒS·=°:ÑoAôë”Õ©¡ŽãX™°žC×w¡hºJ!QgV¤À°(Œ“¼}’WÒ”œtB™yL¿’ðü[Ã1Š_ªAK¶õðÌoêÜ:ziû'ÊŠŽÁlö,°ÖÆe<ë /êHéAž»ù#dˆÞSu Gc—ÛAmÝýµï}G×í: ,y^—”¾ªù®GQ ýJ 9×ëDh“‚"ß’úpK°©p7É]F“Ëîšt»„|`ŠQÊ'yTWÕ¦æ$ã_çáPÙóÁ³ÖF¯=`ÈO»pcÑ¢m×i % v»Qòç#"„‚È+WɺŒ"MÊqH'ÌP?.b4 oG7ÌI7À%KXæÉÖ6ú§=zPdÐ~ƒc-ôÐB»hÐSý‰VÞ}‚ªÅqḉՙ½u¹ÉÑ.ÓYO‚40 cËÿ¹ðÔ8‰¢¬±‹šy]€_þü°O÷TªûhÜXððlFvçWÓÖsCଠ)Oé"ÌWP~‡ãna½AV!Ý”1ç/È‹­˜¤¼»ÖôHß#{¯T³ñ9Æýù2/Fh#üõ©]èäÍc¨îî~..U XÓHŽÍÔ°ïûVÑD—ècŒÛ #ßúKð‹;Ì»[€ý ôòš¹™e«ïðéUI˜=ûUuþÏ3j‰œ,†)¡wÞ–où:î½R-0EòâSh¿-!*!.IB/µ¬Þ‹%.»p-ª‚Y(¾Û¶^HùÿNƒ{ö/ÄÉ@Ýjt)xú ZçùȾ‹©i9É(´Ôšøõ½ÍàƒbQêZ±µÐuÕ¥íc¶Ã>\èë±§†¹²ÚbÎc$Né1Wï­ë˜™vI¯÷&%ï„´SÙ{*tW/îD^Õv|!ÞëÙ¦¯\æM‘h´»k@-WjÂÊá…9ÙV‚ßüÍËÔïÒÍÚ:^@Á ·Ùô*°òÁ€ &ä¬^&‚‹iÒ±©W†ðí—¸˜‘eÜ¸Ì ÅGAMVF/òCSbÀôÉ׌Øïá䛡 Iää?ùÉç¬ØÖ7’ñ®+:šÌ1ñÐ+®š‡ÑAã [°r€ =T¾»ØÚ^Ú3X…ûìaO»”1 ¹†}—&^S :‹Ey1ìVŒI*l™§àÆ®©²¾“ó²Fïã|üЀþÓGÙ7¾¯ß=¾ô ãíÑhˆÚ¦/B2Vž¼0PÆù'Øíf®—?¼LÅzWS®NT™V«ªÐåMìuížÊmX¶Ó)×uЦ­üä¥z(/¤¦?ö>“Þ4+^ ÓÖðÌôI|f@.~ÿî¬Öó¸‹yÜj½À_— &=²EH‹;¢“ßÈ ìª²ô¾KjÀ¶»óÿ¢fpÚ¶~ÔйׂV¯nÛ`Ôa=¡8t%hê—úçï6´Œ‚+ç!!@&ØLïÆŠ‘%=’U&UñÇ:ŸÕƒ²‚í1Gòh^«£®J»;öÄõäT±ÉV78M;¸QiÍ«<¾œXå¤ñÛÛ‰5q_˜XÐá[y“:¢†:/µ—»+ÓH ÃEq/¤ãüUbéw°ºˆJ}¤DåñÝžõ“mž?Þ„×jCßLHÚZ¶fPÝ*-:]øá$uŒú›¯DÆ5 ú‹ ’õzÃñS<¬èLj¶ú²üãntöyÓàowÕòZ’°iæ©By.¡û¬E¬æÝ.-.ahjG÷,TÓß:´ì*dŒB4!Ì„"bj´ñ¸rí©Ôê™KóÅi ÊŽIˆÓTzÆ.êݳx¬5æT§_Ä¥7VÒÏu–w¸©)ž¿²99#àXO6—˜õ~µm°»c‹•&4wùÒoÅêÓŠú­0²Â~[9IèÞ^àŒ£ 9˜7ã .O¾­£Ï!2.þlM;§´ O.N,Z©Ó„ ЉŠE‘\|ÅÙUäV& ×Úó•±/ÕëJðØ½„!?<+çªVšT?AáMòf,:V>uÍÎcæº$3äJ»¦¸J°xØÜ-¹öÑæ¶Jà&ÆPinnv-÷ sæœm’[ ËuÙù€A "¬:nT4Ö b˜„Ù Ž#Gç1vF àÕ gøŸóZ´S§aµÂp0,kªÄû—^.oâ×§Ñ­íÇÉÞyÏ,¢›M%´v6€éÌ›,™mB:ú«£ °øiRZL6J:ï]¯hèÕ¼‰Ìg6̶ÄüÞÛoVüã|ð´–üø¹uhÀ›3€X9çÖÈÖ[C…ÓÛ˜Øvy .Û£„_[¥Ôs]íÇŸsÿdÍ‹¤0Ó¼Ìùï 4ö¡¼ô“"Òš^ß8‘2`%€rÞNLêáµo©Š´Í>`s•IU?¼çMBJbèë5,Bn;ªûW¿À}ç9°™ m©ðÃ1ÄÑ|SüŠŽ&î˜Qwæ ŸÃûV²2 ™ÀÇÞl’oß„ú츪[mFÿYa5¿²åtžBPc®KK£2q:˜hÿkN‚zà–WÞ4*令ODpÛÌŸøóu •µ OP„AKÓÿfü½Ùîãƒ<\N§îÝ`Y èæÉY/I¬‘ô&¡cÕ¯„©~C.BDÙÁãiÄ‹?¹ÓèÆ[Dcße~Û÷Õ^™Mú{ë;KîÝg€ô¾´¢B(¡›™ã& Ä¥ZëÑÞu”REgƬçtNç(Ž0§£¨«/U{°³0Ïb ÖËCša;fFuEð/?t‹BÀÑ€ÁÔTßÇR™·‡~õ{oñóq( MbͼÓDúc“4ÊC²x–é¸CÓiÇ`ƒÚê¿¥V¨åyK°aË£ÂΟáƒÊ ¡µcó‹f}fÈáaþ®L-Ðúsû¹±”ßê©•"ŠUyàljú5/87"VŽü{ë¦4?‰Ž:óï—¸ú‰Ø¾,8ÖÆÆøUöez­ó iÍÍü(ÿj@‡ÎØ•ÆhðZÛ ´ð˜‡NZKbà0VBáSÍ‚¶2Iž·ÏƒQØ©¾å+Ò½…Î#ë.öZ Zë]ûE–ù' 1Ñ7Ü©"aR.6€‡š¨^óÀÎá»3rþj6É|h@¯U°Ž'ŠÎŠ‘BÄô†ð¹)áWòR³My¹çŸÿñËzüz6'Y u›óä\È«MAdÕ{ÕB¸­ò¨™Ý;`Œ:Áibàygið]¢­o‹C}´Rä÷¶Ómò4f‰jÏR¡¸’C¹ºÄšPqï[ÿ°Qá¹ÕP l5UPEèotcË/l–L ~¿oNMÐ3ÑŽª>Íšbcô4ÃY”žAR/|¢Ë“L=—XGGÈ{†Ô׿»*L†ÞçØaÐŽK§'Ó0ñ›ÏtwC!ÀœQ3ÜÆZåEΡYK)1 Åç§3éÀ{+n•é8dlì3ó2ÈŸ`³÷%Ò¬â¶÷óÚÁì¿+4õø4†~çt#ûOè¯À- É ÿôj驉:ë“ÀÓX¦]µšGÅ{&8´Û«e’­ÂÖÊëŠRãÈhX•£†ßŽÂ» ‡ÛJå´ä‡Ü>'Þ¥oãô…Vw4G'œú˜ÒVt4!Y>Ây4B¿¾·¾ÐàRv¥yßK!ŒJÄjŸxÇü±F55üˆpîY£>ˆäº©ÍIÞ?Ìcð½=ZÖ¯í¸¹+;»=ú>×D¢ æÑ.ìD¡JF—G¯Ur|yÂ’“2ØÝ1Ê÷e„c·’õfQ¬¢X©é=}Àð5iÁS ߨW›÷,îØ¨£O-QÙ‡°ÿgYC§k¦œø†¿'úÝw%·€ŠÌ`FÖ^—7h6SÞûpˆæÛ¤Ls®¿RØ×/½;4B• ldõ1/ÇOè[h)Ù‰'\f_ªÐ‰- l3/R¬Ö3`€çÜo´¦_'îÜá3Òq¹1žÁ»ŸPÜ~ó?­ã óŒû²k9Ø÷Z×”ÇD­§%˜R÷c¨S¾2ÏÏ Ttºsí9¾¹PköÝÞ”,VC2¦|OŒ×Ì%Ž[èÿ`×Ó‡k†Þô|Fà fÛl(°fzS “ôCGïJø7|ü{•3åd¸„¬%D²•ëÌgè ó–ù›ÔÄ{€ ÀS½çªë÷I·¢±©â Yf¾/p‚~ìqVÉ«Ÿy!OêË)6B\KcëÎPmn‹]õjõHFTŒý8ö|ÌO<ì¾Ê¸æÆ&ÑÏô·h+kk$Å7Êã´£DvêB+j w»Lé(9 G ®Óš{ÇÉ¡‹àXßíåfBŸ]¶*(gòNC»Ó»CíÊdM´ ‰ÄÑC†¯}­W*þ$ïŒÖX’I\ÊVv5#B¾èÉ[?$¡d佃÷J®ècTPþôðÜÐÄû¯–¯Sçd/0k¬“‡ÿªX¦ò/¹Sß¹w”DD‹mývÝ +¨oÁçºÊwuj±ÖsŒîa„T/´0RJÐPŸ”u³GÏ¢óJ컵*Íþ.ÈT§¹ìƒÅµ¶¬äìFŸðBx)k`hSÓÄ<¾‚öÐWð›.¶0|ýé@<…Ý¿‰ø‡iüü¬î?šœ8· »>.¿ó¾°O’¾jQ5äÑF$XUÌø/š0ò·Iõ~,”˜±w!Îø>`%ºkÚÿIm·Ó$ƒtä6F—…Ð!QLü=TVêŒ`±$ÕjRúøÞ¸aÛRëbäÙœÐaIŽt)­d°þÀµ›¬é°_È)ï?dÂdù¥|!2‹ñJÎf/‚”Àåex|f>ú˜çìß³TôÄâ6ž`Íâ\ôá~2°©ì*ìº ÐiXO®˜ÈG‡œn2ÐVàß·( Ëçp€ž8×óºŸU&îÍD(*[â´û0l£énŸcV6fì@ŒöœŠoýHÖw.ø¹Øc¸…veÇÒ$š¨_r{‡.î9Œ·¦|ÚÄMI±‹'"ûHÕæììpØàΤs£dv–×z0»ºÇÂCÃ)ZÛ€VTÈ”>¾…ÔÁá¨í„/¬zǶ٠±—Â-§j®Ðîian eÕ׆T¯ÆXÛ$o—f%ùëݲlV‘":±²Ç‰½”:7dž†èº€q˜þ@&&jÌ#ƒ’?Ñ–ƒRاWËõJZ^Lƒ ±i¶V±Œ•Trd¶‹ËÌ\ °×Ë/ˆmÈn }’ ²û‰øÌ䞋ȧn«a¿Õ© >êcñpô)ƒ¦Ð ¿„ÈÎH`é¹Iðe÷§QôÎØN^ªÃØ‘¿¡\šÓqñÚŠ=/0º â‡eŒuÒ§÷JVIú„˜&ÕÿDZ+@SQkN“ΞŠjÛø¢áØ ´–M—§ÈúÑ‘k¸öCS0ÚÆâÃÎpôpÔàÓÇý39!Nu¤l‹jurĘ Ô×ÁrQ0uôè¹sbÚô”Ê~4 KñôŸsã Çëù û€ê?¯Ž¤GÛlò{&ƒ|ÏÆ§™÷2-èfÝÕ–‡ŠJP a‹NÓT§á©G±²j ÀyÕš¿uð½î­°û–vž¼x\µŒ+m-¯~ˆG=A#LF ?}6r qd®©¢('ËÂ!W½éñæ„Jò°‰„hêð=—߈r¯ñЏ£¶ÉÊ{¥‡ûýBØú£ŸPþÁ5ÓOé'ëܬnÆRß-Â/~ÅâqÞÖÍ`ê²CC׎ïdödn­ý7A„¥FÄ”ÛxCµ#‘*á·‘ø¤ceµÈšYºkÓà }†Ò…€1*\à W2H)y°ú¦k.j¬ZO˜ëôÁw@oy³¶X[.®¯E²ï†à‹ œrJÚ³– ùq·?%,¦b_&ÿHÑë‡C3à¸>ý"éâDžéSÖŽ™e?!9¾0bLDL ûnɰ‚*ÜÔ—'VjÉöÄGÔ0¬u‘Ÿì’¹2¦‘ їЇ`´]SõbcÝ€Œ[ѦpöÀHÚ»žQ´/àX«UQ7iJº“×![bc• €tfÌF«9BøP8QUX;¦?ã?ŠÝRhlʾðU:ŸDÝ{¼v»@^’9†áçrVл‹–â÷;uÇAñ¾P©!?¥Þ\SÜþí×÷?ãÀq#q6 Ç‘„Œ²gÖ½CFÜá’r¶d%㬄Böîg§¸lBö:ç¬ìM„çû?|{^Ïçxÿþ)}”Œ!‹u‰¢ø+½Ï,Îo áuŠ>Ÿõú‘Nq >-]á=B o„ÛCáïç(¬F ‹n"¬ý½±=Lš¿¢eÄØV<í­tC2Á ßȾ®–£÷'¥`ãýŒB¦åX>wFÞãaîéÒyTTtxË]@aÐ:iÂ#ù&±”Û ·_+#>]ß&%<ñ •$,9ßWÍÙñ|y°7[Ìq¦Qɸ] å(N8pqÕˆv‘¹ÑöXÈ«3K*šÃÆ{2‡F؈¾hŸÙ:fùÄ&‚;~ 0+üYÆ:J|¨ÊY|¥_Ós~ZŽ‚L–ÞâèùŽj_b^¤>áWº„$-è/Åi!¨2”±åŸìó——Þf Ï~g_w ·g±ù0sÏø ‘^ÖO™r8âïw…æ hº‰¨+&PÖÝÒo1À%jJ2¡¥“7NäŠ!ûg¦w›š‹¬ãè*Åi@:Ʊnâê¥/Þè¾»×/Ñ Ôß<åu´* G_7¬~PÍS-ázírlåàÈïÆ È.ŠàÓ%Tï/ ØMY2Ç1Á¦#H¿ƒŒ˜vc%–ÙÄ{¾g nÎõš+ÂäŽS8”ží\3É]7J21}‚2…S0'•·}e°©eЋüUšÖgòÒóð-)]t)"K+éyÆ ¨‡}“™2¹ é­†KOîµ,0LaeØÕU äô­rµQßpGÜ…¥,J±qÊG›U{íå\·{ÕÊøá½®rwµú4ò:èh§n*=Ú†vÙ%nó|¤ö<ÍÜ8ÑÄöe»›ždrŽþ>™?`Z}ÿAØ’_‡»gSÇÖ÷ù+¬U¦,1¤ö¯ˆ®\s_®1†ZÆáä~Ìp /{5°Û6s·†/¬¹g$£Ÿ±À´:Éÿ¢,Ñò¸0KÚAĵëwÂÒ xšO³kW»oˆßLØèõêsßíB–Y_2Bþ=»yEÀFѦ5»%òaªïù­â#Õž‰¼’Q…[–!ßk­݆ %ÿ@¢*áT~ïrn ÓìÉã ¼*í´}}9oÀqôÙ ®ÛémŸÈ^û¡ìÉ Z ”ƒñU¥ÿËóê6_Ѫ¸ò¢?jßñaa îOÕÀm°ÅÛæ@ÉhRÎK"\}ò-ÏÐJÅô–mrÅ^ )­DQºBˆ—¹˜óô’:ëSOïã¹-m¤²;ÕÇÎp.Ÿ0²ÓiLù'Mø qxß*¬PBfÄ0m_vy9œÄ´(U šS½zÞ)Pá‘þóaà *Þ) Ü/ºˆ(€1­w ¶`_Ïu(>9þ|ÛÙ€&‡¡þï©%h4rþÄ$^F+ìÄOJO܃Ïýè›ý÷5igª.t×j ö[£•.0*Hîý(bDͼž7¹º=6l¶ïáûñ|uöÐC‘3Û¯aÏ#ÆrS¶Ø^ÇJßKúËë} ¸¼<À–r1<…xßl”›ýM´›3²ËýŠ\öwç|jöøt/p~¼µ ©bµ~Ø-ˈHpÔÅäÌmgÑ*xIÊÒöõúÇKIHÑA½4,ÚU†?Ú Ù,gV5¯¿´<8UhÌ»P¨ígÞ%Cýšk~ízÖÉ‚ÍHØý–&o,ªKO®w¤é†¦ydµpåX@R³åF—ßJ|žlUÆ®Ûß­cž©Ým Qzwë[w.Áe·¥’kSS|½=îv}°€œçy³×“õžN”ÅØŽøZ¹÷ñƒ2n'N#G`8P2.k¨ö™&Ôµ“/Zîû1ÌÒŸ]6Ec½¼Ð"àu†²ün7?‹)ö•9Rü3w‰ù5y‹G_½ªîÚW Ac«éÃ1!9;LC£¥+¯eHºàK¢\êIûÓ×Ñ$ÍŠ+MJZV„©uÝ“ïÌçÑ4ÀDÉ ÁŽÎ§¤‰ÌùXÒ}äÜ—¼îŠÅ¾bæ¡ìN?Û×)/^ñÛ .ì¬|Ø“àôÛÓÚ>À/MÎ$å9±BìÐè𷟽Óã׃QœxfüßIŠÃ<™N˜¸wÆF'Wãøêkö4Z]vG¼›†[N€Ù–áa<»dèphËÔ¤\ÂM”(iµ@±sjŸ²WÐÁ°"ŸÖ)þ4x7ZÝp@ÀÇnÆb0Q^nV+Õu7Eäe óWTr­X€•%ûhB‡Íéþƒ:ú¬¶¿­+ãaŒM©à^(÷ݤ—ÃKR:Ó™ÐýÞ‹lkc~ŸW!hhà …·’ÌRµ•â~Z>„:Õ«¢tì""gÈ‚›'²˜Ù Õ¨¡¨ÇAª¶¿1â;0—"NCo!.^[Þ‚qFäÔÂëQuÇ«¨Ì—+õާÏÌ=·±23 w‰%Š"o‚¬ÄL 4ÙE@J¦/W;šÑ ÏìÒû¿Äüˆ‡ªÒl•àN[‰ÛÍCÛV3ó …ƒT@sm(»¥ý÷TBÁ[é¢ôÇQÃiîNt¡ÿ„óÅ@(£uQ è¤C NŽì„2Xö'ÞX«ŽŒä¿aÉrP¬Î˜mAŒ•1»'«„ÊÛ5œzÇU^/pÛI@FÆàq~”úÔÁì’+;ñR7Ijr"öÕ W^|Ã[øóáL`{î‡ðTã`„á†h¹­%§ûÛǬ>ñ‹ü«†€D‹|U “ùuølâ¼£MúeüdÃDfk9l9»¼/ · >oøÊùµ5@¨Øg~AÆ^¢")ç óL×…_W‰ÓŒ–FhaN“\4ÇHNYZÂÞBj×ÏĦ‡Ÿ®ŽŠR”ïèX$³oÇ{ìtÊð«ìmÄvNÓ+?¬ªªò<ï™eèÿ¾Ú0>‡a§Ï8ù¯ P8±eå®Ö5§ܺϫg¬YGŠíoêü¾­¾ŠgIà’8z+œˆuƒ‰x7 )7>_R×':÷ÄË)ÍÜF¶žDÛ¾~ê*5ìÕSì”z¥}ü+ÂrÞ±q>ºÜftóSÓ_Ų©è«yA†Ÿ¶¯d¬8Q–.á6–¾#£•í*äf \kþ”»…Ò7nQ'Ø\0V)Ékí»/¬P Àâº(ÐÚМ˲¿2C²Qc¬ìŽúyð~ÀùÕ½öáqø«¦üs³X™º;Ä~±HêËŸùÍïôFw“£„š4Jº*iotzvê#s[i¬[ª2Á¼á%ÃRÂdã‡ñLñÔñâ g½ÉÓÇ­<lô(‡Ýµn&)À¡®¦¤P€~tèB*Îöš„”Œ!SŒ×¹nÕË2ÚmÔß?ò× 6^ ×^L ˆ¡¡¹ÄdFIÍ£9÷¥jŽmZp©[©X¾‘š-…¢H£þ[Ö¶b²ât1yŸ¦ÊßðãÉÃîGvÖ]‰3{ýÏÚ5 òþdÔYB•*”"$ù ÆAÍÓ&wjläSyäîÁkôcŽ¥¦È9“¹ÆÔ(µ«ïB¡ÑÚpr¥|ióû¹R³úÁÔÙ”mÊ¢sÖÉÌ ‘¤¯BÕ>S; Pÿ/²§D-/WÐo’õÚ$oI­PòŸ+ΰ9” ­/˜›NÙ&Z­ú)Ï…‡|¸nj/ÁÕU÷ïÇrجêì’8ÅßYyN™œ/‹ûT‡Ü8àÀ·Ý«iƒÞRåû5\Féê\y ]ÁuüÒ2J牚c_½E1±!·2¯œŒ[+Á²Ò3è°R÷Ô”Tm4Yc;q ^…Zš-ÂýÔ$HtY]†<2÷3;ùPïrßè#,ò!eh]ÙØL8Ìýû-úJokê FêHGÚ«ñ7 é`¦ô’=ìóñ{œ\û:)®ÄTÅ9ÒE­;ðPvä)èÇ„¤¢³Öœë*—0d¶Ì’¸²n_îÉ$[áðÌ.~Hÿ°Ë¿î”†Ç?Œúlw Ùñ|#ÙOã–óé¾”j—/ßþõxˆÞ!äw=8™~’Ïb|œsú ±UlHêàþ:%éÏp+F S´½çÛÆ‡fv±b R,d žïøû®u”scÁâ¹ÅfÎî*ò°!©µK´øB¿!;åY̽ÁDÏg—†ó®ÊǰN²µ žed¯©¸ttfä·…3Ëò9–ŠËi~§B­R.1œrSÀfñË‘DŠ–>˜D3븺ùû…•T2_ñ?¾ô>úÊõS~¦‰&SnP<]„t\ƒ²½­)=_jmþζï~ñäð'ŸâBØÈT Öð1êtÁëÇ«M{Ü[–4öh‚Ò‘•)®pÞXkuOü™Óbð;©ÿg´ÿþ+€§ÏÜœ}|½½œ}´ÿÇÎ ­endstream endobj 704 0 obj << /Type /Font /Subtype /Type1 /Encoding 3952 0 R /FirstChar 2 /LastChar 150 /Widths 3964 0 R /BaseFont /GPVFVE+NimbusRomNo9L-Regu /FontDescriptor 702 0 R >> endobj 702 0 obj << /Ascent 678 /CapHeight 651 /Descent -216 /FontName /GPVFVE+NimbusRomNo9L-Regu /ItalicAngle 0 /StemV 85 /XHeight 450 /FontBBox [-168 -281 1000 924] /Flags 4 /CharSet (/fi/fl/exclam/quotedbl/numbersign/dollar/ampersand/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/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/braceright/quotedblleft/quotedblright/bullet/endash) /FontFile 703 0 R >> endobj 3964 0 obj [556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 408 500 500 0 778 333 333 333 0 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 0 564 0 0 0 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 0 667 556 611 722 722 944 722 722 611 333 0 333 0 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 0 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 444 350 500 ] endobj 705 0 obj << /Type /Pages /Count 6 /Parent 3965 0 R /Kids [698 0 R 707 0 R 744 0 R 786 0 R 835 0 R 887 0 R] >> endobj 930 0 obj << /Type /Pages /Count 6 /Parent 3965 0 R /Kids [922 0 R 932 0 R 937 0 R 946 0 R 969 0 R 978 0 R] >> endobj 1000 0 obj << /Type /Pages /Count 6 /Parent 3965 0 R /Kids [986 0 R 1002 0 R 1011 0 R 1017 0 R 1023 0 R 1050 0 R] >> endobj 1057 0 obj << /Type /Pages /Count 6 /Parent 3965 0 R /Kids [1054 0 R 1059 0 R 1065 0 R 1069 0 R 1073 0 R 1077 0 R] >> endobj 1084 0 obj << /Type /Pages /Count 6 /Parent 3965 0 R /Kids [1081 0 R 1086 0 R 1090 0 R 1094 0 R 1099 0 R 1104 0 R] >> endobj 1111 0 obj << /Type /Pages /Count 6 /Parent 3965 0 R /Kids [1108 0 R 1113 0 R 1119 0 R 1128 0 R 1137 0 R 1149 0 R] >> endobj 1164 0 obj << /Type /Pages /Count 6 /Parent 3966 0 R /Kids [1155 0 R 1167 0 R 1194 0 R 1219 0 R 1243 0 R 1291 0 R] >> endobj 1384 0 obj << /Type /Pages /Count 6 /Parent 3966 0 R /Kids [1340 0 R 1398 0 R 1426 0 R 1460 0 R 1485 0 R 1508 0 R] >> endobj 1560 0 obj << /Type /Pages /Count 6 /Parent 3966 0 R /Kids [1541 0 R 1564 0 R 1578 0 R 1607 0 R 1626 0 R 1640 0 R] >> endobj 1688 0 obj << /Type /Pages /Count 6 /Parent 3966 0 R /Kids [1657 0 R 1701 0 R 1740 0 R 1770 0 R 1803 0 R 1817 0 R] >> endobj 1839 0 obj << /Type /Pages /Count 6 /Parent 3966 0 R /Kids [1828 0 R 1841 0 R 1853 0 R 1869 0 R 1888 0 R 1903 0 R] >> endobj 1921 0 obj << /Type /Pages /Count 6 /Parent 3966 0 R /Kids [1914 0 R 1924 0 R 1939 0 R 1955 0 R 1970 0 R 1985 0 R] >> endobj 2008 0 obj << /Type /Pages /Count 6 /Parent 3967 0 R /Kids [2000 0 R 2016 0 R 2028 0 R 2043 0 R 2054 0 R 2094 0 R] >> endobj 2150 0 obj << /Type /Pages /Count 6 /Parent 3967 0 R /Kids [2128 0 R 2158 0 R 2185 0 R 2202 0 R 2228 0 R 2249 0 R] >> endobj 2273 0 obj << /Type /Pages /Count 6 /Parent 3967 0 R /Kids [2266 0 R 2276 0 R 2290 0 R 2321 0 R 2373 0 R 2421 0 R] >> endobj 2464 0 obj << /Type /Pages /Count 6 /Parent 3967 0 R /Kids [2447 0 R 2466 0 R 2488 0 R 2508 0 R 2526 0 R 2546 0 R] >> endobj 2589 0 obj << /Type /Pages /Count 6 /Parent 3967 0 R /Kids [2571 0 R 2591 0 R 2613 0 R 2629 0 R 2642 0 R 2657 0 R] >> endobj 2683 0 obj << /Type /Pages /Count 6 /Parent 3967 0 R /Kids [2674 0 R 2690 0 R 2707 0 R 2713 0 R 2730 0 R 2741 0 R] >> endobj 2785 0 obj << /Type /Pages /Count 6 /Parent 3968 0 R /Kids [2772 0 R 2787 0 R 2803 0 R 2813 0 R 2825 0 R 2839 0 R] >> endobj 2922 0 obj << /Type /Pages /Count 6 /Parent 3968 0 R /Kids [2864 0 R 2931 0 R 2977 0 R 3019 0 R 3041 0 R 3063 0 R] >> endobj 3101 0 obj << /Type /Pages /Count 6 /Parent 3968 0 R /Kids [3087 0 R 3104 0 R 3126 0 R 3144 0 R 3159 0 R 3175 0 R] >> endobj 3215 0 obj << /Type /Pages /Count 6 /Parent 3968 0 R /Kids [3194 0 R 3217 0 R 3237 0 R 3290 0 R 3310 0 R 3334 0 R] >> endobj 3391 0 obj << /Type /Pages /Count 6 /Parent 3968 0 R /Kids [3365 0 R 3399 0 R 3422 0 R 3435 0 R 3449 0 R 3460 0 R] >> endobj 3522 0 obj << /Type /Pages /Count 6 /Parent 3968 0 R /Kids [3490 0 R 3530 0 R 3549 0 R 3569 0 R 3588 0 R 3604 0 R] >> endobj 3624 0 obj << /Type /Pages /Count 6 /Parent 3969 0 R /Kids [3621 0 R 3626 0 R 3724 0 R 3819 0 R 3868 0 R 3924 0 R] >> endobj 3965 0 obj << /Type /Pages /Count 36 /Parent 3970 0 R /Kids [705 0 R 930 0 R 1000 0 R 1057 0 R 1084 0 R 1111 0 R] >> endobj 3966 0 obj << /Type /Pages /Count 36 /Parent 3970 0 R /Kids [1164 0 R 1384 0 R 1560 0 R 1688 0 R 1839 0 R 1921 0 R] >> endobj 3967 0 obj << /Type /Pages /Count 36 /Parent 3970 0 R /Kids [2008 0 R 2150 0 R 2273 0 R 2464 0 R 2589 0 R 2683 0 R] >> endobj 3968 0 obj << /Type /Pages /Count 36 /Parent 3970 0 R /Kids [2785 0 R 2922 0 R 3101 0 R 3215 0 R 3391 0 R 3522 0 R] >> endobj 3969 0 obj << /Type /Pages /Count 6 /Parent 3970 0 R /Kids [3624 0 R] >> endobj 3970 0 obj << /Type /Pages /Count 150 /Kids [3965 0 R 3966 0 R 3967 0 R 3968 0 R 3969 0 R] >> endobj 3971 0 obj << /Type /Outlines /First 7 0 R /Last 207 0 R /Count 24 >> endobj 695 0 obj << /Title 696 0 R /A 693 0 R /Parent 687 0 R /Prev 691 0 R >> endobj 691 0 obj << /Title 692 0 R /A 689 0 R /Parent 687 0 R /Next 695 0 R >> endobj 687 0 obj << /Title 688 0 R /A 685 0 R /Parent 207 0 R /Prev 671 0 R /First 691 0 R /Last 695 0 R /Count -2 >> endobj 683 0 obj << /Title 684 0 R /A 681 0 R /Parent 671 0 R /Prev 679 0 R >> endobj 679 0 obj << /Title 680 0 R /A 677 0 R /Parent 671 0 R /Prev 675 0 R /Next 683 0 R >> endobj 675 0 obj << /Title 676 0 R /A 673 0 R /Parent 671 0 R /Next 679 0 R >> endobj 671 0 obj << /Title 672 0 R /A 669 0 R /Parent 207 0 R /Prev 655 0 R /Next 687 0 R /First 675 0 R /Last 683 0 R /Count -3 >> endobj 667 0 obj << /Title 668 0 R /A 665 0 R /Parent 655 0 R /Prev 663 0 R >> endobj 663 0 obj << /Title 664 0 R /A 661 0 R /Parent 655 0 R /Prev 659 0 R /Next 667 0 R >> endobj 659 0 obj << /Title 660 0 R /A 657 0 R /Parent 655 0 R /Next 663 0 R >> endobj 655 0 obj << /Title 656 0 R /A 653 0 R /Parent 207 0 R /Prev 639 0 R /Next 671 0 R /First 659 0 R /Last 667 0 R /Count -3 >> endobj 651 0 obj << /Title 652 0 R /A 649 0 R /Parent 639 0 R /Prev 647 0 R >> endobj 647 0 obj << /Title 648 0 R /A 645 0 R /Parent 639 0 R /Prev 643 0 R /Next 651 0 R >> endobj 643 0 obj << /Title 644 0 R /A 641 0 R /Parent 639 0 R /Next 647 0 R >> endobj 639 0 obj << /Title 640 0 R /A 637 0 R /Parent 207 0 R /Prev 627 0 R /Next 655 0 R /First 643 0 R /Last 651 0 R /Count -3 >> endobj 635 0 obj << /Title 636 0 R /A 633 0 R /Parent 627 0 R /Prev 631 0 R >> endobj 631 0 obj << /Title 632 0 R /A 629 0 R /Parent 627 0 R /Next 635 0 R >> endobj 627 0 obj << /Title 628 0 R /A 625 0 R /Parent 207 0 R /Prev 615 0 R /Next 639 0 R /First 631 0 R /Last 635 0 R /Count -2 >> endobj 623 0 obj << /Title 624 0 R /A 621 0 R /Parent 615 0 R /Prev 619 0 R >> endobj 619 0 obj << /Title 620 0 R /A 617 0 R /Parent 615 0 R /Next 623 0 R >> endobj 615 0 obj << /Title 616 0 R /A 613 0 R /Parent 207 0 R /Prev 603 0 R /Next 627 0 R /First 619 0 R /Last 623 0 R /Count -2 >> endobj 611 0 obj << /Title 612 0 R /A 609 0 R /Parent 603 0 R /Prev 607 0 R >> endobj 607 0 obj << /Title 608 0 R /A 605 0 R /Parent 603 0 R /Next 611 0 R >> endobj 603 0 obj << /Title 604 0 R /A 601 0 R /Parent 207 0 R /Prev 591 0 R /Next 615 0 R /First 607 0 R /Last 611 0 R /Count -2 >> endobj 599 0 obj << /Title 600 0 R /A 597 0 R /Parent 591 0 R /Prev 595 0 R >> endobj 595 0 obj << /Title 596 0 R /A 593 0 R /Parent 591 0 R /Next 599 0 R >> endobj 591 0 obj << /Title 592 0 R /A 589 0 R /Parent 207 0 R /Prev 579 0 R /Next 603 0 R /First 595 0 R /Last 599 0 R /Count -2 >> endobj 587 0 obj << /Title 588 0 R /A 585 0 R /Parent 579 0 R /Prev 583 0 R >> endobj 583 0 obj << /Title 584 0 R /A 581 0 R /Parent 579 0 R /Next 587 0 R >> endobj 579 0 obj << /Title 580 0 R /A 577 0 R /Parent 207 0 R /Prev 567 0 R /Next 591 0 R /First 583 0 R /Last 587 0 R /Count -2 >> endobj 575 0 obj << /Title 576 0 R /A 573 0 R /Parent 567 0 R /Prev 571 0 R >> endobj 571 0 obj << /Title 572 0 R /A 569 0 R /Parent 567 0 R /Next 575 0 R >> endobj 567 0 obj << /Title 568 0 R /A 565 0 R /Parent 207 0 R /Prev 559 0 R /Next 579 0 R /First 571 0 R /Last 575 0 R /Count -2 >> endobj 563 0 obj << /Title 564 0 R /A 561 0 R /Parent 559 0 R >> endobj 559 0 obj << /Title 560 0 R /A 557 0 R /Parent 207 0 R /Prev 551 0 R /Next 567 0 R /First 563 0 R /Last 563 0 R /Count -1 >> endobj 555 0 obj << /Title 556 0 R /A 553 0 R /Parent 551 0 R >> endobj 551 0 obj << /Title 552 0 R /A 549 0 R /Parent 207 0 R /Prev 543 0 R /Next 559 0 R /First 555 0 R /Last 555 0 R /Count -1 >> endobj 547 0 obj << /Title 548 0 R /A 545 0 R /Parent 543 0 R >> endobj 543 0 obj << /Title 544 0 R /A 541 0 R /Parent 207 0 R /Prev 535 0 R /Next 551 0 R /First 547 0 R /Last 547 0 R /Count -1 >> endobj 539 0 obj << /Title 540 0 R /A 537 0 R /Parent 535 0 R >> endobj 535 0 obj << /Title 536 0 R /A 533 0 R /Parent 207 0 R /Prev 527 0 R /Next 543 0 R /First 539 0 R /Last 539 0 R /Count -1 >> endobj 531 0 obj << /Title 532 0 R /A 529 0 R /Parent 527 0 R >> endobj 527 0 obj << /Title 528 0 R /A 525 0 R /Parent 207 0 R /Prev 519 0 R /Next 535 0 R /First 531 0 R /Last 531 0 R /Count -1 >> endobj 523 0 obj << /Title 524 0 R /A 521 0 R /Parent 519 0 R >> endobj 519 0 obj << /Title 520 0 R /A 517 0 R /Parent 207 0 R /Prev 511 0 R /Next 527 0 R /First 523 0 R /Last 523 0 R /Count -1 >> endobj 515 0 obj << /Title 516 0 R /A 513 0 R /Parent 511 0 R >> endobj 511 0 obj << /Title 512 0 R /A 509 0 R /Parent 207 0 R /Prev 503 0 R /Next 519 0 R /First 515 0 R /Last 515 0 R /Count -1 >> endobj 507 0 obj << /Title 508 0 R /A 505 0 R /Parent 503 0 R >> endobj 503 0 obj << /Title 504 0 R /A 501 0 R /Parent 207 0 R /Prev 495 0 R /Next 511 0 R /First 507 0 R /Last 507 0 R /Count -1 >> endobj 499 0 obj << /Title 500 0 R /A 497 0 R /Parent 495 0 R >> endobj 495 0 obj << /Title 496 0 R /A 493 0 R /Parent 207 0 R /Prev 487 0 R /Next 503 0 R /First 499 0 R /Last 499 0 R /Count -1 >> endobj 491 0 obj << /Title 492 0 R /A 489 0 R /Parent 487 0 R >> endobj 487 0 obj << /Title 488 0 R /A 485 0 R /Parent 207 0 R /Prev 475 0 R /Next 495 0 R /First 491 0 R /Last 491 0 R /Count -1 >> endobj 483 0 obj << /Title 484 0 R /A 481 0 R /Parent 475 0 R /Prev 479 0 R >> endobj 479 0 obj << /Title 480 0 R /A 477 0 R /Parent 475 0 R /Next 483 0 R >> endobj 475 0 obj << /Title 476 0 R /A 473 0 R /Parent 207 0 R /Prev 459 0 R /Next 487 0 R /First 479 0 R /Last 483 0 R /Count -2 >> endobj 471 0 obj << /Title 472 0 R /A 469 0 R /Parent 459 0 R /Prev 467 0 R >> endobj 467 0 obj << /Title 468 0 R /A 465 0 R /Parent 459 0 R /Prev 463 0 R /Next 471 0 R >> endobj 463 0 obj << /Title 464 0 R /A 461 0 R /Parent 459 0 R /Next 467 0 R >> endobj 459 0 obj << /Title 460 0 R /A 457 0 R /Parent 207 0 R /Prev 447 0 R /Next 475 0 R /First 463 0 R /Last 471 0 R /Count -3 >> endobj 455 0 obj << /Title 456 0 R /A 453 0 R /Parent 447 0 R /Prev 451 0 R >> endobj 451 0 obj << /Title 452 0 R /A 449 0 R /Parent 447 0 R /Next 455 0 R >> endobj 447 0 obj << /Title 448 0 R /A 445 0 R /Parent 207 0 R /Prev 435 0 R /Next 459 0 R /First 451 0 R /Last 455 0 R /Count -2 >> endobj 443 0 obj << /Title 444 0 R /A 441 0 R /Parent 435 0 R /Prev 439 0 R >> endobj 439 0 obj << /Title 440 0 R /A 437 0 R /Parent 435 0 R /Next 443 0 R >> endobj 435 0 obj << /Title 436 0 R /A 433 0 R /Parent 207 0 R /Prev 423 0 R /Next 447 0 R /First 439 0 R /Last 443 0 R /Count -2 >> endobj 431 0 obj << /Title 432 0 R /A 429 0 R /Parent 423 0 R /Prev 427 0 R >> endobj 427 0 obj << /Title 428 0 R /A 425 0 R /Parent 423 0 R /Next 431 0 R >> endobj 423 0 obj << /Title 424 0 R /A 421 0 R /Parent 207 0 R /Prev 411 0 R /Next 435 0 R /First 427 0 R /Last 431 0 R /Count -2 >> endobj 419 0 obj << /Title 420 0 R /A 417 0 R /Parent 411 0 R /Prev 415 0 R >> endobj 415 0 obj << /Title 416 0 R /A 413 0 R /Parent 411 0 R /Next 419 0 R >> endobj 411 0 obj << /Title 412 0 R /A 409 0 R /Parent 207 0 R /Prev 399 0 R /Next 423 0 R /First 415 0 R /Last 419 0 R /Count -2 >> endobj 407 0 obj << /Title 408 0 R /A 405 0 R /Parent 399 0 R /Prev 403 0 R >> endobj 403 0 obj << /Title 404 0 R /A 401 0 R /Parent 399 0 R /Next 407 0 R >> endobj 399 0 obj << /Title 400 0 R /A 397 0 R /Parent 207 0 R /Prev 383 0 R /Next 411 0 R /First 403 0 R /Last 407 0 R /Count -2 >> endobj 395 0 obj << /Title 396 0 R /A 393 0 R /Parent 383 0 R /Prev 391 0 R >> endobj 391 0 obj << /Title 392 0 R /A 389 0 R /Parent 383 0 R /Prev 387 0 R /Next 395 0 R >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R /Parent 383 0 R /Next 391 0 R >> endobj 383 0 obj << /Title 384 0 R /A 381 0 R /Parent 207 0 R /Prev 371 0 R /Next 399 0 R /First 387 0 R /Last 395 0 R /Count -3 >> endobj 379 0 obj << /Title 380 0 R /A 377 0 R /Parent 371 0 R /Prev 375 0 R >> endobj 375 0 obj << /Title 376 0 R /A 373 0 R /Parent 371 0 R /Next 379 0 R >> endobj 371 0 obj << /Title 372 0 R /A 369 0 R /Parent 207 0 R /Prev 355 0 R /Next 383 0 R /First 375 0 R /Last 379 0 R /Count -2 >> endobj 367 0 obj << /Title 368 0 R /A 365 0 R /Parent 355 0 R /Prev 363 0 R >> endobj 363 0 obj << /Title 364 0 R /A 361 0 R /Parent 355 0 R /Prev 359 0 R /Next 367 0 R >> endobj 359 0 obj << /Title 360 0 R /A 357 0 R /Parent 355 0 R /Next 363 0 R >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R /Parent 207 0 R /Prev 343 0 R /Next 371 0 R /First 359 0 R /Last 367 0 R /Count -3 >> endobj 351 0 obj << /Title 352 0 R /A 349 0 R /Parent 343 0 R /Prev 347 0 R >> endobj 347 0 obj << /Title 348 0 R /A 345 0 R /Parent 343 0 R /Next 351 0 R >> endobj 343 0 obj << /Title 344 0 R /A 341 0 R /Parent 207 0 R /Prev 331 0 R /Next 355 0 R /First 347 0 R /Last 351 0 R /Count -2 >> endobj 339 0 obj << /Title 340 0 R /A 337 0 R /Parent 331 0 R /Prev 335 0 R >> endobj 335 0 obj << /Title 336 0 R /A 333 0 R /Parent 331 0 R /Next 339 0 R >> endobj 331 0 obj << /Title 332 0 R /A 329 0 R /Parent 207 0 R /Prev 319 0 R /Next 343 0 R /First 335 0 R /Last 339 0 R /Count -2 >> endobj 327 0 obj << /Title 328 0 R /A 325 0 R /Parent 319 0 R /Prev 323 0 R >> endobj 323 0 obj << /Title 324 0 R /A 321 0 R /Parent 319 0 R /Next 327 0 R >> endobj 319 0 obj << /Title 320 0 R /A 317 0 R /Parent 207 0 R /Prev 307 0 R /Next 331 0 R /First 323 0 R /Last 327 0 R /Count -2 >> endobj 315 0 obj << /Title 316 0 R /A 313 0 R /Parent 307 0 R /Prev 311 0 R >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R /Parent 307 0 R /Next 315 0 R >> endobj 307 0 obj << /Title 308 0 R /A 305 0 R /Parent 207 0 R /Prev 295 0 R /Next 319 0 R /First 311 0 R /Last 315 0 R /Count -2 >> endobj 303 0 obj << /Title 304 0 R /A 301 0 R /Parent 295 0 R /Prev 299 0 R >> endobj 299 0 obj << /Title 300 0 R /A 297 0 R /Parent 295 0 R /Next 303 0 R >> endobj 295 0 obj << /Title 296 0 R /A 293 0 R /Parent 207 0 R /Prev 283 0 R /Next 307 0 R /First 299 0 R /Last 303 0 R /Count -2 >> endobj 291 0 obj << /Title 292 0 R /A 289 0 R /Parent 283 0 R /Prev 287 0 R >> endobj 287 0 obj << /Title 288 0 R /A 285 0 R /Parent 283 0 R /Next 291 0 R >> endobj 283 0 obj << /Title 284 0 R /A 281 0 R /Parent 207 0 R /Prev 271 0 R /Next 295 0 R /First 287 0 R /Last 291 0 R /Count -2 >> endobj 279 0 obj << /Title 280 0 R /A 277 0 R /Parent 271 0 R /Prev 275 0 R >> endobj 275 0 obj << /Title 276 0 R /A 273 0 R /Parent 271 0 R /Next 279 0 R >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R /Parent 207 0 R /Prev 259 0 R /Next 283 0 R /First 275 0 R /Last 279 0 R /Count -2 >> endobj 267 0 obj << /Title 268 0 R /A 265 0 R /Parent 259 0 R /Prev 263 0 R >> endobj 263 0 obj << /Title 264 0 R /A 261 0 R /Parent 259 0 R /Next 267 0 R >> endobj 259 0 obj << /Title 260 0 R /A 257 0 R /Parent 207 0 R /Prev 243 0 R /Next 271 0 R /First 263 0 R /Last 267 0 R /Count -2 >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R /Parent 243 0 R /Prev 251 0 R >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R /Parent 243 0 R /Prev 247 0 R /Next 255 0 R >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R /Parent 243 0 R /Next 251 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R /Parent 207 0 R /Prev 227 0 R /Next 259 0 R /First 247 0 R /Last 255 0 R /Count -3 >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R /Parent 227 0 R /Prev 235 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R /Parent 227 0 R /Prev 231 0 R /Next 239 0 R >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R /Parent 227 0 R /Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R /Parent 207 0 R /Prev 211 0 R /Next 243 0 R /First 231 0 R /Last 239 0 R /Count -3 >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R /Parent 211 0 R /Prev 219 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R /Parent 211 0 R /Prev 215 0 R /Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R /Parent 211 0 R /Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R /Parent 207 0 R /Next 227 0 R /First 215 0 R /Last 223 0 R /Count -3 >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R /Parent 3971 0 R /Prev 179 0 R /First 211 0 R /Last 687 0 R /Count -41 >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R /Parent 199 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 179 0 R /Prev 183 0 R /First 203 0 R /Last 203 0 R /Count -1 >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R /Parent 183 0 R /Prev 191 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R /Parent 183 0 R /Prev 187 0 R /Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 183 0 R /Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R /A 181 0 R /Parent 179 0 R /Next 199 0 R /First 187 0 R /Last 195 0 R /Count -3 >> endobj 179 0 obj << /Title 180 0 R /A 177 0 R /Parent 3971 0 R /Prev 171 0 R /Next 207 0 R /First 183 0 R /Last 199 0 R /Count -2 >> endobj 175 0 obj << /Title 176 0 R /A 173 0 R /Parent 171 0 R >> endobj 171 0 obj << /Title 172 0 R /A 169 0 R /Parent 3971 0 R /Prev 163 0 R /Next 179 0 R /First 175 0 R /Last 175 0 R /Count -1 >> endobj 167 0 obj << /Title 168 0 R /A 165 0 R /Parent 163 0 R >> endobj 163 0 obj << /Title 164 0 R /A 161 0 R /Parent 3971 0 R /Prev 155 0 R /Next 171 0 R /First 167 0 R /Last 167 0 R /Count -1 >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 155 0 R >> endobj 155 0 obj << /Title 156 0 R /A 153 0 R /Parent 3971 0 R /Prev 147 0 R /Next 163 0 R /First 159 0 R /Last 159 0 R /Count -1 >> endobj 151 0 obj << /Title 152 0 R /A 149 0 R /Parent 147 0 R >> endobj 147 0 obj << /Title 148 0 R /A 145 0 R /Parent 3971 0 R /Prev 139 0 R /Next 155 0 R /First 151 0 R /Last 151 0 R /Count -1 >> endobj 143 0 obj << /Title 144 0 R /A 141 0 R /Parent 139 0 R >> endobj 139 0 obj << /Title 140 0 R /A 137 0 R /Parent 3971 0 R /Prev 135 0 R /Next 147 0 R /First 143 0 R /Last 143 0 R /Count -1 >> endobj 135 0 obj << /Title 136 0 R /A 133 0 R /Parent 3971 0 R /Prev 131 0 R /Next 139 0 R >> endobj 131 0 obj << /Title 132 0 R /A 129 0 R /Parent 3971 0 R /Prev 119 0 R /Next 135 0 R >> endobj 127 0 obj << /Title 128 0 R /A 125 0 R /Parent 119 0 R /Prev 123 0 R >> endobj 123 0 obj << /Title 124 0 R /A 121 0 R /Parent 119 0 R /Next 127 0 R >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 3971 0 R /Prev 115 0 R /Next 131 0 R /First 123 0 R /Last 127 0 R /Count -2 >> endobj 115 0 obj << /Title 116 0 R /A 113 0 R /Parent 3971 0 R /Prev 111 0 R /Next 119 0 R >> endobj 111 0 obj << /Title 112 0 R /A 109 0 R /Parent 3971 0 R /Prev 107 0 R /Next 115 0 R >> endobj 107 0 obj << /Title 108 0 R /A 105 0 R /Parent 3971 0 R /Prev 103 0 R /Next 111 0 R >> endobj 103 0 obj << /Title 104 0 R /A 101 0 R /Parent 3971 0 R /Prev 99 0 R /Next 107 0 R >> endobj 99 0 obj << /Title 100 0 R /A 97 0 R /Parent 3971 0 R /Prev 95 0 R /Next 103 0 R >> endobj 95 0 obj << /Title 96 0 R /A 93 0 R /Parent 3971 0 R /Prev 91 0 R /Next 99 0 R >> endobj 91 0 obj << /Title 92 0 R /A 89 0 R /Parent 3971 0 R /Prev 87 0 R /Next 95 0 R >> endobj 87 0 obj << /Title 88 0 R /A 85 0 R /Parent 3971 0 R /Prev 83 0 R /Next 91 0 R >> endobj 83 0 obj << /Title 84 0 R /A 81 0 R /Parent 3971 0 R /Prev 75 0 R /Next 87 0 R >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 75 0 R >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 3971 0 R /Prev 59 0 R /Next 83 0 R /First 79 0 R /Last 79 0 R /Count -1 >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 59 0 R /Prev 67 0 R >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 59 0 R /Prev 63 0 R /Next 71 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 59 0 R /Next 67 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 3971 0 R /Prev 55 0 R /Next 75 0 R /First 63 0 R /Last 71 0 R /Count -3 >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 3971 0 R /Prev 35 0 R /Next 59 0 R >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 43 0 R /Prev 47 0 R >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 43 0 R /Next 51 0 R >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 35 0 R /Prev 39 0 R /First 47 0 R /Last 51 0 R /Count -2 >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 35 0 R /Next 43 0 R >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 3971 0 R /Prev 7 0 R /Next 55 0 R /First 39 0 R /Last 43 0 R /Count -2 >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 7 0 R /Prev 27 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 7 0 R /Prev 23 0 R /Next 31 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 7 0 R /Prev 19 0 R /Next 27 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 7 0 R /Prev 15 0 R /Next 23 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 7 0 R /Prev 11 0 R /Next 19 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 3971 0 R /Next 35 0 R /First 11 0 R /Last 31 0 R /Count -6 >> endobj 3972 0 obj << /Names [(CCfits_8h_source) 1815 0 R (Doc-Start) 701 0 R (FITS_8h_source) 1165 0 R (Item.1) 993 0 R (Item.2) 994 0 R (Item.3) 995 0 R (Item.4) 996 0 R (Item.5) 997 0 R (Item.6) 998 0 R (Item.7) 999 0 R (Item.8) 1005 0 R (aboutXspec) 1007 0 R (ascii) 1041 0 R (binary) 1042 0 R (classCCfits_1_1AsciiTable) 1276 0 R (classCCfits_1_1AsciiTable_a1c5cfbf4c9bcecf8b0bee071fca37d32) 1534 0 R (classCCfits_1_1AsciiTable_a245630609bfb16d581263b7ee868ce10) 1505 0 R (classCCfits_1_1AsciiTable_a56e7f260511c4a4ee08c84d00c624913) 1188 0 R (classCCfits_1_1AsciiTable_a69d98cb082fc738212066f583242c67c) 1538 0 R (classCCfits_1_1AsciiTable_a7560ef2a9c29653a9685e6d20371e15e) 1506 0 R (classCCfits_1_1AsciiTable_addd0761345234235bd36d3dc46d452f6) 1522 0 R (classCCfits_1_1AsciiTable_aef13a5add47a41179c1f751c2235a17e) 1497 0 R (classCCfits_1_1BinTable) 1278 0 R (classCCfits_1_1BinTable_a04506e39335dd06136d276091f097cde) 1585 0 R (classCCfits_1_1BinTable_a1bb44b892d5ed7c6d7271c4fb4c637c0) 1596 0 R (classCCfits_1_1BinTable_a60e89ab762910b76155da983554d433d) 1602 0 R (classCCfits_1_1BinTable_a7a3775a258e59292fad79c41a08d0683) 1592 0 R (classCCfits_1_1BinTable_a7f144dbfdaa1a01331adf1bb83a9347a) 1605 0 R (classCCfits_1_1BinTable_a8d97ec9581e1c46111ce933c608b489a) 1604 0 R (classCCfits_1_1BinTable_a90cba1f7ee83d3c9f4471e0a2f317391) 1603 0 R (classCCfits_1_1Column) 1279 0 R (classCCfits_1_1Column_1_1InsufficientElements) 1280 0 R (classCCfits_1_1Column_1_1InsufficientElements_adcff54790608d00d99a0875aca20d637) 1936 0 R (classCCfits_1_1Column_1_1InvalidDataType) 1281 0 R (classCCfits_1_1Column_1_1InvalidDataType_abbb81fc1f80e951dfd27126b066e9444) 1952 0 R (classCCfits_1_1Column_1_1InvalidNumberOfRows) 1282 0 R (classCCfits_1_1Column_1_1InvalidNumberOfRows_a7cc6e2ce77b7c09c38fbb1d05a87f333) 1967 0 R (classCCfits_1_1Column_1_1InvalidRowNumber) 1283 0 R (classCCfits_1_1Column_1_1InvalidRowNumber_a3d6db55872b6cdcdb5d18bd7014f1c91) 1982 0 R (classCCfits_1_1Column_1_1InvalidRowParameter) 1284 0 R (classCCfits_1_1Column_1_1InvalidRowParameter_aaf877174a872100ca6d426d554fd73dd) 1997 0 R (classCCfits_1_1Column_1_1NoNullValue) 1285 0 R (classCCfits_1_1Column_1_1NoNullValue_afadcc0dd8cfeee82c4286469fc006e67) 2013 0 R (classCCfits_1_1Column_1_1RangeError) 1286 0 R (classCCfits_1_1Column_1_1RangeError_acc6fd24ee9941747185427552ff802b0) 2033 0 R (classCCfits_1_1Column_1_1WrongColumnType) 1287 0 R (classCCfits_1_1Column_1_1WrongColumnType_a4f6c37a9e65c940421b9909bc0f773ef) 2048 0 R (classCCfits_1_1Column_a00111b943e40d3f9276094615093d16f) 1766 0 R (classCCfits_1_1Column_a005f5d623d129e979d3ba1bd2bd0be17) 1719 0 R (classCCfits_1_1Column_a01773423bbd768e4fb22d43aa884da19) 1733 0 R (classCCfits_1_1Column_a01cd84a7155888aadc568231f908bd5e) 1689 0 R (classCCfits_1_1Column_a07f4db0fc1eb719f128555712977adc9) 1715 0 R (classCCfits_1_1Column_a09634d63a37f46d871ddee6ffa456fe7) 1675 0 R (classCCfits_1_1Column_a17c0c46a47a511536db34be16230f0b5) 1763 0 R (classCCfits_1_1Column_a206d06dd199e7c73c32864b06f760f77) 1801 0 R (classCCfits_1_1Column_a20d67e697b433cef52a8a3680bc1ba6f) 1717 0 R (classCCfits_1_1Column_a246fc3a403b5d9a83e7c607381d7d2f8) 1768 0 R (classCCfits_1_1Column_a29aba21352578c3bdb94cee15e5561f0) 1690 0 R (classCCfits_1_1Column_a2a85f49e6e72ed0b3619df9e586ad159) 1790 0 R (classCCfits_1_1Column_a3329c1be8b0491661be582b59710ba32) 1800 0 R (classCCfits_1_1Column_a3529fff681af7e826b31cb366dae9afa) 1735 0 R (classCCfits_1_1Column_a35fb61a8737112aa1d90e7081d0fb65c) 1694 0 R (classCCfits_1_1Column_a3a1f099043fecc7567eca702be5e6a41) 1782 0 R (classCCfits_1_1Column_a3ab461fa13db155ab8d5fd649cf0e9ba) 1673 0 R (classCCfits_1_1Column_a3dbc65c7f0ea3589ee4f81ce217e319d) 1767 0 R (classCCfits_1_1Column_a53c239a7eda28388ac278de7f5b6f59f) 1678 0 R (classCCfits_1_1Column_a5690eb92353a1b887cc8746bd1578353) 1765 0 R (classCCfits_1_1Column_a5b6d04384ee5608b7bf6f86e651b5a02) 1732 0 R (classCCfits_1_1Column_a5f3e2fe6f35970812ec010af5ed2ff0a) 1738 0 R (classCCfits_1_1Column_a636120f892e981e24fc7e29248c66a59) 1794 0 R (classCCfits_1_1Column_a6d952ee287b4764941a76eb59ceb450c) 1728 0 R (classCCfits_1_1Column_a6fe330555d7926430bd4fb72af3df248) 1704 0 R (classCCfits_1_1Column_a73d57c6cf6453ba5c934afa1cca64035) 1759 0 R (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) 1561 0 R (classCCfits_1_1Column_a7e6589bf0f95eaefc52eeb5c1a119b44) 1725 0 R (classCCfits_1_1Column_a7fd3388e536a354a54ee110f41e0c1f5) 1698 0 R (classCCfits_1_1Column_a8409427a876646e0f1846f55146872bc) 1691 0 R (classCCfits_1_1Column_a922e6694d82092fc487c406b74287ea0) 1710 0 R (classCCfits_1_1Column_a957053fb51a8024fe46bf0b3dfdcaa1e) 1696 0 R (classCCfits_1_1Column_a9e95e761de30327378669d11295de1cc) 1693 0 R (classCCfits_1_1Column_a9fc84f8c9cfc7aa45584f6115356bf81) 1762 0 R (classCCfits_1_1Column_aa21fb01249bbb97f4a3149e704634f61) 1692 0 R (classCCfits_1_1Column_aa73abbd02668c1d3a48e0b2e187be177) 1737 0 R (classCCfits_1_1Column_aa7a896f7365af06ed76c8c77b013ee1e) 1764 0 R (classCCfits_1_1Column_ab33449dbc7dd32f10d493e2b5470b739) 1734 0 R (classCCfits_1_1Column_ab4c9789b84aaf531fcccfa76e19e4fc4) 1799 0 R (classCCfits_1_1Column_ab5c2c865112b6610e89bb0829e35c6dd) 1670 0 R (classCCfits_1_1Column_aba3909f84c581320091c0e360de2ae94) 1797 0 R (classCCfits_1_1Column_ac6720082cfafae0e48779c82e809e4a9) 1695 0 R (classCCfits_1_1Column_acac40215c2eab8f9db13683536a9ea71) 1761 0 R (classCCfits_1_1Column_acf2fc78379fcf87368be58a5af5e17e6) 1796 0 R (classCCfits_1_1Column_ad11ca53a9ed8c8d60e12aff99cc757af) 1736 0 R (classCCfits_1_1Column_ad79fd54bd8997985b37cb6722777c4c0) 1788 0 R (classCCfits_1_1Column_ad9ce91e8e87c9a3b88b94ddfc9d42fd8) 1699 0 R (classCCfits_1_1Column_ae1529c918f00ce00419647715ae510ac) 1760 0 R (classCCfits_1_1Column_ae509fe7fb63dd53a12674eade9f8a53f) 1758 0 R (classCCfits_1_1Column_aeb67db3dcfa5eb20db8ccf540f1f1cae) 1722 0 R (classCCfits_1_1Column_af3c3c6cda70971b8f88fba3409222f91) 1798 0 R (classCCfits_1_1Column_af730bdf4681626ec457ba9d8286e3d50) 1697 0 R (classCCfits_1_1Column_afa347ea0046bd222d1b70346ec126332) 1785 0 R (classCCfits_1_1Column_afcd02b475ed7c08c391bc5917a9b3f06) 1663 0 R (classCCfits_1_1ExtHDU) 1288 0 R (classCCfits_1_1ExtHDU_1_1WrongExtensionType) 1289 0 R (classCCfits_1_1ExtHDU_1_1WrongExtensionType_a1c51f9e5196cb93fc2afee6ad95665cd) 2281 0 R (classCCfits_1_1ExtHDU_a010ebcefb99b5855c5347cfa0ce30dec) 2146 0 R (classCCfits_1_1ExtHDU_a06d5f1ebd32e0228790c8b4e4b57e2e4) 2088 0 R (classCCfits_1_1ExtHDU_a088cce4e4843ea71af6047355be29c9d) 2161 0 R (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) 1576 0 R (classCCfits_1_1ExtHDU_a16730a075858cd50bfa3daad60c0a1c0) 2120 0 R (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) 1575 0 R (classCCfits_1_1ExtHDU_a1ea37193efa315fd47f0f104f08aae88) 2122 0 R (classCCfits_1_1ExtHDU_a1f3af0a3897c9ad9d6653ca510e69852) 2153 0 R (classCCfits_1_1ExtHDU_a26d0af71eaf7ad073ba160143c2a8f56) 2123 0 R (classCCfits_1_1ExtHDU_a306b179a8566fdb70d54747f9857f089) 2163 0 R (classCCfits_1_1ExtHDU_a37d651c1eb3f2ac633fd03a01c33573e) 2106 0 R (classCCfits_1_1ExtHDU_a389580abe139d17f485ba9fd31e17f3f) 2155 0 R (classCCfits_1_1ExtHDU_a51de27149b24a20f35c6449615380799) 2135 0 R (classCCfits_1_1ExtHDU_a58be2cbfe5c11246e8c2269e3ffe69ee) 2060 0 R (classCCfits_1_1ExtHDU_a5a480387701525f75ea450dac7510f23) 2091 0 R (classCCfits_1_1ExtHDU_a5e2785377c404f05dc948db844c6eec7) 2116 0 R (classCCfits_1_1ExtHDU_a768bf03f9c90df0c6b8c4fc6ae227fe5) 2110 0 R (classCCfits_1_1ExtHDU_a7a72093d5babb15f212ab3018536e98e) 2124 0 R (classCCfits_1_1ExtHDU_a7c62fe03c55892e7bb4a126b775c72e6) 2148 0 R (classCCfits_1_1ExtHDU_a7d507e3cc7d2bf23bc68091ea72467d9) 2133 0 R (classCCfits_1_1ExtHDU_a8062cc5b2902b4c55991e126f52fb37b) 2108 0 R (classCCfits_1_1ExtHDU_a8d4afc93c3eb152b88e985cadee31f42) 2125 0 R (classCCfits_1_1ExtHDU_a921ed3185671c8647e844d4a60e9296f) 2154 0 R (classCCfits_1_1ExtHDU_a9942fedcef3502a764ee25b143acdfb1) 2092 0 R (classCCfits_1_1ExtHDU_a99d509bf1374ace30a48508dffad25d5) 2063 0 R (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) 2087 0 R (classCCfits_1_1ExtHDU_aa01c75db71c10def95aac15f1ab31c56) 2118 0 R (classCCfits_1_1ExtHDU_aa3b17f06451c8d1bf07e1e1829749c04) 2166 0 R (classCCfits_1_1ExtHDU_aa404733a67606f27fc75c26ca65c283d) 2152 0 R (classCCfits_1_1ExtHDU_aaee3fda1eb075ef4ee7a9178114bd00d) 2090 0 R (classCCfits_1_1ExtHDU_ab121d5ab64abcc0a5df4ca7955bec2e9) 2089 0 R (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) 2151 0 R (classCCfits_1_1ExtHDU_ab94cb470d13b5a574728c49589963a36) 2126 0 R (classCCfits_1_1ExtHDU_abed636de0e6946e23bc08a6e5b315e00) 2141 0 R (classCCfits_1_1ExtHDU_ad3a43454577309abb2ec1ebe97d3375b) 2183 0 R (classCCfits_1_1ExtHDU_ada85c7b4b9b38f6e410db8794779ed60) 2068 0 R (classCCfits_1_1ExtHDU_ae7f51b15ead23e1daccd9db009e7162a) 2156 0 R (classCCfits_1_1ExtHDU_af1128c49f0381473feff2cd9e5650dce) 2099 0 R (classCCfits_1_1ExtHDU_af63318f88dad6665781c9d699324a3a3) 2121 0 R (classCCfits_1_1FITS) 1125 0 R (classCCfits_1_1FITSUtil_1_1UnrecognizedType) 1389 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr) 1334 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a114a298f4d870f74ed1039c6ee41b2b5) 2762 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ae387ac0d5d498974cc05d5ff878ae) 2759 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ca62c9f81dbc710968b2afae2d18a7) 2776 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a3be729bfbf66a839903e92cfa0301b21) 2750 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a46abc946300c6b7deaa7e456ba9f1aed) 2757 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a53dbf2f60ac2851b86b70dad5619b862) 2753 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a6cf9e51e5dd7a9d9d512900465c5ea1f) 2755 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a71fed8548c3d114a231a3ea87f35e218) 2764 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a994e12743b5b7d75b4168ac095a60c1f) 2766 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_aa7eff76215f0bd5ac0aec23c39b903fe) 2747 0 R (classCCfits_1_1FITSUtil_1_1auto__array__ptr_af2e65ee8fafdd812f2782da2dfea285a) 2768 0 R (classCCfits_1_1FITS_1_1CantOpen) 1328 0 R (classCCfits_1_1FITS_1_1CantOpen_ac51f3d69a93cfbf1e14990e314d92df9) 2649 0 R (classCCfits_1_1FITS_1_1NoSuchHDU) 1329 0 R (classCCfits_1_1FITS_1_1NoSuchHDU_a31041cf0343276271be5093265cb0694) 2666 0 R (classCCfits_1_1FITS_1_1OperationNotSupported) 1126 0 R (classCCfits_1_1FITS_1_1OperationNotSupported_ac22e7f9c90baefeaae301e82c7f6c95f) 2681 0 R (classCCfits_1_1FITS_a10cc4bf1ef07a50ea79d3bfaa57a844f) 2382 0 R (classCCfits_1_1FITS_a17d7f2a579835881a3b74c765ac612e1) 2349 0 R (classCCfits_1_1FITS_a18d1d822d3eecbf6298f974504863c05) 2394 0 R (classCCfits_1_1FITS_a1cb56c87695f73c6110cdd3dd1fb03b0) 2315 0 R (classCCfits_1_1FITS_a1d7fca4f600df79fce819b86f8727368) 2316 0 R (classCCfits_1_1FITS_a21ee1ab28908eb2ed74b5f88cfcc97bf) 2362 0 R (classCCfits_1_1FITS_a224f6b22c1c3129c07c077d4b5617d2f) 2444 0 R (classCCfits_1_1FITS_a2df185878082d2dabe76f3f25600311b) 2414 0 R (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) 1539 0 R (classCCfits_1_1FITS_a46ee9a7cb851501eb921149f1173d11d) 2391 0 R (classCCfits_1_1FITS_a4af2b8fb489f7fbfeabc1a381c94834c) 2388 0 R (classCCfits_1_1FITS_a4b5b4cccb7912bb0cf8c03600e2f89b4) 2354 0 R (classCCfits_1_1FITS_a53b2988c54661d9e03af4a152da5dbae) 2328 0 R (classCCfits_1_1FITS_a59493b5e36616b7904ddede84df78430) 2366 0 R (classCCfits_1_1FITS_a5e4b2efb2d9c75db28fe264cb8576280) 2412 0 R (classCCfits_1_1FITS_a6237260607e157ec5f521522f137f09c) 2419 0 R (classCCfits_1_1FITS_a691405118727baad47e504c16998e404) 2365 0 R (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) 2398 0 R (classCCfits_1_1FITS_a6e3ebb1d61fd6374c0f1033ba0777112) 2417 0 R (classCCfits_1_1FITS_a6f151c247fb7d0b13cd7c1d5994417d1) 2429 0 R (classCCfits_1_1FITS_a785184269e4cdf607cb844b5b45ad105) 2386 0 R (classCCfits_1_1FITS_a7d675f1654f0678461bac0d47e202d49) 2341 0 R (classCCfits_1_1FITS_a80ed085f917280e58c6bddf95de93c3c) 2367 0 R (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) 1190 0 R (classCCfits_1_1FITS_a879b8f7cb81cfbc781e8a7b6c6982ca9) 2415 0 R (classCCfits_1_1FITS_a913bc6d48a4ff69013e49e1ae4fbb696) 2314 0 R (classCCfits_1_1FITS_a9d5050b4a572ea98e0c830295894c142) 2410 0 R (classCCfits_1_1FITS_aa0bfb6b1a6dc55c585482ba703773f50) 2445 0 R (classCCfits_1_1FITS_aa3dd737a0211193e99d09459b1b09564) 2319 0 R (classCCfits_1_1FITS_aac73f0a1f2742c0f1ea5eeb5bc0f8df5) 2369 0 R (classCCfits_1_1FITS_ab0e7b06ebbb6097ed6fa2fd555af4ca3) 2431 0 R (classCCfits_1_1FITS_ab83f4abde51f181d69016a1aa971a290) 2318 0 R (classCCfits_1_1FITS_ac592041903c94b09cee8cdc29e185b0a) 2416 0 R (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) 1951 0 R (classCCfits_1_1FITS_acb344d192a9cce91ef4fa70d983af305) 2317 0 R (classCCfits_1_1FITS_ad65169c171ad79257367716d8f93b3f2) 2443 0 R (classCCfits_1_1FITS_ad865b86fabd85a36b6e3ec782a3fad83) 2370 0 R (classCCfits_1_1FITS_adafc3aecf2d2398109d2c42f6025f2e5) 2418 0 R (classCCfits_1_1FITS_add1f740bb5706da76773951cbb1f5f89) 2413 0 R (classCCfits_1_1FITS_af29d26cb351ba86544648203d5dbf5dc) 2358 0 R (classCCfits_1_1FITS_afbc014a0dd8bfcc9d883e550f971f669) 2371 0 R (classCCfits_1_1FITS_afc795a249942094157a54fedb6325eb0) 2368 0 R (classCCfits_1_1FITS_afe53063dd05cf44654a311e5d17d4da8) 1189 0 R (classCCfits_1_1FitsError) 1331 0 R (classCCfits_1_1FitsError_aad7f934e5322f3a8d01f86d7d83d131f) 2699 0 R (classCCfits_1_1FitsException) 1332 0 R (classCCfits_1_1FitsException_a37025adf45d65172027274ef5227cd94) 2727 0 R (classCCfits_1_1FitsException_ae7c4688e2a2b829abdcf969f167c8ec6) 2728 0 R (classCCfits_1_1FitsFatal) 1333 0 R (classCCfits_1_1FitsFatal_a42ba5b32d85531fa7570c2345c929f7a) 2739 0 R (classCCfits_1_1HDU) 1330 0 R (classCCfits_1_1HDU_1_1InvalidExtensionType) 1390 0 R (classCCfits_1_1HDU_1_1InvalidExtensionType_a3a2ca4ecaf262c22bbe5e75dde9e4c0d) 3123 0 R (classCCfits_1_1HDU_1_1InvalidImageDataType) 1392 0 R (classCCfits_1_1HDU_1_1InvalidImageDataType_a3096f43465037a2be30e2c99ee9289a4) 3141 0 R (classCCfits_1_1HDU_1_1NoNullValue) 1393 0 R (classCCfits_1_1HDU_1_1NoNullValue_a13c08a23ed54e9e1ef3d16fbbff61301) 3156 0 R (classCCfits_1_1HDU_1_1NoSuchKeyword) 1394 0 R (classCCfits_1_1HDU_1_1NoSuchKeyword_a8f012eff5e0635b5762fe6e13efc3ab5) 3172 0 R (classCCfits_1_1HDU_a011149805ffb96031218739369863e17) 2906 0 R (classCCfits_1_1HDU_a05843eda3c863cf9b580a409b3067c55) 2973 0 R (classCCfits_1_1HDU_a0938122b95fae87a5d8abd70d2faf664) 2985 0 R (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) 2929 0 R (classCCfits_1_1HDU_a0c4fa124e27d002de1044c1832be5942) 2936 0 R (classCCfits_1_1HDU_a111434a1e35e2453237f86b30b3f4a8d) 2903 0 R (classCCfits_1_1HDU_a18bd99b5d72ace7e7b353102eb80793a) 2872 0 R (classCCfits_1_1HDU_a18f7273134f1a0428f8d565067785619) 2967 0 R (classCCfits_1_1HDU_a23317074fa7362c7522c01f3f1756618) 2962 0 R (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) 2965 0 R (classCCfits_1_1HDU_a2e02db0df89451736c7863963170a081) 2996 0 R (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) 2975 0 R (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) 2925 0 R (classCCfits_1_1HDU_a37bec2db64600e489eb8efa8a001f73d) 2885 0 R (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) 2972 0 R (classCCfits_1_1HDU_a3b547e893d364ebc570f2998a6b193bd) 2942 0 R (classCCfits_1_1HDU_a4c36394bfe734921404a6882e82be4db) 2959 0 R (classCCfits_1_1HDU_a56ce9ed0864e07a7ef380b18e3be7a79) 2970 0 R (classCCfits_1_1HDU_a5d4af8d84676f20b1c79b785f1a22cde) 2877 0 R (classCCfits_1_1HDU_a64b11dc4b2e2d3e2cf636fbcb8a15fc2) 2923 0 R (classCCfits_1_1HDU_a6604d7907f4f0353e2821ac6c2506c73) 2928 0 R (classCCfits_1_1HDU_a674875a76c3fb745b2b35303b42407cc) 2914 0 R (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) 3017 0 R (classCCfits_1_1HDU_a6bd0d7eb236211267de480c595b5b631) 2969 0 R (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) 2968 0 R (classCCfits_1_1HDU_a7acddc0c108bc9504a3a342b010ec9a1) 2897 0 R (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) 2506 0 R (classCCfits_1_1HDU_a84de5ab34fba6c478e9365937d826346) 2989 0 R (classCCfits_1_1HDU_a8c9d28570c1a7f8fc09cc10398bd6080) 2966 0 R (classCCfits_1_1HDU_a9e19372a1a01046420c6ba4393bb5674) 2924 0 R (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) 2862 0 R (classCCfits_1_1HDU_a9fed5392151d12c459e5be9e955e1587) 2852 0 R (classCCfits_1_1HDU_ab574045dcdc383c9d2987850c640e0c1) 2939 0 R (classCCfits_1_1HDU_ab8bf6e03b7460db9dc81c1e6c4bbb214) 2900 0 R (classCCfits_1_1HDU_abb274465a32c564e884b69810161078c) 2910 0 R (classCCfits_1_1HDU_abd3add56e93046c3a5260f1d227b4892) 2918 0 R (classCCfits_1_1HDU_abdfef60e183bb3f3ae0374fccdbc4e45) 2927 0 R (classCCfits_1_1HDU_ad660a6aee62165b81eb71b85447ab93e) 2994 0 R (classCCfits_1_1HDU_adc1a7ba06b6a113010334320e5268dc6) 2971 0 R (classCCfits_1_1HDU_ae33b25a2d52e0e75e13d277e3327d03f) 2974 0 R (classCCfits_1_1HDU_aecb532b753cd3460568e49e64df19ee5) 2880 0 R (classCCfits_1_1HDU_aece6e1d7e46ce3370578972a4aeb08ab) 2926 0 R (classCCfits_1_1HDU_af0bbec3fe5f6b41ff4a95feff6600d57) 2246 0 R (classCCfits_1_1HDU_af1ffd58e00cd8f3a903976df8f91bc0a) 2950 0 R (classCCfits_1_1ImageExt) 1391 0 R (classCCfits_1_1ImageExt_a036e9a9301d0a8c5cfb2045168bf752e) 3182 0 R (classCCfits_1_1ImageExt_a0f74472174c571dea4e7faa0cb23eae8) 3207 0 R (classCCfits_1_1ImageExt_a1eb7b465140aa151e2f7272c977846cd) 3200 0 R (classCCfits_1_1ImageExt_a50f37e2cb14259f534b6bd88bc853da7) 3184 0 R (classCCfits_1_1ImageExt_a53d36df4ae92f58771a25559120bacb9) 3203 0 R (classCCfits_1_1ImageExt_aa6d47bd83e9538694ee7d4f4d70ef33b) 3122 0 R (classCCfits_1_1ImageExt_ace83a5e81e20d8210bf04ab2fd03aaa4) 3187 0 R (classCCfits_1_1ImageExt_ad0531bb4a797027e6ff77517d2e09cc6) 3085 0 R (classCCfits_1_1Keyword) 1395 0 R (classCCfits_1_1Keyword_a627a4ffc2199b90952dd7adf9b1ec956) 3229 0 R (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) 3039 0 R (classCCfits_1_1Keyword_a775cd61e991612a512d62fa722b7e64a) 3288 0 R (classCCfits_1_1Keyword_a818711c7e71c3d867bb8e9445ddf1335) 3244 0 R (classCCfits_1_1Keyword_a92d1b379da32e959be3b2fb2fb93548e) 3240 0 R (classCCfits_1_1Keyword_a96af1f6a8a73dc4d8ec3e2ad159bb23e) 3252 0 R (classCCfits_1_1Keyword_ab8dbaacd101e7b1bc3ebf5aa62493823) 3271 0 R (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) 3286 0 R (classCCfits_1_1Keyword_abe80f519c298067a52c0792482048d53) 3249 0 R (classCCfits_1_1Keyword_ac0e829b447ad71bb4405d196a693a8c6) 3234 0 R (classCCfits_1_1Keyword_ac92a807de0401fa32f6cdbfe96dd3083) 3231 0 R (classCCfits_1_1Keyword_ae0f6c4a86159817d3b0cde818d329a25) 3247 0 R (classCCfits_1_1Keyword_ae9278cc3de41df8efd54e44009dd50b8) 3256 0 R (classCCfits_1_1Keyword_aebeab56157e11d0344076602bd10594d) 3287 0 R (classCCfits_1_1Keyword_aee44ef253c61cbcb4ef77e3645439583) 3274 0 R (classCCfits_1_1Keyword_afbcc174e856a3f0be7d77d1634ab0075) 3264 0 R (classCCfits_1_1PHDU) 1191 0 R (classCCfits_1_1PHDU_a0025ef99428d619903a15d23e1eeed2a) 3371 0 R (classCCfits_1_1PHDU_a0205708df85524ee37eddb7485604591) 3354 0 R (classCCfits_1_1PHDU_a04b7249f250f651a96b6423930c6e4e2) 3375 0 R (classCCfits_1_1PHDU_a04e290b1a4d638db9dee0e6a03d30ede) 3397 0 R (classCCfits_1_1PHDU_a07a22e72dfba4443dccd614bd5cc2216) 3356 0 R (classCCfits_1_1PHDU_a09e704e18acc242d5b829ebcbcdd6d2b) 3340 0 R (classCCfits_1_1PHDU_a20f16c9a8d60de748ed7697afbc91863) 3393 0 R (classCCfits_1_1PHDU_a2afad9d6722f87abc19e5eb819e77383) 3361 0 R (classCCfits_1_1PHDU_a3e9208c7f75550dc939e33488d02bbd6) 3359 0 R (classCCfits_1_1PHDU_a496d7e092054cb21565f4b1bf3d977f4) 3362 0 R (classCCfits_1_1PHDU_a52bbbb9cba81940c51133e17394cbe9f) 3360 0 R (classCCfits_1_1PHDU_a567c35924aaecf4841e2a467667f2e76) 3395 0 R (classCCfits_1_1PHDU_a683d99bb3a29bf887bfd3d988202dddf) 3369 0 R (classCCfits_1_1PHDU_a6cefe66318d6014ef2d489e7a779f299) 3337 0 R (classCCfits_1_1PHDU_a6edaf40ab3bc6b1450d41ba3f55485d1) 3396 0 R (classCCfits_1_1PHDU_a74015a1d158ef9f04f875dca9818f5ea) 3392 0 R (classCCfits_1_1PHDU_a75f86db856e2cc7772a97d9ded3a633c) 3084 0 R (classCCfits_1_1PHDU_a8fcefeadd0901595b5aec1ecfc730915) 3348 0 R (classCCfits_1_1PHDU_a9b26ccfa93476dbbbc13588e5bf14d09) 3342 0 R (classCCfits_1_1PHDU_abcc25c1d318581d9b650a784b799285d) 3121 0 R (classCCfits_1_1PHDU_abd7c1f8131fa1acd2c638a9b9372e55a) 3394 0 R (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) 3363 0 R (classCCfits_1_1PHDU_ad97d754f99c2948469638a05c2024207) 3345 0 R (classCCfits_1_1PHDU_aebb0d9bac5b961e7de036ad10f1a02c2) 3332 0 R (classCCfits_1_1Table) 1277 0 R (classCCfits_1_1Table_1_1NoSuchColumn) 1396 0 R (classCCfits_1_1Table_1_1NoSuchColumn_a3f2a9ac7e04e28c2c13b33934a8ba485) 3615 0 R (classCCfits_1_1Table_1_1NoSuchColumn_a5f21d893d831bb74eff8703b3c6d0b1e) 3602 0 R (classCCfits_1_1Table_a0b1f880e7bb883a2b05ee20909d94fbf) 3466 0 R (classCCfits_1_1Table_a19bde9d4a37a2ee07016ef627e5fecde) 2225 0 R (classCCfits_1_1Table_a3325a78088498051760efde16dfae9b8) 3505 0 R (classCCfits_1_1Table_a37f73f59845f49a01fbd587ce1bd06f3) 3526 0 R (classCCfits_1_1Table_a470beae464348ac917729b0d1d693ba0) 3524 0 R (classCCfits_1_1Table_a54e2948a7603a058c6a3cd99f0806ac9) 2226 0 R (classCCfits_1_1Table_a573b295bfdd242a99d97d0d3a1dd4982) 2224 0 R (classCCfits_1_1Table_a63b3ceb651637d7e73fd4a787b136450) 2264 0 R (classCCfits_1_1Table_a67eb478179846fc940e202476b4c08a3) 2223 0 R (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) 2247 0 R (classCCfits_1_1Table_a7a9b5c4231233847904f841d023978a5) 3511 0 R (classCCfits_1_1Table_a7dc1b5bfcfde698946777e045b532ba2) 3523 0 R (classCCfits_1_1Table_a933afd64667d8ad6a7291686ca3d8603) 3469 0 R (classCCfits_1_1Table_aa610c082528ac5ed89b715e3f3b2e4e6) 3525 0 R (classCCfits_1_1Table_aa89bbe572a86b8bc4ca4249ba0b21dbb) 3488 0 R (classCCfits_1_1Table_aaf11d6f4b77aa533bd09562edcea4c10) 3499 0 R (classCCfits_1_1Table_ab5ade7dd546fe55f2c0e1f5ff7e0eddf) 3528 0 R (classCCfits_1_1Table_ac41ac8e02386d095a969142b486d3890) 3487 0 R (classCCfits_1_1Table_adcf7114a5828d38b35e1732618716c35) 3514 0 R (classCCfits_1_1Table_ae578460dd522485e48ccd8f4536e5531) 2200 0 R (classCCfits_1_1Table_af79b97361d3f64e7b6fa48296a971818) 3527 0 R (cookbook) 1014 0 R (cookbook_main) 1015 0 R (copy) 1043 0 R (filter) 1044 0 R (group__FITSexcept) 1401 0 R (implementation) 989 0 R (index) 904 0 R (index_about) 925 0 R (index_ack) 952 0 R (index_intro) 910 0 R (index_rel1) 927 0 R (index_rel2) 929 0 R (index_rel3) 940 0 R (installation) 959 0 R (installation_build) 964 0 R (installation_platform) 960 0 R (installation_unix) 966 0 R (installation_windows) 981 0 R (missing) 1131 0 R (missing_callcfitsio) 1141 0 R (missing_nothere) 1135 0 R (module) 1009 0 R (namespaceCCfits) 920 0 R (namespaceCCfits_a098a546c28ff774b84e56666aca95c76) 1464 0 R (namespaceCCfits_a0b5c90532ac04bc76509c001b709bc2a) 1470 0 R (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) 1458 0 R (namespaceCCfits_a91ec1e6f0c672b698749d34d65d190e4) 1477 0 R (namespaceFITSUtil) 1192 0 R (new) 1008 0 R (page.1) 889 0 R (page.10) 1013 0 R (page.100) 2709 0 R (page.101) 2715 0 R (page.102) 2732 0 R (page.103) 2743 0 R (page.104) 2774 0 R (page.105) 2789 0 R (page.106) 2805 0 R (page.107) 2815 0 R (page.108) 2827 0 R (page.109) 2841 0 R (page.11) 1019 0 R (page.110) 2866 0 R (page.111) 2933 0 R (page.112) 2979 0 R (page.113) 3021 0 R (page.114) 3043 0 R (page.115) 3065 0 R (page.116) 3089 0 R (page.117) 3106 0 R (page.118) 3128 0 R (page.119) 3146 0 R (page.12) 1025 0 R (page.120) 3161 0 R (page.121) 3177 0 R (page.122) 3196 0 R (page.123) 3219 0 R (page.124) 3239 0 R (page.125) 3292 0 R (page.126) 3312 0 R (page.127) 3336 0 R (page.128) 3367 0 R (page.129) 3401 0 R (page.13) 1052 0 R (page.130) 3424 0 R (page.131) 3437 0 R (page.132) 3451 0 R (page.133) 3462 0 R (page.134) 3492 0 R (page.135) 3532 0 R (page.136) 3551 0 R (page.137) 3571 0 R (page.138) 3590 0 R (page.139) 3606 0 R (page.14) 1056 0 R (page.140) 3623 0 R (page.141) 3628 0 R (page.142) 3726 0 R (page.143) 3821 0 R (page.144) 3870 0 R (page.145) 3926 0 R (page.15) 1061 0 R (page.16) 1067 0 R (page.17) 1071 0 R (page.18) 1075 0 R (page.19) 1079 0 R (page.2) 924 0 R (page.20) 1083 0 R (page.21) 1088 0 R (page.22) 1092 0 R (page.23) 1096 0 R (page.24) 1101 0 R (page.25) 1106 0 R (page.26) 1110 0 R (page.27) 1115 0 R (page.28) 1121 0 R (page.29) 1130 0 R (page.3) 934 0 R (page.30) 1139 0 R (page.31) 1151 0 R (page.32) 1157 0 R (page.33) 1169 0 R (page.34) 1196 0 R (page.35) 1221 0 R (page.36) 1245 0 R (page.37) 1293 0 R (page.38) 1342 0 R (page.39) 1400 0 R (page.4) 939 0 R (page.40) 1428 0 R (page.41) 1462 0 R (page.42) 1487 0 R (page.43) 1510 0 R (page.44) 1543 0 R (page.45) 1566 0 R (page.46) 1580 0 R (page.47) 1609 0 R (page.48) 1628 0 R (page.49) 1642 0 R (page.5) 948 0 R (page.50) 1659 0 R (page.51) 1703 0 R (page.52) 1742 0 R (page.53) 1772 0 R (page.54) 1805 0 R (page.55) 1819 0 R (page.56) 1830 0 R (page.57) 1843 0 R (page.58) 1855 0 R (page.59) 1871 0 R (page.6) 971 0 R (page.60) 1890 0 R (page.61) 1905 0 R (page.62) 1916 0 R (page.63) 1926 0 R (page.64) 1941 0 R (page.65) 1957 0 R (page.66) 1972 0 R (page.67) 1987 0 R (page.68) 2002 0 R (page.69) 2018 0 R (page.7) 980 0 R (page.70) 2030 0 R (page.71) 2045 0 R (page.72) 2056 0 R (page.73) 2096 0 R (page.74) 2130 0 R (page.75) 2160 0 R (page.76) 2187 0 R (page.77) 2204 0 R (page.78) 2230 0 R (page.79) 2251 0 R (page.8) 988 0 R (page.80) 2268 0 R (page.81) 2278 0 R (page.82) 2292 0 R (page.83) 2323 0 R (page.84) 2375 0 R (page.85) 2423 0 R (page.86) 2449 0 R (page.87) 2468 0 R (page.88) 2490 0 R (page.89) 2510 0 R (page.9) 1004 0 R (page.90) 2528 0 R (page.91) 2548 0 R (page.92) 2573 0 R (page.93) 2593 0 R (page.94) 2615 0 R (page.95) 2631 0 R (page.96) 2644 0 R (page.97) 2659 0 R (page.98) 2676 0 R (page.99) 2692 0 R (paragraph.23.1.2.1) 1475 0 R (paragraph.23.1.3.1) 1478 0 R (paragraph.24.1.2.1) 1535 0 R (paragraph.24.1.2.2) 1546 0 R (paragraph.24.1.2.3) 1557 0 R (paragraph.24.1.3.1) 1567 0 R (paragraph.24.1.3.2) 1571 0 R (paragraph.24.10.2.1) 2034 0 R (paragraph.24.11.2.1) 2049 0 R (paragraph.24.12.2.1) 2176 0 R (paragraph.24.12.2.2) 2179 0 R (paragraph.24.12.3.1) 2182 0 R (paragraph.24.12.3.10) 2238 0 R (paragraph.24.12.3.11) 2242 0 R (paragraph.24.12.3.12) 2245 0 R (paragraph.24.12.3.13) 2253 0 R (paragraph.24.12.3.14) 2254 0 R (paragraph.24.12.3.15) 2256 0 R (paragraph.24.12.3.16) 2260 0 R (paragraph.24.12.3.17) 2269 0 R (paragraph.24.12.3.18) 2270 0 R (paragraph.24.12.3.19) 2272 0 R (paragraph.24.12.3.2) 2192 0 R (paragraph.24.12.3.3) 2198 0 R (paragraph.24.12.3.4) 2208 0 R (paragraph.24.12.3.5) 2212 0 R (paragraph.24.12.3.6) 2218 0 R (paragraph.24.12.3.7) 2221 0 R (paragraph.24.12.3.8) 2222 0 R (paragraph.24.12.3.9) 2233 0 R (paragraph.24.13.2.1) 2282 0 R (paragraph.24.14.2.1) 2442 0 R (paragraph.24.14.2.2) 2461 0 R (paragraph.24.14.2.3) 2477 0 R (paragraph.24.14.2.4) 2481 0 R (paragraph.24.14.2.5) 2486 0 R (paragraph.24.14.2.6) 2495 0 R (paragraph.24.14.2.7) 2505 0 R (paragraph.24.14.2.8) 2517 0 R (paragraph.24.14.3.1) 2532 0 R (paragraph.24.14.3.10) 2583 0 R (paragraph.24.14.3.11) 2584 0 R (paragraph.24.14.3.12) 2588 0 R (paragraph.24.14.3.13) 2606 0 R (paragraph.24.14.3.14) 2607 0 R (paragraph.24.14.3.15) 2608 0 R (paragraph.24.14.3.16) 2610 0 R (paragraph.24.14.3.17) 2619 0 R (paragraph.24.14.3.18) 2623 0 R (paragraph.24.14.3.19) 2624 0 R (paragraph.24.14.3.2) 2540 0 R (paragraph.24.14.3.20) 2626 0 R (paragraph.24.14.3.3) 2550 0 R (paragraph.24.14.3.4) 2555 0 R (paragraph.24.14.3.5) 2558 0 R (paragraph.24.14.3.6) 2566 0 R (paragraph.24.14.3.7) 2568 0 R (paragraph.24.14.3.8) 2576 0 R (paragraph.24.14.3.9) 2578 0 R (paragraph.24.15.2.1) 2635 0 R (paragraph.24.16.2.1) 2650 0 R (paragraph.24.17.2.1) 2667 0 R (paragraph.24.18.2.1) 2682 0 R (paragraph.24.19.2.1) 2700 0 R (paragraph.24.2.2.1) 1619 0 R (paragraph.24.2.2.2) 1624 0 R (paragraph.24.2.3.1) 1635 0 R (paragraph.24.2.3.2) 1643 0 R (paragraph.24.20.2.1) 2734 0 R (paragraph.24.20.3.1) 2736 0 R (paragraph.24.21.2.1) 2744 0 R (paragraph.24.3.2.1) 1813 0 R (paragraph.24.3.2.2) 1814 0 R (paragraph.24.3.3.1) 1822 0 R (paragraph.24.3.3.10) 1845 0 R (paragraph.24.3.3.11) 1847 0 R (paragraph.24.3.3.12) 1849 0 R (paragraph.24.3.3.13) 1851 0 R (paragraph.24.3.3.14) 1858 0 R (paragraph.24.3.3.15) 1862 0 R (paragraph.24.3.3.16) 1864 0 R (paragraph.24.3.3.17) 1865 0 R (paragraph.24.3.3.18) 1867 0 R (paragraph.24.3.3.19) 1873 0 R (paragraph.24.3.3.2) 1823 0 R (paragraph.24.3.3.20) 1876 0 R (paragraph.24.3.3.21) 1884 0 R (paragraph.24.3.3.22) 1896 0 R (paragraph.24.3.3.23) 1899 0 R (paragraph.24.3.3.24) 1901 0 R (paragraph.24.3.3.25) 1907 0 R (paragraph.24.3.3.26) 1909 0 R (paragraph.24.3.3.27) 1910 0 R (paragraph.24.3.3.28) 1911 0 R (paragraph.24.3.3.29) 1912 0 R (paragraph.24.3.3.3) 1824 0 R (paragraph.24.3.3.30) 1918 0 R (paragraph.24.3.3.31) 1919 0 R (paragraph.24.3.3.32) 1920 0 R (paragraph.24.3.3.33) 1928 0 R (paragraph.24.3.3.34) 1929 0 R (paragraph.24.3.3.4) 1825 0 R (paragraph.24.3.3.5) 1826 0 R (paragraph.24.3.3.6) 1832 0 R (paragraph.24.3.3.7) 1834 0 R (paragraph.24.3.3.8) 1836 0 R (paragraph.24.3.3.9) 1838 0 R (paragraph.24.32.2.1) 3014 0 R (paragraph.24.32.2.10) 3057 0 R (paragraph.24.32.2.11) 3060 0 R (paragraph.24.32.2.12) 3067 0 R (paragraph.24.32.2.13) 3071 0 R (paragraph.24.32.2.14) 3076 0 R (paragraph.24.32.2.15) 3078 0 R (paragraph.24.32.2.16) 3083 0 R (paragraph.24.32.2.17) 3090 0 R (paragraph.24.32.2.18) 3094 0 R (paragraph.24.32.2.19) 3097 0 R (paragraph.24.32.2.2) 3026 0 R (paragraph.24.32.2.20) 3099 0 R (paragraph.24.32.2.21) 3100 0 R (paragraph.24.32.2.22) 3107 0 R (paragraph.24.32.2.3) 3033 0 R (paragraph.24.32.2.4) 3035 0 R (paragraph.24.32.2.5) 3036 0 R (paragraph.24.32.2.6) 3046 0 R (paragraph.24.32.2.7) 3049 0 R (paragraph.24.32.2.8) 3051 0 R (paragraph.24.32.2.9) 3054 0 R (paragraph.24.33.2.1) 3132 0 R (paragraph.24.34.2.1) 3147 0 R (paragraph.24.35.2.1) 3162 0 R (paragraph.24.36.2.1) 3178 0 R (paragraph.24.37.2.1) 3208 0 R (paragraph.24.37.2.2) 3214 0 R (paragraph.24.37.2.3) 3223 0 R (paragraph.24.38.2.1) 3296 0 R (paragraph.24.38.3.1) 3298 0 R (paragraph.24.38.3.2) 3306 0 R (paragraph.24.38.3.3) 3320 0 R (paragraph.24.39.2.1) 3409 0 R (paragraph.24.39.2.2) 3410 0 R (paragraph.24.39.2.3) 3412 0 R (paragraph.24.39.2.4) 3417 0 R (paragraph.24.39.3.1) 3420 0 R (paragraph.24.39.3.10) 3454 0 R (paragraph.24.39.3.2) 3426 0 R (paragraph.24.39.3.3) 3428 0 R (paragraph.24.39.3.4) 3430 0 R (paragraph.24.39.3.5) 3431 0 R (paragraph.24.39.3.6) 3440 0 R (paragraph.24.39.3.7) 3444 0 R (paragraph.24.39.3.8) 3447 0 R (paragraph.24.39.3.9) 3452 0 R (paragraph.24.4.2.1) 1942 0 R (paragraph.24.40.2.1) 3533 0 R (paragraph.24.40.2.2) 3540 0 R (paragraph.24.40.3.1) 3544 0 R (paragraph.24.40.3.10) 3585 0 R (paragraph.24.40.3.11) 3594 0 R (paragraph.24.40.3.2) 3553 0 R (paragraph.24.40.3.3) 3560 0 R (paragraph.24.40.3.4) 3562 0 R (paragraph.24.40.3.5) 3563 0 R (paragraph.24.40.3.6) 3572 0 R (paragraph.24.40.3.7) 3577 0 R (paragraph.24.40.3.8) 3581 0 R (paragraph.24.40.3.9) 3584 0 R (paragraph.24.41.2.1) 3611 0 R (paragraph.24.41.2.2) 3616 0 R (paragraph.24.5.2.1) 1958 0 R (paragraph.24.6.2.1) 1973 0 R (paragraph.24.7.2.1) 1988 0 R (paragraph.24.8.2.1) 2003 0 R (paragraph.24.9.2.1) 2019 0 R (readextendedsyntax) 1048 0 R (readhead) 1045 0 R (readimage) 1046 0 R (readtable) 1047 0 R (releases) 967 0 R (section*.1) 1402 0 R (section*.10) 1660 0 R (section*.11) 1778 0 R (section*.12) 1930 0 R (section*.13) 1945 0 R (section*.14) 1961 0 R (section*.15) 1976 0 R (section*.16) 1991 0 R (section*.17) 2006 0 R (section*.18) 2031 0 R (section*.19) 2046 0 R (section*.2) 1430 0 R (section*.20) 2057 0 R (section*.21) 2059 0 R (section*.22) 2138 0 R (section*.23) 2140 0 R (section*.24) 2279 0 R (section*.25) 2294 0 R (section*.26) 2300 0 R (section*.27) 2428 0 R (section*.28) 2632 0 R (section*.29) 2647 0 R (section*.3) 1455 0 R (section*.30) 2663 0 R (section*.31) 2679 0 R (section*.32) 2696 0 R (section*.33) 2716 0 R (section*.34) 2737 0 R (section*.35) 2746 0 R (section*.36) 2775 0 R (section*.37) 2778 0 R (section*.38) 2780 0 R (section*.39) 2783 0 R (section*.4) 1463 0 R (section*.40) 2791 0 R (section*.41) 2794 0 R (section*.42) 2797 0 R (section*.43) 2800 0 R (section*.44) 2809 0 R (section*.45) 2811 0 R (section*.46) 2818 0 R (section*.47) 2821 0 R (section*.48) 2829 0 R (section*.49) 2843 0 R (section*.5) 1493 0 R (section*.50) 2851 0 R (section*.51) 2980 0 R (section*.52) 2984 0 R (section*.53) 3115 0 R (section*.54) 3135 0 R (section*.55) 3150 0 R (section*.56) 3166 0 R (section*.57) 3181 0 R (section*.58) 3205 0 R (section*.59) 3228 0 R (section*.6) 1511 0 R (section*.60) 3263 0 R (section*.61) 3326 0 R (section*.62) 3377 0 R (section*.63) 3463 0 R (section*.64) 3465 0 R (section*.65) 3503 0 R (section*.66) 3596 0 R (section*.67) 3629 0 R (section*.7) 1581 0 R (section*.8) 1589 0 R (section*.9) 1647 0 R (section.1) 6 0 R (section.10) 98 0 R (section.11) 102 0 R (section.12) 106 0 R (section.13) 110 0 R (section.14) 114 0 R (section.15) 118 0 R (section.16) 130 0 R (section.17) 134 0 R (section.18) 138 0 R (section.19) 146 0 R (section.2) 34 0 R (section.20) 154 0 R (section.21) 162 0 R (section.22) 170 0 R (section.23) 178 0 R (section.24) 206 0 R (section.3) 54 0 R (section.4) 58 0 R (section.5) 74 0 R (section.6) 82 0 R (section.7) 86 0 R (section.8) 90 0 R (section.9) 94 0 R (structCCfits_1_1FITSUtil_1_1CAarray) 1335 0 R (structCCfits_1_1FITSUtil_1_1CAarray_a696f1168e9058a218e91ea0ead06693f) 2781 0 R (structCCfits_1_1FITSUtil_1_1CVAarray) 1337 0 R (structCCfits_1_1FITSUtil_1_1CVAarray_a817543d5a8700ca336a35e62a3223d12) 2792 0 R (structCCfits_1_1FITSUtil_1_1CVarray) 1336 0 R (structCCfits_1_1FITSUtil_1_1CVarray_a661c853b542621505841646ffb4f9b60) 2798 0 R (structCCfits_1_1FITSUtil_1_1MatchName) 1338 0 R (structCCfits_1_1FITSUtil_1_1MatchNum) 1385 0 R (structCCfits_1_1FITSUtil_1_1MatchPtrName) 1386 0 R (structCCfits_1_1FITSUtil_1_1MatchPtrNum) 1387 0 R (structCCfits_1_1FITSUtil_1_1MatchType) 1388 0 R (structCCfits_1_1FITS_1_1CantCreate) 1327 0 R (structCCfits_1_1FITS_1_1CantCreate_a9c7e9923d86095cb065ba3be679edc44) 2634 0 R (subsection.1.1) 10 0 R (subsection.1.2) 14 0 R (subsection.1.3) 18 0 R (subsection.1.4) 22 0 R (subsection.1.5) 26 0 R (subsection.1.6) 30 0 R (subsection.15.1) 122 0 R (subsection.15.2) 126 0 R (subsection.18.1) 142 0 R (subsection.19.1) 150 0 R (subsection.2.1) 38 0 R (subsection.2.2) 42 0 R (subsection.20.1) 158 0 R (subsection.21.1) 166 0 R (subsection.22.1) 174 0 R (subsection.23.1) 182 0 R (subsection.23.2) 198 0 R (subsection.24.1) 210 0 R (subsection.24.10) 330 0 R (subsection.24.11) 342 0 R (subsection.24.12) 354 0 R (subsection.24.13) 370 0 R (subsection.24.14) 382 0 R (subsection.24.15) 398 0 R (subsection.24.16) 410 0 R (subsection.24.17) 422 0 R (subsection.24.18) 434 0 R (subsection.24.19) 446 0 R (subsection.24.2) 226 0 R (subsection.24.20) 458 0 R (subsection.24.21) 474 0 R (subsection.24.22) 486 0 R (subsection.24.23) 494 0 R (subsection.24.24) 502 0 R (subsection.24.25) 510 0 R (subsection.24.26) 518 0 R (subsection.24.27) 526 0 R (subsection.24.28) 534 0 R (subsection.24.29) 542 0 R (subsection.24.3) 242 0 R (subsection.24.30) 550 0 R (subsection.24.31) 558 0 R (subsection.24.32) 566 0 R (subsection.24.33) 578 0 R (subsection.24.34) 590 0 R (subsection.24.35) 602 0 R (subsection.24.36) 614 0 R (subsection.24.37) 626 0 R (subsection.24.38) 638 0 R (subsection.24.39) 654 0 R (subsection.24.4) 258 0 R (subsection.24.40) 670 0 R (subsection.24.41) 686 0 R (subsection.24.5) 270 0 R (subsection.24.6) 282 0 R (subsection.24.7) 294 0 R (subsection.24.8) 306 0 R (subsection.24.9) 318 0 R (subsection.4.1) 62 0 R (subsection.4.2) 66 0 R (subsection.4.3) 70 0 R (subsection.5.1) 78 0 R (subsubsection.2.2.1) 46 0 R (subsubsection.2.2.2) 50 0 R (subsubsection.23.1.1) 186 0 R (subsubsection.23.1.2) 190 0 R (subsubsection.23.1.3) 194 0 R (subsubsection.23.2.1) 202 0 R (subsubsection.24.1.1) 214 0 R (subsubsection.24.1.2) 218 0 R (subsubsection.24.1.3) 222 0 R (subsubsection.24.10.1) 334 0 R (subsubsection.24.10.2) 338 0 R (subsubsection.24.11.1) 346 0 R (subsubsection.24.11.2) 350 0 R (subsubsection.24.12.1) 358 0 R (subsubsection.24.12.2) 362 0 R (subsubsection.24.12.3) 366 0 R (subsubsection.24.13.1) 374 0 R (subsubsection.24.13.2) 378 0 R (subsubsection.24.14.1) 386 0 R (subsubsection.24.14.2) 390 0 R (subsubsection.24.14.3) 394 0 R (subsubsection.24.15.1) 402 0 R (subsubsection.24.15.2) 406 0 R (subsubsection.24.16.1) 414 0 R (subsubsection.24.16.2) 418 0 R (subsubsection.24.17.1) 426 0 R (subsubsection.24.17.2) 430 0 R (subsubsection.24.18.1) 438 0 R (subsubsection.24.18.2) 442 0 R (subsubsection.24.19.1) 450 0 R (subsubsection.24.19.2) 454 0 R (subsubsection.24.2.1) 230 0 R (subsubsection.24.2.2) 234 0 R (subsubsection.24.2.3) 238 0 R (subsubsection.24.20.1) 462 0 R (subsubsection.24.20.2) 466 0 R (subsubsection.24.20.3) 470 0 R (subsubsection.24.21.1) 478 0 R (subsubsection.24.21.2) 482 0 R (subsubsection.24.22.1) 490 0 R (subsubsection.24.23.1) 498 0 R (subsubsection.24.24.1) 506 0 R (subsubsection.24.25.1) 514 0 R (subsubsection.24.26.1) 522 0 R (subsubsection.24.27.1) 530 0 R (subsubsection.24.28.1) 538 0 R (subsubsection.24.29.1) 546 0 R (subsubsection.24.3.1) 246 0 R (subsubsection.24.3.2) 250 0 R (subsubsection.24.3.3) 254 0 R (subsubsection.24.30.1) 554 0 R (subsubsection.24.31.1) 562 0 R (subsubsection.24.32.1) 570 0 R (subsubsection.24.32.2) 574 0 R (subsubsection.24.33.1) 582 0 R (subsubsection.24.33.2) 586 0 R (subsubsection.24.34.1) 594 0 R (subsubsection.24.34.2) 598 0 R (subsubsection.24.35.1) 606 0 R (subsubsection.24.35.2) 610 0 R (subsubsection.24.36.1) 618 0 R (subsubsection.24.36.2) 622 0 R (subsubsection.24.37.1) 630 0 R (subsubsection.24.37.2) 634 0 R (subsubsection.24.38.1) 642 0 R (subsubsection.24.38.2) 646 0 R (subsubsection.24.38.3) 650 0 R (subsubsection.24.39.1) 658 0 R (subsubsection.24.39.2) 662 0 R (subsubsection.24.39.3) 666 0 R (subsubsection.24.4.1) 262 0 R (subsubsection.24.4.2) 266 0 R (subsubsection.24.40.1) 674 0 R (subsubsection.24.40.2) 678 0 R (subsubsection.24.40.3) 682 0 R (subsubsection.24.41.1) 690 0 R (subsubsection.24.41.2) 694 0 R (subsubsection.24.5.1) 274 0 R (subsubsection.24.5.2) 278 0 R (subsubsection.24.6.1) 286 0 R (subsubsection.24.6.2) 290 0 R (subsubsection.24.7.1) 298 0 R (subsubsection.24.7.2) 302 0 R (subsubsection.24.8.1) 310 0 R (subsubsection.24.8.2) 314 0 R (subsubsection.24.9.1) 322 0 R (subsubsection.24.9.2) 326 0 R (table.1) 1544 0 R (table.10) 1835 0 R (table.11) 1837 0 R (table.12) 1844 0 R (table.13) 1846 0 R (table.14) 1848 0 R (table.15) 1850 0 R (table.16) 1857 0 R (table.17) 1866 0 R (table.18) 1872 0 R (table.19) 1875 0 R (table.2) 1551 0 R (table.20) 1882 0 R (table.21) 1894 0 R (table.22) 1898 0 R (table.23) 1900 0 R (table.24) 1906 0 R (table.25) 1908 0 R (table.26) 1917 0 R (table.27) 1927 0 R (table.28) 1943 0 R (table.29) 1959 0 R (table.3) 1569 0 R (table.30) 1974 0 R (table.31) 1989 0 R (table.32) 2004 0 R (table.33) 2020 0 R (table.34) 2035 0 R (table.35) 2050 0 R (table.36) 2189 0 R (table.37) 2195 0 R (table.38) 2205 0 R (table.39) 2209 0 R (table.4) 1622 0 R (table.40) 2214 0 R (table.41) 2215 0 R (table.42) 2235 0 R (table.43) 2244 0 R (table.44) 2252 0 R (table.45) 2257 0 R (table.46) 2263 0 R (table.47) 2271 0 R (table.48) 2283 0 R (table.49) 2454 0 R (table.5) 1632 0 R (table.50) 2456 0 R (table.51) 2472 0 R (table.52) 2479 0 R (table.53) 2484 0 R (table.54) 2492 0 R (table.55) 2502 0 R (table.56) 2515 0 R (table.57) 2521 0 R (table.58) 2529 0 R (table.59) 2543 0 R (table.6) 1637 0 R (table.60) 2561 0 R (table.61) 2562 0 R (table.62) 2585 0 R (table.63) 2616 0 R (table.64) 2621 0 R (table.65) 2625 0 R (table.66) 2645 0 R (table.67) 2660 0 R (table.68) 2677 0 R (table.69) 2693 0 R (table.7) 1820 0 R (table.70) 2710 0 R (table.71) 2735 0 R (table.72) 2745 0 R (table.73) 3023 0 R (table.74) 3037 0 R (table.75) 3133 0 R (table.76) 3148 0 R (table.77) 3163 0 R (table.78) 3179 0 R (table.79) 3211 0 R (table.8) 1831 0 R (table.80) 3300 0 R (table.81) 3307 0 R (table.82) 3427 0 R (table.83) 3429 0 R (table.84) 3438 0 R (table.85) 3446 0 R (table.86) 3453 0 R (table.87) 3534 0 R (table.88) 3547 0 R (table.89) 3556 0 R (table.9) 1833 0 R (table.90) 3565 0 R (table.91) 3566 0 R (table.92) 3574 0 R (table.93) 3575 0 R (table.94) 3578 0 R (table.95) 3579 0 R (table.96) 3591 0 R (table.97) 3592 0 R (table.98) 3613 0 R (table.99) 3618 0 R (todo) 1170 0 R (todo__todo000001) 1171 0 R (todo__todo000002) 1175 0 R (todo__todo000003) 1173 0 R (todo__todo000006) 1177 0 R (writeimage) 1037 0 R (xspec) 1006 0 R] /Limits [(CCfits_8h_source) (xspec)] >> endobj 3973 0 obj << /Kids [3972 0 R] >> endobj 3974 0 obj << /Dests 3973 0 R >> endobj 3975 0 obj << /Type /Catalog /Pages 3970 0 R /Outlines 3971 0 R /Names 3974 0 R /PageMode /UseOutlines /OpenAction 697 0 R >> endobj 3976 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() /CreationDate (D:20111206163119-05'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref 0 3977 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000009 00000 n 0000086943 00000 n 0001019113 00000 n 0000000054 00000 n 0000000183 00000 n 0000087133 00000 n 0001019041 00000 n 0000000233 00000 n 0000000320 00000 n 0000090442 00000 n 0001018955 00000 n 0000000371 00000 n 0000000489 00000 n 0000090569 00000 n 0001018869 00000 n 0000000540 00000 n 0000000775 00000 n 0000093546 00000 n 0001018783 00000 n 0000000826 00000 n 0000001061 00000 n 0000096731 00000 n 0001018697 00000 n 0000001112 00000 n 0000001347 00000 n 0000102373 00000 n 0001018624 00000 n 0000001398 00000 n 0000001571 00000 n 0000102436 00000 n 0001018499 00000 n 0000001617 00000 n 0000001760 00000 n 0000102625 00000 n 0001018425 00000 n 0000001811 00000 n 0000001883 00000 n 0000102750 00000 n 0001018314 00000 n 0000001934 00000 n 0000002001 00000 n 0000102877 00000 n 0001018240 00000 n 0000002057 00000 n 0000002382 00000 n 0000109444 00000 n 0001018166 00000 n 0000002438 00000 n 0000002677 00000 n 0000109507 00000 n 0001018077 00000 n 0000002723 00000 n 0000002853 00000 n 0000117008 00000 n 0001017951 00000 n 0000002899 00000 n 0000003012 00000 n 0000117204 00000 n 0001017877 00000 n 0000003063 00000 n 0000003148 00000 n 0000117334 00000 n 0001017790 00000 n 0000003199 00000 n 0000003312 00000 n 0000119625 00000 n 0001017716 00000 n 0000003363 00000 n 0000003440 00000 n 0000119688 00000 n 0001017590 00000 n 0000003486 00000 n 0000003591 00000 n 0000119883 00000 n 0001017529 00000 n 0000003642 00000 n 0000003742 00000 n 0000126948 00000 n 0001017440 00000 n 0000003788 00000 n 0000004045 00000 n 0000134249 00000 n 0001017351 00000 n 0000004091 00000 n 0000004379 00000 n 0000139969 00000 n 0001017262 00000 n 0000004425 00000 n 0000004713 00000 n 0000148996 00000 n 0001017173 00000 n 0000004759 00000 n 0000004968 00000 n 0000151427 00000 n 0001017082 00000 n 0000005015 00000 n 0000005149 00000 n 0000153315 00000 n 0001016989 00000 n 0000005197 00000 n 0000005425 00000 n 0000155325 00000 n 0001016895 00000 n 0000005473 00000 n 0000005587 00000 n 0000158084 00000 n 0001016801 00000 n 0000005635 00000 n 0000005797 00000 n 0000161313 00000 n 0001016707 00000 n 0000005845 00000 n 0000006078 00000 n 0000164996 00000 n 0001016574 00000 n 0000006126 00000 n 0000006427 00000 n 0000165193 00000 n 0001016495 00000 n 0000006480 00000 n 0000006604 00000 n 0000169516 00000 n 0001016416 00000 n 0000006657 00000 n 0000006763 00000 n 0000169580 00000 n 0001016322 00000 n 0000006811 00000 n 0000006955 00000 n 0000182403 00000 n 0001016228 00000 n 0000007003 00000 n 0000007079 00000 n 0000182796 00000 n 0001016095 00000 n 0000007127 00000 n 0000007218 00000 n 0000182861 00000 n 0001016030 00000 n 0000007271 00000 n 0000007334 00000 n 0000182926 00000 n 0001015897 00000 n 0000007382 00000 n 0000007488 00000 n 0000182990 00000 n 0001015832 00000 n 0000007541 00000 n 0000007642 00000 n 0000188537 00000 n 0001015699 00000 n 0000007690 00000 n 0000007811 00000 n 0000188601 00000 n 0001015634 00000 n 0000007864 00000 n 0000007970 00000 n 0000193982 00000 n 0001015501 00000 n 0000008018 00000 n 0000008104 00000 n 0000194047 00000 n 0001015436 00000 n 0000008157 00000 n 0000008238 00000 n 0000228075 00000 n 0001015303 00000 n 0000008286 00000 n 0000008417 00000 n 0000228204 00000 n 0001015238 00000 n 0000008470 00000 n 0000008576 00000 n 0000236061 00000 n 0001015105 00000 n 0000008624 00000 n 0000008770 00000 n 0000236190 00000 n 0001014987 00000 n 0000008823 00000 n 0000008987 00000 n 0000241260 00000 n 0001014908 00000 n 0000009045 00000 n 0000009176 00000 n 0000241325 00000 n 0001014815 00000 n 0000009234 00000 n 0000009418 00000 n 0000241522 00000 n 0001014736 00000 n 0000009476 00000 n 0000009617 00000 n 0000241785 00000 n 0001014618 00000 n 0000009670 00000 n 0000009844 00000 n 0000247425 00000 n 0001014553 00000 n 0000009902 00000 n 0000010033 00000 n 0000247490 00000 n 0001014433 00000 n 0000010081 00000 n 0000010207 00000 n 0000247620 00000 n 0001014315 00000 n 0000010260 00000 n 0000010464 00000 n 0000255499 00000 n 0001014236 00000 n 0000010522 00000 n 0000010653 00000 n 0000255564 00000 n 0001014143 00000 n 0000010711 00000 n 0000010941 00000 n 0000261975 00000 n 0001014064 00000 n 0000010999 00000 n 0000011178 00000 n 0000266553 00000 n 0001013932 00000 n 0000011231 00000 n 0000011425 00000 n 0000279028 00000 n 0001013853 00000 n 0000011483 00000 n 0000011614 00000 n 0000279092 00000 n 0001013760 00000 n 0000011672 00000 n 0000011902 00000 n 0000284375 00000 n 0001013681 00000 n 0000011960 00000 n 0000012139 00000 n 0000289723 00000 n 0001013549 00000 n 0000012192 00000 n 0000012376 00000 n 0000323244 00000 n 0001013470 00000 n 0000012434 00000 n 0000012565 00000 n 0000323308 00000 n 0001013377 00000 n 0000012623 00000 n 0000012853 00000 n 0000326671 00000 n 0001013298 00000 n 0000012911 00000 n 0000013090 00000 n 0000359269 00000 n 0001013166 00000 n 0000013143 00000 n 0000013437 00000 n 0000363356 00000 n 0001013087 00000 n 0000013495 00000 n 0000013626 00000 n 0000363421 00000 n 0001013008 00000 n 0000013684 00000 n 0000013914 00000 n 0000363749 00000 n 0001012876 00000 n 0000013967 00000 n 0000014236 00000 n 0000367838 00000 n 0001012797 00000 n 0000014294 00000 n 0000014425 00000 n 0000367903 00000 n 0001012718 00000 n 0000014483 00000 n 0000014713 00000 n 0000368231 00000 n 0001012586 00000 n 0000014766 00000 n 0000015055 00000 n 0000372345 00000 n 0001012507 00000 n 0000015113 00000 n 0000015244 00000 n 0000372410 00000 n 0001012428 00000 n 0000015302 00000 n 0000015532 00000 n 0000372739 00000 n 0001012296 00000 n 0000015585 00000 n 0000015859 00000 n 0000376703 00000 n 0001012217 00000 n 0000015917 00000 n 0000016048 00000 n 0000376767 00000 n 0001012138 00000 n 0000016106 00000 n 0000016336 00000 n 0000377093 00000 n 0001012006 00000 n 0000016389 00000 n 0000016678 00000 n 0000381045 00000 n 0001011927 00000 n 0000016736 00000 n 0000016867 00000 n 0000381109 00000 n 0001011848 00000 n 0000016925 00000 n 0000017155 00000 n 0000381438 00000 n 0001011716 00000 n 0000017208 00000 n 0000017457 00000 n 0000385210 00000 n 0001011637 00000 n 0000017515 00000 n 0000017646 00000 n 0000385275 00000 n 0001011558 00000 n 0000017704 00000 n 0000017934 00000 n 0000385603 00000 n 0001011426 00000 n 0000017988 00000 n 0000018232 00000 n 0000389591 00000 n 0001011347 00000 n 0000018291 00000 n 0000018422 00000 n 0000389656 00000 n 0001011268 00000 n 0000018481 00000 n 0000018711 00000 n 0000389985 00000 n 0001011136 00000 n 0000018765 00000 n 0000019034 00000 n 0000393502 00000 n 0001011057 00000 n 0000019093 00000 n 0000019224 00000 n 0000393567 00000 n 0001010978 00000 n 0000019283 00000 n 0000019513 00000 n 0000393896 00000 n 0001010846 00000 n 0000019567 00000 n 0000019751 00000 n 0000422074 00000 n 0001010767 00000 n 0000019810 00000 n 0000019941 00000 n 0000422139 00000 n 0001010674 00000 n 0000020000 00000 n 0000020230 00000 n 0000422468 00000 n 0001010595 00000 n 0000020289 00000 n 0000020468 00000 n 0000447750 00000 n 0001010463 00000 n 0000020522 00000 n 0000020806 00000 n 0000451718 00000 n 0001010384 00000 n 0000020865 00000 n 0000020996 00000 n 0000451783 00000 n 0001010305 00000 n 0000021055 00000 n 0000021285 00000 n 0000458995 00000 n 0001010173 00000 n 0000021339 00000 n 0000021513 00000 n 0000486749 00000 n 0001010094 00000 n 0000021572 00000 n 0000021703 00000 n 0000486813 00000 n 0001010001 00000 n 0000021762 00000 n 0000021992 00000 n 0000517909 00000 n 0001009922 00000 n 0000022051 00000 n 0000022230 00000 n 0000545123 00000 n 0001009790 00000 n 0000022284 00000 n 0000022518 00000 n 0000545254 00000 n 0001009711 00000 n 0000022577 00000 n 0000022708 00000 n 0000545319 00000 n 0001009632 00000 n 0000022767 00000 n 0000022997 00000 n 0000549465 00000 n 0001009500 00000 n 0000023051 00000 n 0000023275 00000 n 0000549596 00000 n 0001009421 00000 n 0000023334 00000 n 0000023465 00000 n 0000549661 00000 n 0001009342 00000 n 0000023524 00000 n 0000023754 00000 n 0000554381 00000 n 0001009210 00000 n 0000023808 00000 n 0000024037 00000 n 0000554512 00000 n 0001009131 00000 n 0000024096 00000 n 0000024227 00000 n 0000554577 00000 n 0001009052 00000 n 0000024286 00000 n 0000024516 00000 n 0000558603 00000 n 0001008920 00000 n 0000024570 00000 n 0000024859 00000 n 0000558734 00000 n 0001008841 00000 n 0000024918 00000 n 0000025049 00000 n 0000558799 00000 n 0001008762 00000 n 0000025108 00000 n 0000025338 00000 n 0000563223 00000 n 0001008630 00000 n 0000025392 00000 n 0000025591 00000 n 0000563354 00000 n 0001008551 00000 n 0000025650 00000 n 0000025781 00000 n 0000563419 00000 n 0001008472 00000 n 0000025840 00000 n 0000026070 00000 n 0000565562 00000 n 0001008340 00000 n 0000026124 00000 n 0000026343 00000 n 0000570805 00000 n 0001008261 00000 n 0000026402 00000 n 0000026533 00000 n 0000573802 00000 n 0001008168 00000 n 0000026592 00000 n 0000026822 00000 n 0000574063 00000 n 0001008089 00000 n 0000026881 00000 n 0000027060 00000 n 0000574326 00000 n 0001007957 00000 n 0000027114 00000 n 0000027313 00000 n 0000574457 00000 n 0001007878 00000 n 0000027372 00000 n 0000027503 00000 n 0000580974 00000 n 0001007799 00000 n 0000027562 00000 n 0000027792 00000 n 0000581302 00000 n 0001007667 00000 n 0000027846 00000 n 0000028205 00000 n 0000585676 00000 n 0001007602 00000 n 0000028264 00000 n 0000028395 00000 n 0000585873 00000 n 0001007470 00000 n 0000028449 00000 n 0000028767 00000 n 0000586070 00000 n 0001007405 00000 n 0000028826 00000 n 0000028957 00000 n 0000589608 00000 n 0001007273 00000 n 0000029011 00000 n 0000029334 00000 n 0000589805 00000 n 0001007208 00000 n 0000029393 00000 n 0000029524 00000 n 0000590002 00000 n 0001007076 00000 n 0000029578 00000 n 0000029896 00000 n 0000590199 00000 n 0001007011 00000 n 0000029955 00000 n 0000030086 00000 n 0000593397 00000 n 0001006879 00000 n 0000030140 00000 n 0000030468 00000 n 0000593462 00000 n 0001006814 00000 n 0000030527 00000 n 0000030658 00000 n 0000593659 00000 n 0001006682 00000 n 0000030712 00000 n 0000031035 00000 n 0000593724 00000 n 0001006617 00000 n 0000031094 00000 n 0000031225 00000 n 0000596823 00000 n 0001006485 00000 n 0000031279 00000 n 0000031622 00000 n 0000596887 00000 n 0001006420 00000 n 0000031681 00000 n 0000031812 00000 n 0000597084 00000 n 0001006288 00000 n 0000031866 00000 n 0000032204 00000 n 0000597149 00000 n 0001006223 00000 n 0000032263 00000 n 0000032394 00000 n 0000601146 00000 n 0001006091 00000 n 0000032448 00000 n 0000032776 00000 n 0000601210 00000 n 0001006026 00000 n 0000032835 00000 n 0000032966 00000 n 0000601406 00000 n 0001005894 00000 n 0000033020 00000 n 0000033304 00000 n 0000601471 00000 n 0001005829 00000 n 0000033363 00000 n 0000033494 00000 n 0000607827 00000 n 0001005697 00000 n 0000033548 00000 n 0000033717 00000 n 0000640242 00000 n 0001005618 00000 n 0000033776 00000 n 0000033907 00000 n 0000640306 00000 n 0001005539 00000 n 0000033966 00000 n 0000034145 00000 n 0000669832 00000 n 0001005407 00000 n 0000034199 00000 n 0000034478 00000 n 0000674520 00000 n 0001005328 00000 n 0000034537 00000 n 0000034668 00000 n 0000674585 00000 n 0001005249 00000 n 0000034727 00000 n 0000034957 00000 n 0000674913 00000 n 0001005117 00000 n 0000035011 00000 n 0000035290 00000 n 0000678833 00000 n 0001005038 00000 n 0000035349 00000 n 0000035480 00000 n 0000678898 00000 n 0001004959 00000 n 0000035539 00000 n 0000035769 00000 n 0000679227 00000 n 0001004827 00000 n 0000035823 00000 n 0000036057 00000 n 0000683424 00000 n 0001004748 00000 n 0000036116 00000 n 0000036247 00000 n 0000683489 00000 n 0001004669 00000 n 0000036306 00000 n 0000036536 00000 n 0000683818 00000 n 0001004537 00000 n 0000036590 00000 n 0000036834 00000 n 0000688664 00000 n 0001004458 00000 n 0000036893 00000 n 0000037024 00000 n 0000688728 00000 n 0001004379 00000 n 0000037083 00000 n 0000037313 00000 n 0000689054 00000 n 0001004247 00000 n 0000037367 00000 n 0000037640 00000 n 0000694973 00000 n 0001004168 00000 n 0000037699 00000 n 0000037830 00000 n 0000695104 00000 n 0001004089 00000 n 0000037889 00000 n 0000038068 00000 n 0000700714 00000 n 0001003957 00000 n 0000038122 00000 n 0000038311 00000 n 0000712324 00000 n 0001003878 00000 n 0000038370 00000 n 0000038501 00000 n 0000717595 00000 n 0001003785 00000 n 0000038560 00000 n 0000038790 00000 n 0000717792 00000 n 0001003706 00000 n 0000038849 00000 n 0000039028 00000 n 0000725038 00000 n 0001003574 00000 n 0000039082 00000 n 0000039256 00000 n 0000739193 00000 n 0001003495 00000 n 0000039315 00000 n 0000039446 00000 n 0000744842 00000 n 0001003402 00000 n 0000039505 00000 n 0000039735 00000 n 0000745431 00000 n 0001003323 00000 n 0000039794 00000 n 0000039973 00000 n 0000759435 00000 n 0001003191 00000 n 0000040027 00000 n 0000040206 00000 n 0000775363 00000 n 0001003112 00000 n 0000040265 00000 n 0000040396 00000 n 0000780882 00000 n 0001003019 00000 n 0000040455 00000 n 0000040685 00000 n 0000781276 00000 n 0001002940 00000 n 0000040744 00000 n 0000040923 00000 n 0000796280 00000 n 0001002822 00000 n 0000040977 00000 n 0000041226 00000 n 0000800950 00000 n 0001002743 00000 n 0000041285 00000 n 0000041416 00000 n 0000801015 00000 n 0001002664 00000 n 0000041475 00000 n 0000041705 00000 n 0000042095 00000 n 0000042270 00000 n 0000041757 00000 n 0000042207 00000 n 0000997693 00000 n 0000977259 00000 n 0000997518 00000 n 0000998794 00000 n 0000049767 00000 n 0000044470 00000 n 0000042342 00000 n 0000976372 00000 n 0000958614 00000 n 0000976197 00000 n 0000044842 00000 n 0000044997 00000 n 0000045158 00000 n 0000045318 00000 n 0000045479 00000 n 0000045639 00000 n 0000045800 00000 n 0000045961 00000 n 0000046115 00000 n 0000046276 00000 n 0000046437 00000 n 0000046602 00000 n 0000046768 00000 n 0000046924 00000 n 0000047080 00000 n 0000047240 00000 n 0000047401 00000 n 0000047562 00000 n 0000047718 00000 n 0000047879 00000 n 0000048035 00000 n 0000048191 00000 n 0000048347 00000 n 0000048502 00000 n 0000048659 00000 n 0000048816 00000 n 0000048973 00000 n 0000049130 00000 n 0000049287 00000 n 0000049443 00000 n 0000049605 00000 n 0000058895 00000 n 0000052111 00000 n 0000049852 00000 n 0000052547 00000 n 0000052704 00000 n 0000052859 00000 n 0000053015 00000 n 0000053177 00000 n 0000053334 00000 n 0000053496 00000 n 0000053652 00000 n 0000053814 00000 n 0000053970 00000 n 0000054132 00000 n 0000054287 00000 n 0000054449 00000 n 0000054606 00000 n 0000054768 00000 n 0000054935 00000 n 0000055102 00000 n 0000055269 00000 n 0000055430 00000 n 0000055597 00000 n 0000055754 00000 n 0000055916 00000 n 0000056083 00000 n 0000056250 00000 n 0000056417 00000 n 0000056579 00000 n 0000056746 00000 n 0000056913 00000 n 0000057080 00000 n 0000057241 00000 n 0000057408 00000 n 0000057575 00000 n 0000057742 00000 n 0000057904 00000 n 0000058071 00000 n 0000058238 00000 n 0000058400 00000 n 0000058566 00000 n 0000058733 00000 n 0000069469 00000 n 0000061347 00000 n 0000058980 00000 n 0000061839 00000 n 0000062006 00000 n 0000062172 00000 n 0000062334 00000 n 0000062501 00000 n 0000062668 00000 n 0000062830 00000 n 0000062997 00000 n 0000063161 00000 n 0000063323 00000 n 0000063490 00000 n 0000063657 00000 n 0000063820 00000 n 0000063988 00000 n 0000064155 00000 n 0000064318 00000 n 0000064486 00000 n 0000064654 00000 n 0000064817 00000 n 0000064985 00000 n 0000065152 00000 n 0000065320 00000 n 0000065483 00000 n 0000065651 00000 n 0000065819 00000 n 0000065982 00000 n 0000066149 00000 n 0000066317 00000 n 0000066485 00000 n 0000066648 00000 n 0000066816 00000 n 0000066984 00000 n 0000067144 00000 n 0000067312 00000 n 0000067480 00000 n 0000067643 00000 n 0000067811 00000 n 0000067979 00000 n 0000068139 00000 n 0000068307 00000 n 0000068475 00000 n 0000068638 00000 n 0000068806 00000 n 0000068974 00000 n 0000069134 00000 n 0000069302 00000 n 0000080222 00000 n 0000072111 00000 n 0000069554 00000 n 0000072603 00000 n 0000072771 00000 n 0000072933 00000 n 0000073101 00000 n 0000073268 00000 n 0000958261 00000 n 0000956266 00000 n 0000958098 00000 n 0000073431 00000 n 0000073599 00000 n 0000073762 00000 n 0000073927 00000 n 0000074090 00000 n 0000074258 00000 n 0000074421 00000 n 0000074589 00000 n 0000074751 00000 n 0000074918 00000 n 0000075081 00000 n 0000075249 00000 n 0000075412 00000 n 0000075580 00000 n 0000075743 00000 n 0000075910 00000 n 0000076073 00000 n 0000076241 00000 n 0000076404 00000 n 0000076572 00000 n 0000076735 00000 n 0000076902 00000 n 0000077070 00000 n 0000077233 00000 n 0000077401 00000 n 0000077569 00000 n 0000077730 00000 n 0000077896 00000 n 0000078064 00000 n 0000078227 00000 n 0000078395 00000 n 0000078563 00000 n 0000078726 00000 n 0000078892 00000 n 0000079060 00000 n 0000079223 00000 n 0000079391 00000 n 0000079559 00000 n 0000079722 00000 n 0000079887 00000 n 0000080055 00000 n 0000087196 00000 n 0000083431 00000 n 0000080320 00000 n 0000086879 00000 n 0000083707 00000 n 0000083869 00000 n 0000084036 00000 n 0000084204 00000 n 0000084372 00000 n 0000084535 00000 n 0000084703 00000 n 0000084871 00000 n 0000085036 00000 n 0000085199 00000 n 0000085367 00000 n 0000955445 00000 n 0000941863 00000 n 0000955269 00000 n 0000087005 00000 n 0000085535 00000 n 0000085697 00000 n 0000940895 00000 n 0000921081 00000 n 0000940722 00000 n 0000087069 00000 n 0000085909 00000 n 0000920198 00000 n 0000902542 00000 n 0000920019 00000 n 0000086071 00000 n 0000086233 00000 n 0000086395 00000 n 0000086556 00000 n 0000086718 00000 n 0000236125 00000 n 0000090695 00000 n 0000089850 00000 n 0000087320 00000 n 0000090314 00000 n 0000090378 00000 n 0000089990 00000 n 0000090505 00000 n 0000090152 00000 n 0000090631 00000 n 0000998912 00000 n 0000093608 00000 n 0000093188 00000 n 0000090819 00000 n 0000093482 00000 n 0000093320 00000 n 0000096794 00000 n 0000096310 00000 n 0000093706 00000 n 0000096604 00000 n 0000096668 00000 n 0000096442 00000 n 0000901958 00000 n 0000900141 00000 n 0000901796 00000 n 0000102940 00000 n 0000099722 00000 n 0000096905 00000 n 0000102245 00000 n 0000099950 00000 n 0000100112 00000 n 0000100273 00000 n 0000102309 00000 n 0000100428 00000 n 0000100590 00000 n 0000100772 00000 n 0000100954 00000 n 0000101116 00000 n 0000101303 00000 n 0000102499 00000 n 0000102562 00000 n 0000101490 00000 n 0000101652 00000 n 0000101856 00000 n 0000102687 00000 n 0000102084 00000 n 0000102813 00000 n 0000169645 00000 n 0000106587 00000 n 0000105449 00000 n 0000103064 00000 n 0000106523 00000 n 0000105613 00000 n 0000105775 00000 n 0000105988 00000 n 0000106200 00000 n 0000106362 00000 n 0000109570 00000 n 0000108661 00000 n 0000106711 00000 n 0000109316 00000 n 0000109380 00000 n 0000108809 00000 n 0000108971 00000 n 0000109131 00000 n 0000114020 00000 n 0000112812 00000 n 0000109694 00000 n 0000113446 00000 n 0000113510 00000 n 0000112961 00000 n 0000113123 00000 n 0000113284 00000 n 0000113574 00000 n 0000113638 00000 n 0000113702 00000 n 0000113766 00000 n 0000113830 00000 n 0000113893 00000 n 0000113956 00000 n 0000999030 00000 n 0000117464 00000 n 0000116761 00000 n 0000114157 00000 n 0000116877 00000 n 0000116943 00000 n 0000117072 00000 n 0000117138 00000 n 0000117268 00000 n 0000117398 00000 n 0000119947 00000 n 0000119443 00000 n 0000117563 00000 n 0000119559 00000 n 0000119752 00000 n 0000119817 00000 n 0000122215 00000 n 0000121629 00000 n 0000120059 00000 n 0000122149 00000 n 0000121775 00000 n 0000121935 00000 n 0000127078 00000 n 0000124879 00000 n 0000122314 00000 n 0000126882 00000 n 0000125106 00000 n 0000125295 00000 n 0000125483 00000 n 0000125639 00000 n 0000125792 00000 n 0000125945 00000 n 0000126097 00000 n 0000126250 00000 n 0000126405 00000 n 0000126562 00000 n 0000126718 00000 n 0000127012 00000 n 0000899539 00000 n 0000889176 00000 n 0000899358 00000 n 0000134313 00000 n 0000140033 00000 n 0000149060 00000 n 0000151491 00000 n 0000153380 00000 n 0000155390 00000 n 0000158149 00000 n 0000161378 00000 n 0000129216 00000 n 0000129034 00000 n 0000127204 00000 n 0000129150 00000 n 0000131176 00000 n 0000130994 00000 n 0000129328 00000 n 0000131110 00000 n 0000999154 00000 n 0000134379 00000 n 0000133712 00000 n 0000131262 00000 n 0000134183 00000 n 0000133858 00000 n 0000134021 00000 n 0000136136 00000 n 0000135954 00000 n 0000134518 00000 n 0000136070 00000 n 0000138011 00000 n 0000137829 00000 n 0000136222 00000 n 0000137945 00000 n 0000140099 00000 n 0000139787 00000 n 0000138097 00000 n 0000139903 00000 n 0000141979 00000 n 0000141797 00000 n 0000140211 00000 n 0000141913 00000 n 0000143567 00000 n 0000143385 00000 n 0000142104 00000 n 0000143501 00000 n 0000999279 00000 n 0000145123 00000 n 0000144941 00000 n 0000143653 00000 n 0000145057 00000 n 0000146612 00000 n 0000146430 00000 n 0000145209 00000 n 0000146546 00000 n 0000149125 00000 n 0000148631 00000 n 0000146698 00000 n 0000148930 00000 n 0000148768 00000 n 0000151557 00000 n 0000151010 00000 n 0000149250 00000 n 0000151361 00000 n 0000151147 00000 n 0000153446 00000 n 0000153133 00000 n 0000151669 00000 n 0000153249 00000 n 0000155456 00000 n 0000155143 00000 n 0000153558 00000 n 0000155259 00000 n 0000999404 00000 n 0000158215 00000 n 0000157546 00000 n 0000155581 00000 n 0000158018 00000 n 0000157692 00000 n 0000157855 00000 n 0000161444 00000 n 0000160572 00000 n 0000158327 00000 n 0000161247 00000 n 0000160727 00000 n 0000160894 00000 n 0000161085 00000 n 0000452046 00000 n 0000558537 00000 n 0000165258 00000 n 0000164286 00000 n 0000161569 00000 n 0000164930 00000 n 0000165061 00000 n 0000164441 00000 n 0000164604 00000 n 0000164767 00000 n 0000165127 00000 n 0000169710 00000 n 0000168055 00000 n 0000165383 00000 n 0000169384 00000 n 0000168246 00000 n 0000169450 00000 n 0000168409 00000 n 0000168572 00000 n 0000168735 00000 n 0000168895 00000 n 0000169058 00000 n 0000169221 00000 n 0000173157 00000 n 0000172619 00000 n 0000169835 00000 n 0000173091 00000 n 0000172765 00000 n 0000172928 00000 n 0000177374 00000 n 0000176152 00000 n 0000173256 00000 n 0000177308 00000 n 0000176334 00000 n 0000176497 00000 n 0000176658 00000 n 0000176820 00000 n 0000176983 00000 n 0000177146 00000 n 0000999529 00000 n 0000870042 00000 n 0000183055 00000 n 0000179848 00000 n 0000177460 00000 n 0000182337 00000 n 0000182467 00000 n 0000182532 00000 n 0000180093 00000 n 0000182598 00000 n 0000180299 00000 n 0000182664 00000 n 0000180500 00000 n 0000182730 00000 n 0000180701 00000 n 0000180868 00000 n 0000181030 00000 n 0000181193 00000 n 0000181356 00000 n 0000181519 00000 n 0000181684 00000 n 0000181848 00000 n 0000182011 00000 n 0000182174 00000 n 0000261645 00000 n 0000517974 00000 n 0000518106 00000 n 0000724972 00000 n 0000241719 00000 n 0000188666 00000 n 0000184723 00000 n 0000183180 00000 n 0000188471 00000 n 0000185040 00000 n 0000185203 00000 n 0000185367 00000 n 0000185530 00000 n 0000185692 00000 n 0000185855 00000 n 0000186018 00000 n 0000186181 00000 n 0000186344 00000 n 0000186507 00000 n 0000186670 00000 n 0000186834 00000 n 0000186998 00000 n 0000187162 00000 n 0000187325 00000 n 0000187489 00000 n 0000187653 00000 n 0000187817 00000 n 0000187981 00000 n 0000188145 00000 n 0000188308 00000 n 0000194112 00000 n 0000190335 00000 n 0000188765 00000 n 0000193916 00000 n 0000190643 00000 n 0000190807 00000 n 0000190970 00000 n 0000191133 00000 n 0000191297 00000 n 0000191461 00000 n 0000191625 00000 n 0000191789 00000 n 0000191953 00000 n 0000192116 00000 n 0000192280 00000 n 0000192444 00000 n 0000192608 00000 n 0000192772 00000 n 0000192936 00000 n 0000193100 00000 n 0000193264 00000 n 0000193427 00000 n 0000193590 00000 n 0000193753 00000 n 0000202014 00000 n 0000196380 00000 n 0000194224 00000 n 0000201948 00000 n 0000196778 00000 n 0000196951 00000 n 0000197119 00000 n 0000197282 00000 n 0000197453 00000 n 0000197620 00000 n 0000197783 00000 n 0000197952 00000 n 0000198121 00000 n 0000198284 00000 n 0000198477 00000 n 0000198640 00000 n 0000198827 00000 n 0000198990 00000 n 0000199182 00000 n 0000199344 00000 n 0000199533 00000 n 0000199695 00000 n 0000199886 00000 n 0000200048 00000 n 0000200231 00000 n 0000200394 00000 n 0000200577 00000 n 0000200741 00000 n 0000200929 00000 n 0000201093 00000 n 0000201262 00000 n 0000201429 00000 n 0000201593 00000 n 0000201784 00000 n 0000247555 00000 n 0000759369 00000 n 0000266487 00000 n 0000289658 00000 n 0000359203 00000 n 0000363683 00000 n 0000368165 00000 n 0000372673 00000 n 0000377027 00000 n 0000381372 00000 n 0000385538 00000 n 0000389919 00000 n 0000393830 00000 n 0000447684 00000 n 0000210659 00000 n 0000204480 00000 n 0000202087 00000 n 0000210593 00000 n 0000204905 00000 n 0000205072 00000 n 0000205237 00000 n 0000205401 00000 n 0000205583 00000 n 0000205747 00000 n 0000205926 00000 n 0000206090 00000 n 0000206270 00000 n 0000206436 00000 n 0000206600 00000 n 0000206792 00000 n 0000206956 00000 n 0000207128 00000 n 0000207300 00000 n 0000207464 00000 n 0000207640 00000 n 0000207816 00000 n 0000207980 00000 n 0000208152 00000 n 0000208315 00000 n 0000208506 00000 n 0000208670 00000 n 0000208853 00000 n 0000209036 00000 n 0000209200 00000 n 0000209384 00000 n 0000209566 00000 n 0000209730 00000 n 0000209913 00000 n 0000210080 00000 n 0000210244 00000 n 0000210429 00000 n 0000545057 00000 n 0000549399 00000 n 0000554315 00000 n 0000607761 00000 n 0000563157 00000 n 0000565496 00000 n 0000574260 00000 n 0000581236 00000 n 0000585807 00000 n 0000589936 00000 n 0000589542 00000 n 0000593331 00000 n 0000220955 00000 n 0000213340 00000 n 0000210745 00000 n 0000220889 00000 n 0000213837 00000 n 0000214021 00000 n 0000214185 00000 n 0000214373 00000 n 0000214558 00000 n 0000214722 00000 n 0000214909 00000 n 0000215093 00000 n 0000215257 00000 n 0000215442 00000 n 0000215608 00000 n 0000215772 00000 n 0000215963 00000 n 0000216148 00000 n 0000216311 00000 n 0000216477 00000 n 0000216643 00000 n 0000216806 00000 n 0000216996 00000 n 0000217166 00000 n 0000217338 00000 n 0000217508 00000 n 0000217671 00000 n 0000217860 00000 n 0000218024 00000 n 0000218205 00000 n 0000218369 00000 n 0000218552 00000 n 0000218716 00000 n 0000218886 00000 n 0000219050 00000 n 0000219220 00000 n 0000219388 00000 n 0000219552 00000 n 0000219718 00000 n 0000219883 00000 n 0000220049 00000 n 0000220213 00000 n 0000220379 00000 n 0000220541 00000 n 0000220725 00000 n 0000999654 00000 n 0000593593 00000 n 0000596757 00000 n 0000597018 00000 n 0000597279 00000 n 0000601340 00000 n 0000669766 00000 n 0000688988 00000 n 0000674848 00000 n 0000679161 00000 n 0000683752 00000 n 0000700648 00000 n 0000796214 00000 n 0000228334 00000 n 0000223738 00000 n 0000221041 00000 n 0000228009 00000 n 0000228139 00000 n 0000228268 00000 n 0000224064 00000 n 0000224245 00000 n 0000224436 00000 n 0000224618 00000 n 0000224797 00000 n 0000224977 00000 n 0000225142 00000 n 0000225333 00000 n 0000225504 00000 n 0000225673 00000 n 0000225849 00000 n 0000226024 00000 n 0000226195 00000 n 0000226386 00000 n 0000226570 00000 n 0000226760 00000 n 0000226929 00000 n 0000227102 00000 n 0000227273 00000 n 0000227462 00000 n 0000227643 00000 n 0000227826 00000 n 0000236387 00000 n 0000231046 00000 n 0000228446 00000 n 0000235995 00000 n 0000231417 00000 n 0000236255 00000 n 0000231580 00000 n 0000231753 00000 n 0000231921 00000 n 0000232092 00000 n 0000232259 00000 n 0000232428 00000 n 0000232597 00000 n 0000232766 00000 n 0000232932 00000 n 0000233099 00000 n 0000233265 00000 n 0000233437 00000 n 0000233607 00000 n 0000233781 00000 n 0000233956 00000 n 0000234128 00000 n 0000234294 00000 n 0000234460 00000 n 0000234631 00000 n 0000234801 00000 n 0000234971 00000 n 0000235136 00000 n 0000235302 00000 n 0000235469 00000 n 0000236321 00000 n 0000235637 00000 n 0000235833 00000 n 0000241390 00000 n 0000241850 00000 n 0000238851 00000 n 0000236499 00000 n 0000240998 00000 n 0000241064 00000 n 0000241129 00000 n 0000239078 00000 n 0000239275 00000 n 0000239441 00000 n 0000239607 00000 n 0000239804 00000 n 0000241194 00000 n 0000239971 00000 n 0000240168 00000 n 0000240337 00000 n 0000240505 00000 n 0000241456 00000 n 0000240668 00000 n 0000241587 00000 n 0000241653 00000 n 0000888517 00000 n 0000878244 00000 n 0000888335 00000 n 0000240831 00000 n 0000244228 00000 n 0000247816 00000 n 0000244001 00000 n 0000242002 00000 n 0000247359 00000 n 0000245380 00000 n 0000245545 00000 n 0000245708 00000 n 0000245873 00000 n 0000246036 00000 n 0000247684 00000 n 0000246204 00000 n 0000246411 00000 n 0000246606 00000 n 0000247750 00000 n 0000246772 00000 n 0000246945 00000 n 0000247152 00000 n 0000245115 00000 n 0000245235 00000 n 0000245283 00000 n 0000245358 00000 n 0000266158 00000 n 0000266356 00000 n 0000255761 00000 n 0000251357 00000 n 0000247996 00000 n 0000255302 00000 n 0000255368 00000 n 0000251665 00000 n 0000251872 00000 n 0000252045 00000 n 0000252252 00000 n 0000252420 00000 n 0000252627 00000 n 0000252799 00000 n 0000877947 00000 n 0000871964 00000 n 0000877768 00000 n 0000255433 00000 n 0000252965 00000 n 0000253172 00000 n 0000253340 00000 n 0000253513 00000 n 0000253681 00000 n 0000253853 00000 n 0000254026 00000 n 0000254225 00000 n 0000254426 00000 n 0000254592 00000 n 0000254793 00000 n 0000255629 00000 n 0000255695 00000 n 0000254964 00000 n 0000255135 00000 n 0000261843 00000 n 0000530659 00000 n 0000262040 00000 n 0000259223 00000 n 0000255940 00000 n 0000261513 00000 n 0000261579 00000 n 0000259459 00000 n 0000261711 00000 n 0000259632 00000 n 0000259800 00000 n 0000259964 00000 n 0000260165 00000 n 0000261777 00000 n 0000260331 00000 n 0000260503 00000 n 0000260668 00000 n 0000260832 00000 n 0000261003 00000 n 0000261909 00000 n 0000261174 00000 n 0000261347 00000 n 0000999779 00000 n 0000338255 00000 n 0000269206 00000 n 0000266618 00000 n 0000265014 00000 n 0000262205 00000 n 0000266092 00000 n 0000266224 00000 n 0000265187 00000 n 0000266290 00000 n 0000265353 00000 n 0000266421 00000 n 0000265556 00000 n 0000265721 00000 n 0000265924 00000 n 0000422533 00000 n 0000409545 00000 n 0000273056 00000 n 0000268970 00000 n 0000266770 00000 n 0000272660 00000 n 0000272726 00000 n 0000270360 00000 n 0000270565 00000 n 0000270760 00000 n 0000272792 00000 n 0000270926 00000 n 0000271097 00000 n 0000271301 00000 n 0000272858 00000 n 0000271506 00000 n 0000271710 00000 n 0000272924 00000 n 0000271915 00000 n 0000272120 00000 n 0000272290 00000 n 0000272990 00000 n 0000272455 00000 n 0000270095 00000 n 0000270215 00000 n 0000270263 00000 n 0000270338 00000 n 0000284440 00000 n 0000284638 00000 n 0000279157 00000 n 0000279355 00000 n 0000279487 00000 n 0000276632 00000 n 0000273237 00000 n 0000278962 00000 n 0000276868 00000 n 0000277036 00000 n 0000277207 00000 n 0000277375 00000 n 0000277546 00000 n 0000277717 00000 n 0000277888 00000 n 0000278088 00000 n 0000278288 00000 n 0000279223 00000 n 0000278454 00000 n 0000278624 00000 n 0000279289 00000 n 0000278792 00000 n 0000279421 00000 n 0000284704 00000 n 0000282813 00000 n 0000279652 00000 n 0000284243 00000 n 0000283004 00000 n 0000283170 00000 n 0000283373 00000 n 0000284309 00000 n 0000283538 00000 n 0000283709 00000 n 0000284506 00000 n 0000283874 00000 n 0000284572 00000 n 0000284040 00000 n 0000289854 00000 n 0000287252 00000 n 0000284843 00000 n 0000289527 00000 n 0000289593 00000 n 0000287479 00000 n 0000287647 00000 n 0000287850 00000 n 0000289788 00000 n 0000288019 00000 n 0000288212 00000 n 0000288400 00000 n 0000288591 00000 n 0000288780 00000 n 0000288972 00000 n 0000289156 00000 n 0000289339 00000 n 0000297874 00000 n 0000292836 00000 n 0000290006 00000 n 0000297413 00000 n 0000297479 00000 n 0000293162 00000 n 0000293365 00000 n 0000297544 00000 n 0000293534 00000 n 0000293737 00000 n 0000293940 00000 n 0000294143 00000 n 0000294345 00000 n 0000294548 00000 n 0000297610 00000 n 0000294751 00000 n 0000294954 00000 n 0000297676 00000 n 0000295122 00000 n 0000297742 00000 n 0000295325 00000 n 0000295528 00000 n 0000297808 00000 n 0000295697 00000 n 0000295862 00000 n 0000296062 00000 n 0000296229 00000 n 0000296398 00000 n 0000296601 00000 n 0000296804 00000 n 0000297007 00000 n 0000297210 00000 n 0000999904 00000 n 0000323373 00000 n 0000326736 00000 n 0000326868 00000 n 0000327000 00000 n 0000327132 00000 n 0000327262 00000 n 0000330002 00000 n 0000330200 00000 n 0000330397 00000 n 0000330595 00000 n 0000333313 00000 n 0000305806 00000 n 0000300963 00000 n 0000298012 00000 n 0000305213 00000 n 0000305279 00000 n 0000301271 00000 n 0000301474 00000 n 0000301677 00000 n 0000301880 00000 n 0000302082 00000 n 0000305345 00000 n 0000302251 00000 n 0000302454 00000 n 0000302657 00000 n 0000302860 00000 n 0000305411 00000 n 0000303062 00000 n 0000305477 00000 n 0000303264 00000 n 0000305543 00000 n 0000303467 00000 n 0000303664 00000 n 0000305608 00000 n 0000303867 00000 n 0000304070 00000 n 0000305674 00000 n 0000304237 00000 n 0000304440 00000 n 0000305740 00000 n 0000304609 00000 n 0000304810 00000 n 0000305013 00000 n 0000333511 00000 n 0000333709 00000 n 0000333905 00000 n 0000337860 00000 n 0000337992 00000 n 0000338124 00000 n 0000338453 00000 n 0000311690 00000 n 0000308465 00000 n 0000305931 00000 n 0000311624 00000 n 0000308728 00000 n 0000308930 00000 n 0000309098 00000 n 0000309301 00000 n 0000309467 00000 n 0000309669 00000 n 0000309835 00000 n 0000310038 00000 n 0000310206 00000 n 0000310407 00000 n 0000310610 00000 n 0000310813 00000 n 0000311016 00000 n 0000311219 00000 n 0000311421 00000 n 0000343439 00000 n 0000343637 00000 n 0000343835 00000 n 0000348107 00000 n 0000348305 00000 n 0000348503 00000 n 0000351173 00000 n 0000351371 00000 n 0000351503 00000 n 0000351635 00000 n 0000351767 00000 n 0000318683 00000 n 0000314687 00000 n 0000311815 00000 n 0000318221 00000 n 0000314968 00000 n 0000315170 00000 n 0000315373 00000 n 0000315575 00000 n 0000315776 00000 n 0000318287 00000 n 0000315979 00000 n 0000316180 00000 n 0000316374 00000 n 0000318353 00000 n 0000316542 00000 n 0000316745 00000 n 0000318419 00000 n 0000316913 00000 n 0000317116 00000 n 0000318485 00000 n 0000317285 00000 n 0000318551 00000 n 0000317488 00000 n 0000317689 00000 n 0000317855 00000 n 0000318617 00000 n 0000318020 00000 n 0000354741 00000 n 0000354873 00000 n 0000355005 00000 n 0000358939 00000 n 0000359071 00000 n 0000323505 00000 n 0000323637 00000 n 0000321817 00000 n 0000318821 00000 n 0000323178 00000 n 0000322008 00000 n 0000322177 00000 n 0000322344 00000 n 0000322510 00000 n 0000322673 00000 n 0000322846 00000 n 0000323009 00000 n 0000323439 00000 n 0000323571 00000 n 0000870009 00000 n 0000327394 00000 n 0000326235 00000 n 0000323789 00000 n 0000326540 00000 n 0000326606 00000 n 0000326372 00000 n 0000326802 00000 n 0000326934 00000 n 0000327066 00000 n 0000327197 00000 n 0000327328 00000 n 0000330727 00000 n 0000329754 00000 n 0000327559 00000 n 0000329870 00000 n 0000329936 00000 n 0000330068 00000 n 0000330134 00000 n 0000330266 00000 n 0000330332 00000 n 0000330463 00000 n 0000330529 00000 n 0000330661 00000 n 0001000029 00000 n 0000334037 00000 n 0000333065 00000 n 0000330879 00000 n 0000333181 00000 n 0000333247 00000 n 0000333379 00000 n 0000333445 00000 n 0000333577 00000 n 0000333643 00000 n 0000333773 00000 n 0000333839 00000 n 0000333971 00000 n 0000338585 00000 n 0000336711 00000 n 0000334189 00000 n 0000337728 00000 n 0000336884 00000 n 0000337794 00000 n 0000337926 00000 n 0000337053 00000 n 0000337222 00000 n 0000337391 00000 n 0000338058 00000 n 0000337560 00000 n 0000338190 00000 n 0000338321 00000 n 0000338387 00000 n 0000338519 00000 n 0000343967 00000 n 0000341593 00000 n 0000338737 00000 n 0000343307 00000 n 0000343373 00000 n 0000343505 00000 n 0000341802 00000 n 0000343571 00000 n 0000343703 00000 n 0000341971 00000 n 0000342138 00000 n 0000342305 00000 n 0000342472 00000 n 0000342644 00000 n 0000343769 00000 n 0000342809 00000 n 0000343901 00000 n 0000342976 00000 n 0000343140 00000 n 0000348634 00000 n 0000346964 00000 n 0000344119 00000 n 0000347975 00000 n 0000347137 00000 n 0000347303 00000 n 0000347474 00000 n 0000348041 00000 n 0000347640 00000 n 0000348173 00000 n 0000347806 00000 n 0000348239 00000 n 0000348371 00000 n 0000348437 00000 n 0000348568 00000 n 0000351899 00000 n 0000350925 00000 n 0000348786 00000 n 0000351041 00000 n 0000351107 00000 n 0000351239 00000 n 0000351305 00000 n 0000351437 00000 n 0000351569 00000 n 0000351701 00000 n 0000351833 00000 n 0000355137 00000 n 0000354493 00000 n 0000352051 00000 n 0000354609 00000 n 0000354675 00000 n 0000354807 00000 n 0000354939 00000 n 0000355071 00000 n 0001000154 00000 n 0000357615 00000 n 0000359399 00000 n 0000357478 00000 n 0000355289 00000 n 0000358807 00000 n 0000358873 00000 n 0000359005 00000 n 0000359137 00000 n 0000359334 00000 n 0000358580 00000 n 0000358315 00000 n 0000358435 00000 n 0000358483 00000 n 0000358558 00000 n 0000363485 00000 n 0000361850 00000 n 0000363880 00000 n 0000361704 00000 n 0000359593 00000 n 0000363290 00000 n 0000363551 00000 n 0000363617 00000 n 0000362868 00000 n 0000363814 00000 n 0000363069 00000 n 0000362603 00000 n 0000362723 00000 n 0000362771 00000 n 0000362846 00000 n 0000541680 00000 n 0000367967 00000 n 0000366321 00000 n 0000368362 00000 n 0000366175 00000 n 0000364061 00000 n 0000367772 00000 n 0000368033 00000 n 0000368099 00000 n 0000367345 00000 n 0000368296 00000 n 0000367546 00000 n 0000367080 00000 n 0000367200 00000 n 0000367248 00000 n 0000367323 00000 n 0000372475 00000 n 0000370837 00000 n 0000372870 00000 n 0000370691 00000 n 0000368543 00000 n 0000372279 00000 n 0000372541 00000 n 0000372607 00000 n 0000371857 00000 n 0000372804 00000 n 0000372058 00000 n 0000371592 00000 n 0000371712 00000 n 0000371760 00000 n 0000371835 00000 n 0000376832 00000 n 0000375189 00000 n 0000377224 00000 n 0000375043 00000 n 0000373051 00000 n 0000376637 00000 n 0000376897 00000 n 0000376962 00000 n 0000376211 00000 n 0000377158 00000 n 0000376411 00000 n 0000375946 00000 n 0000376066 00000 n 0000376114 00000 n 0000376189 00000 n 0000381174 00000 n 0000379609 00000 n 0000381569 00000 n 0000379463 00000 n 0000377405 00000 n 0000380979 00000 n 0000381240 00000 n 0000381306 00000 n 0000380560 00000 n 0000381503 00000 n 0000380761 00000 n 0001000279 00000 n 0000380295 00000 n 0000380415 00000 n 0000380463 00000 n 0000380538 00000 n 0000385340 00000 n 0000383993 00000 n 0000385668 00000 n 0000383856 00000 n 0000381750 00000 n 0000385144 00000 n 0000385406 00000 n 0000385472 00000 n 0000384943 00000 n 0000384678 00000 n 0000384798 00000 n 0000384846 00000 n 0000384921 00000 n 0000388030 00000 n 0000390050 00000 n 0000387884 00000 n 0000385849 00000 n 0000389460 00000 n 0000389526 00000 n 0000389042 00000 n 0000389721 00000 n 0000389787 00000 n 0000389853 00000 n 0000389259 00000 n 0000388777 00000 n 0000388897 00000 n 0000388945 00000 n 0000389020 00000 n 0000397003 00000 n 0000393961 00000 n 0000392627 00000 n 0000390232 00000 n 0000393371 00000 n 0000393437 00000 n 0000392782 00000 n 0000393632 00000 n 0000393698 00000 n 0000393764 00000 n 0000393004 00000 n 0000393205 00000 n 0000402619 00000 n 0000396686 00000 n 0000394113 00000 n 0000402223 00000 n 0000402289 00000 n 0000398300 00000 n 0000402355 00000 n 0000402421 00000 n 0000398491 00000 n 0000398694 00000 n 0000402487 00000 n 0000398863 00000 n 0000399065 00000 n 0000399268 00000 n 0000399463 00000 n 0000402553 00000 n 0000399629 00000 n 0000399795 00000 n 0000399998 00000 n 0000400166 00000 n 0000400369 00000 n 0000400537 00000 n 0000400706 00000 n 0000400908 00000 n 0000401076 00000 n 0000401245 00000 n 0000401448 00000 n 0000401651 00000 n 0000401818 00000 n 0000402021 00000 n 0000398035 00000 n 0000398155 00000 n 0000398203 00000 n 0000398278 00000 n 0000427763 00000 n 0000427961 00000 n 0000432597 00000 n 0000432795 00000 n 0000433059 00000 n 0000433191 00000 n 0000409743 00000 n 0000405595 00000 n 0000402787 00000 n 0000409216 00000 n 0000405876 00000 n 0000406078 00000 n 0000409282 00000 n 0000406244 00000 n 0000406447 00000 n 0000406650 00000 n 0000406817 00000 n 0000407020 00000 n 0000407223 00000 n 0000409348 00000 n 0000407426 00000 n 0000409414 00000 n 0000407629 00000 n 0000409479 00000 n 0000407832 00000 n 0000408035 00000 n 0000408238 00000 n 0000408441 00000 n 0000408607 00000 n 0000409611 00000 n 0000408810 00000 n 0000409677 00000 n 0000409013 00000 n 0000433323 00000 n 0000438456 00000 n 0000438654 00000 n 0000438786 00000 n 0000438983 00000 n 0000443642 00000 n 0000443905 00000 n 0000415669 00000 n 0000412507 00000 n 0000409868 00000 n 0000415141 00000 n 0000412743 00000 n 0000412946 00000 n 0000415207 00000 n 0000413147 00000 n 0000415273 00000 n 0000413350 00000 n 0000413553 00000 n 0000415339 00000 n 0000413755 00000 n 0000415405 00000 n 0000415471 00000 n 0000413958 00000 n 0000414161 00000 n 0000414364 00000 n 0000414567 00000 n 0000415537 00000 n 0000414735 00000 n 0000415603 00000 n 0000414938 00000 n 0001000404 00000 n 0000444101 00000 n 0000447222 00000 n 0000447354 00000 n 0000443774 00000 n 0000422204 00000 n 0000422336 00000 n 0000422665 00000 n 0000418681 00000 n 0000415807 00000 n 0000421810 00000 n 0000421876 00000 n 0000418953 00000 n 0000421942 00000 n 0000419156 00000 n 0000419359 00000 n 0000422008 00000 n 0000419559 00000 n 0000419762 00000 n 0000419929 00000 n 0000420098 00000 n 0000420266 00000 n 0000420433 00000 n 0000420601 00000 n 0000420768 00000 n 0000420937 00000 n 0000422270 00000 n 0000421106 00000 n 0000421271 00000 n 0000422402 00000 n 0000421438 00000 n 0000421607 00000 n 0000422599 00000 n 0000447552 00000 n 0000428093 00000 n 0000425927 00000 n 0000422830 00000 n 0000427632 00000 n 0000426127 00000 n 0000427698 00000 n 0000426293 00000 n 0000426500 00000 n 0000427829 00000 n 0000426705 00000 n 0000426873 00000 n 0000427895 00000 n 0000427073 00000 n 0000427264 00000 n 0000428027 00000 n 0000427466 00000 n 0000781341 00000 n 0000433455 00000 n 0000430543 00000 n 0000428232 00000 n 0000432465 00000 n 0000432531 00000 n 0000430752 00000 n 0000430943 00000 n 0000432663 00000 n 0000432729 00000 n 0000431145 00000 n 0000431336 00000 n 0000432861 00000 n 0000431538 00000 n 0000432927 00000 n 0000432993 00000 n 0000431705 00000 n 0000431895 00000 n 0000433125 00000 n 0000432097 00000 n 0000432263 00000 n 0000433257 00000 n 0000433389 00000 n 0000786238 00000 n 0000786436 00000 n 0000786700 00000 n 0000791408 00000 n 0000439115 00000 n 0000436506 00000 n 0000433620 00000 n 0000438390 00000 n 0000436715 00000 n 0000436881 00000 n 0000438522 00000 n 0000437081 00000 n 0000438588 00000 n 0000437249 00000 n 0000437440 00000 n 0000438720 00000 n 0000437640 00000 n 0000437841 00000 n 0000438032 00000 n 0000438852 00000 n 0000438199 00000 n 0000438918 00000 n 0000439049 00000 n 0000652661 00000 n 0000774904 00000 n 0000444299 00000 n 0000442384 00000 n 0000439280 00000 n 0000443510 00000 n 0000443576 00000 n 0000443708 00000 n 0000443839 00000 n 0000442557 00000 n 0000443970 00000 n 0000444035 00000 n 0000442723 00000 n 0000442914 00000 n 0000444167 00000 n 0000443116 00000 n 0000443319 00000 n 0000444233 00000 n 0000774970 00000 n 0000447815 00000 n 0000447040 00000 n 0000444464 00000 n 0000447156 00000 n 0000447288 00000 n 0000447420 00000 n 0000447486 00000 n 0000447618 00000 n 0001000529 00000 n 0000450135 00000 n 0000452112 00000 n 0000449989 00000 n 0000447980 00000 n 0000451586 00000 n 0000451652 00000 n 0000451160 00000 n 0000451848 00000 n 0000451914 00000 n 0000451980 00000 n 0000451385 00000 n 0000450895 00000 n 0000451015 00000 n 0000451063 00000 n 0000451138 00000 n 0000459191 00000 n 0000455187 00000 n 0000452294 00000 n 0000458929 00000 n 0000455486 00000 n 0000459059 00000 n 0000455653 00000 n 0000455835 00000 n 0000456013 00000 n 0000456193 00000 n 0000456358 00000 n 0000459125 00000 n 0000456549 00000 n 0000456750 00000 n 0000456951 00000 n 0000457118 00000 n 0000457284 00000 n 0000457484 00000 n 0000457685 00000 n 0000457852 00000 n 0000458017 00000 n 0000458198 00000 n 0000458398 00000 n 0000458563 00000 n 0000458763 00000 n 0000486878 00000 n 0000493136 00000 n 0000498890 00000 n 0000499088 00000 n 0000499286 00000 n 0000505408 00000 n 0000470317 00000 n 0000463060 00000 n 0000459342 00000 n 0000469855 00000 n 0000463503 00000 n 0000463704 00000 n 0000463870 00000 n 0000464071 00000 n 0000469921 00000 n 0000464237 00000 n 0000464436 00000 n 0000464605 00000 n 0000464805 00000 n 0000464972 00000 n 0000465139 00000 n 0000465339 00000 n 0000465506 00000 n 0000465673 00000 n 0000465874 00000 n 0000466040 00000 n 0000466205 00000 n 0000469987 00000 n 0000466371 00000 n 0000466540 00000 n 0000466741 00000 n 0000466942 00000 n 0000467142 00000 n 0000467343 00000 n 0000467544 00000 n 0000470053 00000 n 0000467711 00000 n 0000467880 00000 n 0000468081 00000 n 0000468248 00000 n 0000470119 00000 n 0000468414 00000 n 0000468582 00000 n 0000468782 00000 n 0000470185 00000 n 0000468949 00000 n 0000469118 00000 n 0000469319 00000 n 0000470251 00000 n 0000469485 00000 n 0000469654 00000 n 0000505606 00000 n 0000511594 00000 n 0000524176 00000 n 0000524308 00000 n 0000524440 00000 n 0000524703 00000 n 0000524835 00000 n 0000480355 00000 n 0000474065 00000 n 0000470442 00000 n 0000479828 00000 n 0000474454 00000 n 0000474621 00000 n 0000474822 00000 n 0000474989 00000 n 0000475190 00000 n 0000475358 00000 n 0000479894 00000 n 0000475526 00000 n 0000475727 00000 n 0000475893 00000 n 0000479960 00000 n 0000476094 00000 n 0000480026 00000 n 0000476295 00000 n 0000476496 00000 n 0000480092 00000 n 0000476697 00000 n 0000476897 00000 n 0000480158 00000 n 0000477062 00000 n 0000477229 00000 n 0000477430 00000 n 0000480224 00000 n 0000477595 00000 n 0000477762 00000 n 0000477962 00000 n 0000478128 00000 n 0000478329 00000 n 0000478494 00000 n 0000478695 00000 n 0000478895 00000 n 0000479095 00000 n 0000479260 00000 n 0000479461 00000 n 0000480289 00000 n 0000479627 00000 n 0000530067 00000 n 0000530199 00000 n 0000530329 00000 n 0000530461 00000 n 0000536505 00000 n 0000536637 00000 n 0000536768 00000 n 0000536900 00000 n 0000487010 00000 n 0000483521 00000 n 0000480480 00000 n 0000486487 00000 n 0000483784 00000 n 0000483985 00000 n 0000484152 00000 n 0000484353 00000 n 0000486553 00000 n 0000486618 00000 n 0000484554 00000 n 0000486683 00000 n 0000484755 00000 n 0000484956 00000 n 0000485157 00000 n 0000485323 00000 n 0000485490 00000 n 0000485657 00000 n 0000485823 00000 n 0000485990 00000 n 0000486154 00000 n 0000486320 00000 n 0000486944 00000 n 0000541152 00000 n 0000541350 00000 n 0000541482 00000 n 0000493268 00000 n 0000490855 00000 n 0000487162 00000 n 0000492938 00000 n 0000491082 00000 n 0000491249 00000 n 0000491412 00000 n 0000491577 00000 n 0000493004 00000 n 0000491744 00000 n 0000493070 00000 n 0000491911 00000 n 0000492091 00000 n 0000492257 00000 n 0000492429 00000 n 0000493202 00000 n 0000492605 00000 n 0000492772 00000 n 0001000654 00000 n 0000499418 00000 n 0000496462 00000 n 0000493420 00000 n 0000498758 00000 n 0000496698 00000 n 0000496864 00000 n 0000497030 00000 n 0000498824 00000 n 0000497222 00000 n 0000497388 00000 n 0000497554 00000 n 0000497719 00000 n 0000498956 00000 n 0000497885 00000 n 0000499022 00000 n 0000498076 00000 n 0000499154 00000 n 0000498242 00000 n 0000498409 00000 n 0000499220 00000 n 0000498591 00000 n 0000499352 00000 n 0000505738 00000 n 0000503112 00000 n 0000499570 00000 n 0000505276 00000 n 0000503339 00000 n 0000505342 00000 n 0000503504 00000 n 0000503670 00000 n 0000505474 00000 n 0000503836 00000 n 0000504002 00000 n 0000504167 00000 n 0000504368 00000 n 0000504568 00000 n 0000504734 00000 n 0000505540 00000 n 0000504916 00000 n 0000505077 00000 n 0000505672 00000 n 0000646373 00000 n 0000511792 00000 n 0000509388 00000 n 0000505903 00000 n 0000511462 00000 n 0000509615 00000 n 0000509781 00000 n 0000509947 00000 n 0000510113 00000 n 0000511528 00000 n 0000510305 00000 n 0000511660 00000 n 0000510468 00000 n 0000510634 00000 n 0000510800 00000 n 0000511726 00000 n 0000510966 00000 n 0000511133 00000 n 0000511297 00000 n 0000518303 00000 n 0000515436 00000 n 0000511944 00000 n 0000517777 00000 n 0000517843 00000 n 0000515672 00000 n 0000515844 00000 n 0000518040 00000 n 0000516019 00000 n 0000516186 00000 n 0000516353 00000 n 0000516555 00000 n 0000516717 00000 n 0000516916 00000 n 0000517116 00000 n 0000518172 00000 n 0000517280 00000 n 0000517446 00000 n 0000518238 00000 n 0000517613 00000 n 0000524966 00000 n 0000521515 00000 n 0000518468 00000 n 0000524110 00000 n 0000521769 00000 n 0000524242 00000 n 0000521936 00000 n 0000522102 00000 n 0000522268 00000 n 0000522433 00000 n 0000524374 00000 n 0000522599 00000 n 0000522765 00000 n 0000524506 00000 n 0000522928 00000 n 0000523094 00000 n 0000524572 00000 n 0000524637 00000 n 0000523260 00000 n 0000523440 00000 n 0000523612 00000 n 0000524769 00000 n 0000523779 00000 n 0000524900 00000 n 0000523945 00000 n 0000530789 00000 n 0000528265 00000 n 0000525118 00000 n 0000530001 00000 n 0000528474 00000 n 0000528641 00000 n 0000530133 00000 n 0000528807 00000 n 0000530264 00000 n 0000529008 00000 n 0000529176 00000 n 0000529342 00000 n 0000529509 00000 n 0000530395 00000 n 0000530527 00000 n 0000530593 00000 n 0000529675 00000 n 0000529838 00000 n 0000530723 00000 n 0001000779 00000 n 0000537031 00000 n 0000533809 00000 n 0000530954 00000 n 0000536439 00000 n 0000534063 00000 n 0000534228 00000 n 0000534393 00000 n 0000534560 00000 n 0000534760 00000 n 0000534927 00000 n 0000535095 00000 n 0000535264 00000 n 0000535430 00000 n 0000535596 00000 n 0000535762 00000 n 0000535941 00000 n 0000536571 00000 n 0000536703 00000 n 0000536834 00000 n 0000536107 00000 n 0000536965 00000 n 0000536273 00000 n 0000541812 00000 n 0000540192 00000 n 0000537170 00000 n 0000541020 00000 n 0000541086 00000 n 0000540356 00000 n 0000540521 00000 n 0000541218 00000 n 0000540686 00000 n 0000541284 00000 n 0000540853 00000 n 0000541416 00000 n 0000541548 00000 n 0000541614 00000 n 0000541746 00000 n 0000543827 00000 n 0000545516 00000 n 0000543690 00000 n 0000541951 00000 n 0000544991 00000 n 0000545188 00000 n 0000544775 00000 n 0000545384 00000 n 0000545450 00000 n 0000544510 00000 n 0000544630 00000 n 0000544678 00000 n 0000544753 00000 n 0000547912 00000 n 0000549858 00000 n 0000547766 00000 n 0000545698 00000 n 0000549267 00000 n 0000549333 00000 n 0000548853 00000 n 0000549530 00000 n 0000549054 00000 n 0000549726 00000 n 0000549792 00000 n 0000548588 00000 n 0000548708 00000 n 0000548756 00000 n 0000548831 00000 n 0000552433 00000 n 0000554773 00000 n 0000552269 00000 n 0000550040 00000 n 0000554183 00000 n 0000554249 00000 n 0000553436 00000 n 0000553637 00000 n 0000554446 00000 n 0000553803 00000 n 0000554017 00000 n 0000554641 00000 n 0000554707 00000 n 0000553171 00000 n 0000553291 00000 n 0000553339 00000 n 0000553414 00000 n 0000556959 00000 n 0000558996 00000 n 0000556813 00000 n 0000554955 00000 n 0000558405 00000 n 0000558471 00000 n 0000557978 00000 n 0000558668 00000 n 0000558179 00000 n 0000558864 00000 n 0000558930 00000 n 0001000904 00000 n 0000557713 00000 n 0000557833 00000 n 0000557881 00000 n 0000557956 00000 n 0000561355 00000 n 0000563615 00000 n 0000561191 00000 n 0000559164 00000 n 0000563026 00000 n 0000563092 00000 n 0000562277 00000 n 0000562478 00000 n 0000563288 00000 n 0000562649 00000 n 0000562854 00000 n 0000563483 00000 n 0000563549 00000 n 0000562012 00000 n 0000562132 00000 n 0000562180 00000 n 0000562255 00000 n 0000567314 00000 n 0000565627 00000 n 0000565051 00000 n 0000563797 00000 n 0000565364 00000 n 0000565430 00000 n 0000565188 00000 n 0000570870 00000 n 0000567132 00000 n 0000565765 00000 n 0000570673 00000 n 0000570739 00000 n 0000569538 00000 n 0000569747 00000 n 0000569953 00000 n 0000570129 00000 n 0000570305 00000 n 0000570472 00000 n 0000569272 00000 n 0000569392 00000 n 0000569440 00000 n 0000569515 00000 n 0000573867 00000 n 0000574128 00000 n 0000574522 00000 n 0000573210 00000 n 0000571012 00000 n 0000573736 00000 n 0000573356 00000 n 0000573932 00000 n 0000573997 00000 n 0000574194 00000 n 0000574391 00000 n 0000573531 00000 n 0000581038 00000 n 0000582092 00000 n 0000577610 00000 n 0000574687 00000 n 0000580908 00000 n 0000581104 00000 n 0000581170 00000 n 0000581367 00000 n 0000581433 00000 n 0000577864 00000 n 0000578089 00000 n 0000581499 00000 n 0000578314 00000 n 0000578539 00000 n 0000581565 00000 n 0000578730 00000 n 0000581631 00000 n 0000578953 00000 n 0000581697 00000 n 0000579178 00000 n 0000581763 00000 n 0000579403 00000 n 0000579628 00000 n 0000581829 00000 n 0000579819 00000 n 0000581895 00000 n 0000580044 00000 n 0000581961 00000 n 0000580268 00000 n 0000582026 00000 n 0000580493 00000 n 0000580717 00000 n 0000586201 00000 n 0000584508 00000 n 0000582257 00000 n 0000585478 00000 n 0000585544 00000 n 0000585610 00000 n 0000584672 00000 n 0000585741 00000 n 0000584897 00000 n 0000585938 00000 n 0000586004 00000 n 0000585079 00000 n 0000586135 00000 n 0000585296 00000 n 0001001029 00000 n 0000590328 00000 n 0000588161 00000 n 0000586352 00000 n 0000589476 00000 n 0000588343 00000 n 0000589673 00000 n 0000589739 00000 n 0000588525 00000 n 0000589870 00000 n 0000588743 00000 n 0000588925 00000 n 0000590067 00000 n 0000590133 00000 n 0000589092 00000 n 0000590263 00000 n 0000589309 00000 n 0000593854 00000 n 0000592394 00000 n 0000590479 00000 n 0000593265 00000 n 0000592558 00000 n 0000592740 00000 n 0000592920 00000 n 0000593527 00000 n 0000593102 00000 n 0000593788 00000 n 0000597345 00000 n 0000595619 00000 n 0000593979 00000 n 0000596691 00000 n 0000595792 00000 n 0000595954 00000 n 0000596952 00000 n 0000596139 00000 n 0000596324 00000 n 0000597213 00000 n 0000596507 00000 n 0000599358 00000 n 0000601536 00000 n 0000599194 00000 n 0000597470 00000 n 0000601080 00000 n 0000600376 00000 n 0000601275 00000 n 0000600543 00000 n 0000600710 00000 n 0000600895 00000 n 0000600111 00000 n 0000600231 00000 n 0000600279 00000 n 0000600354 00000 n 0000604027 00000 n 0000608090 00000 n 0000603782 00000 n 0000601704 00000 n 0000607695 00000 n 0000605376 00000 n 0000607892 00000 n 0000605541 00000 n 0000605731 00000 n 0000605899 00000 n 0000606071 00000 n 0000606241 00000 n 0000606429 00000 n 0000606610 00000 n 0000607958 00000 n 0000608024 00000 n 0000606793 00000 n 0000606993 00000 n 0000607159 00000 n 0000607329 00000 n 0000607529 00000 n 0000605111 00000 n 0000605231 00000 n 0000605279 00000 n 0000605354 00000 n 0000640370 00000 n 0000621452 00000 n 0000612143 00000 n 0000608258 00000 n 0000620662 00000 n 0000612667 00000 n 0000612837 00000 n 0000613036 00000 n 0000613206 00000 n 0000613375 00000 n 0000620728 00000 n 0000613540 00000 n 0000613740 00000 n 0000613906 00000 n 0000614106 00000 n 0000620794 00000 n 0000614305 00000 n 0000614471 00000 n 0000620860 00000 n 0000614671 00000 n 0000614868 00000 n 0000615068 00000 n 0000615234 00000 n 0000620926 00000 n 0000615434 00000 n 0000615634 00000 n 0000615801 00000 n 0000615966 00000 n 0000616166 00000 n 0000616332 00000 n 0000616530 00000 n 0000616696 00000 n 0000616863 00000 n 0000617062 00000 n 0000617228 00000 n 0000620992 00000 n 0000617395 00000 n 0000617595 00000 n 0000621058 00000 n 0000617793 00000 n 0000617993 00000 n 0000621123 00000 n 0000618159 00000 n 0000618358 00000 n 0000621189 00000 n 0000618524 00000 n 0000618693 00000 n 0000618892 00000 n 0000621255 00000 n 0000619057 00000 n 0000619227 00000 n 0000619427 00000 n 0000621321 00000 n 0000619593 00000 n 0000619761 00000 n 0000619960 00000 n 0000621387 00000 n 0000620126 00000 n 0000620296 00000 n 0000620496 00000 n 0001001154 00000 n 0000646109 00000 n 0000646241 00000 n 0000646505 00000 n 0000652005 00000 n 0000652134 00000 n 0000652266 00000 n 0000652398 00000 n 0000630381 00000 n 0000624807 00000 n 0000621577 00000 n 0000629919 00000 n 0000625160 00000 n 0000625359 00000 n 0000629985 00000 n 0000625525 00000 n 0000625724 00000 n 0000630051 00000 n 0000625889 00000 n 0000626089 00000 n 0000630117 00000 n 0000626255 00000 n 0000626455 00000 n 0000626621 00000 n 0000626821 00000 n 0000627020 00000 n 0000627187 00000 n 0000627387 00000 n 0000630183 00000 n 0000627554 00000 n 0000627754 00000 n 0000627954 00000 n 0000628154 00000 n 0000628354 00000 n 0000628554 00000 n 0000628720 00000 n 0000628919 00000 n 0000630249 00000 n 0000629119 00000 n 0000629319 00000 n 0000630315 00000 n 0000629519 00000 n 0000629719 00000 n 0000658863 00000 n 0000658995 00000 n 0000659126 00000 n 0000659258 00000 n 0000659390 00000 n 0000663549 00000 n 0000663681 00000 n 0000663813 00000 n 0000663942 00000 n 0000664073 00000 n 0000669635 00000 n 0000640502 00000 n 0000634158 00000 n 0000630506 00000 n 0000639780 00000 n 0000639846 00000 n 0000634556 00000 n 0000634756 00000 n 0000634956 00000 n 0000639912 00000 n 0000639978 00000 n 0000635156 00000 n 0000635355 00000 n 0000635520 00000 n 0000640044 00000 n 0000635687 00000 n 0000635887 00000 n 0000636051 00000 n 0000636215 00000 n 0000640110 00000 n 0000636380 00000 n 0000640176 00000 n 0000636580 00000 n 0000636779 00000 n 0000636944 00000 n 0000637107 00000 n 0000637273 00000 n 0000637436 00000 n 0000637603 00000 n 0000637768 00000 n 0000637937 00000 n 0000638103 00000 n 0000638274 00000 n 0000638442 00000 n 0000638615 00000 n 0000638786 00000 n 0000638953 00000 n 0000639117 00000 n 0000639282 00000 n 0000640436 00000 n 0000639449 00000 n 0000639614 00000 n 0000652529 00000 n 0000646703 00000 n 0000643810 00000 n 0000640654 00000 n 0000645977 00000 n 0000644037 00000 n 0000646043 00000 n 0000644237 00000 n 0000644407 00000 n 0000646175 00000 n 0000644610 00000 n 0000644780 00000 n 0000644946 00000 n 0000645112 00000 n 0000645281 00000 n 0000645446 00000 n 0000646307 00000 n 0000645645 00000 n 0000646439 00000 n 0000646571 00000 n 0000646637 00000 n 0000645811 00000 n 0000718055 00000 n 0000652793 00000 n 0000649575 00000 n 0000646868 00000 n 0000651939 00000 n 0000649811 00000 n 0000650010 00000 n 0000652069 00000 n 0000650210 00000 n 0000650376 00000 n 0000652200 00000 n 0000650543 00000 n 0000652332 00000 n 0000650709 00000 n 0000650875 00000 n 0000652463 00000 n 0000651042 00000 n 0000651207 00000 n 0000652595 00000 n 0000651373 00000 n 0000651573 00000 n 0000652727 00000 n 0000651773 00000 n 0000659522 00000 n 0000656163 00000 n 0000652945 00000 n 0000658797 00000 n 0000656408 00000 n 0000658929 00000 n 0000656611 00000 n 0000656811 00000 n 0000657011 00000 n 0000659061 00000 n 0000657177 00000 n 0000657343 00000 n 0000657513 00000 n 0000657679 00000 n 0000659192 00000 n 0000657849 00000 n 0000659324 00000 n 0000658016 00000 n 0000658216 00000 n 0000658392 00000 n 0000658593 00000 n 0000659456 00000 n 0000754657 00000 n 0000695367 00000 n 0000664204 00000 n 0000662232 00000 n 0000659674 00000 n 0000663483 00000 n 0000663615 00000 n 0000662414 00000 n 0000662613 00000 n 0000662813 00000 n 0000663747 00000 n 0000662985 00000 n 0000663151 00000 n 0000663877 00000 n 0000663317 00000 n 0000664007 00000 n 0000664138 00000 n 0001001279 00000 n 0000667034 00000 n 0000669963 00000 n 0000666834 00000 n 0000664356 00000 n 0000669569 00000 n 0000669700 00000 n 0000668053 00000 n 0000668253 00000 n 0000668427 00000 n 0000668628 00000 n 0000668832 00000 n 0000669002 00000 n 0000669175 00000 n 0000669897 00000 n 0000669346 00000 n 0000667788 00000 n 0000667908 00000 n 0000667956 00000 n 0000668031 00000 n 0000759237 00000 n 0000700516 00000 n 0000674650 00000 n 0000672494 00000 n 0000675044 00000 n 0000672321 00000 n 0000670132 00000 n 0000674454 00000 n 0000673515 00000 n 0000673685 00000 n 0000673858 00000 n 0000674716 00000 n 0000674782 00000 n 0000674029 00000 n 0000674978 00000 n 0000674230 00000 n 0000673250 00000 n 0000673370 00000 n 0000673418 00000 n 0000673493 00000 n 0000678963 00000 n 0000677404 00000 n 0000679358 00000 n 0000677258 00000 n 0000675226 00000 n 0000678767 00000 n 0000679029 00000 n 0000679095 00000 n 0000678351 00000 n 0000679292 00000 n 0000678552 00000 n 0000678086 00000 n 0000678206 00000 n 0000678254 00000 n 0000678329 00000 n 0000683554 00000 n 0000681821 00000 n 0000683949 00000 n 0000681666 00000 n 0000679540 00000 n 0000683358 00000 n 0000683620 00000 n 0000683686 00000 n 0000682775 00000 n 0000682941 00000 n 0000683883 00000 n 0000683142 00000 n 0000682510 00000 n 0000682630 00000 n 0000682678 00000 n 0000682753 00000 n 0000688793 00000 n 0000686549 00000 n 0000689383 00000 n 0000686376 00000 n 0000684131 00000 n 0000688598 00000 n 0000688858 00000 n 0000688923 00000 n 0000687617 00000 n 0000689119 00000 n 0000689185 00000 n 0000687818 00000 n 0000689251 00000 n 0000688023 00000 n 0000688194 00000 n 0000689317 00000 n 0000688394 00000 n 0000687352 00000 n 0000687472 00000 n 0000687520 00000 n 0000687595 00000 n 0000695498 00000 n 0000692489 00000 n 0000689578 00000 n 0000694775 00000 n 0000692716 00000 n 0000692921 00000 n 0000693086 00000 n 0000694841 00000 n 0000693291 00000 n 0000693496 00000 n 0000694907 00000 n 0000693701 00000 n 0000695038 00000 n 0000693905 00000 n 0000695169 00000 n 0000695235 00000 n 0000694074 00000 n 0000694239 00000 n 0000695301 00000 n 0000694406 00000 n 0000694572 00000 n 0000695432 00000 n 0001001404 00000 n 0000701042 00000 n 0000698123 00000 n 0000695650 00000 n 0000700450 00000 n 0000698350 00000 n 0000698550 00000 n 0000698724 00000 n 0000700582 00000 n 0000698924 00000 n 0000699124 00000 n 0000699300 00000 n 0000699500 00000 n 0000700779 00000 n 0000700845 00000 n 0000699668 00000 n 0000700911 00000 n 0000699872 00000 n 0000700042 00000 n 0000700976 00000 n 0000700246 00000 n 0000712389 00000 n 0000704399 00000 n 0000701207 00000 n 0000711600 00000 n 0000711666 00000 n 0000704851 00000 n 0000705055 00000 n 0000705220 00000 n 0000711732 00000 n 0000705385 00000 n 0000705582 00000 n 0000711798 00000 n 0000705786 00000 n 0000711864 00000 n 0000705990 00000 n 0000706193 00000 n 0000711930 00000 n 0000706362 00000 n 0000706532 00000 n 0000706736 00000 n 0000711996 00000 n 0000706906 00000 n 0000707110 00000 n 0000707280 00000 n 0000707484 00000 n 0000707654 00000 n 0000707857 00000 n 0000712062 00000 n 0000712127 00000 n 0000708060 00000 n 0000708264 00000 n 0000708434 00000 n 0000708638 00000 n 0000708835 00000 n 0000709000 00000 n 0000712192 00000 n 0000709169 00000 n 0000709370 00000 n 0000712258 00000 n 0000709564 00000 n 0000709730 00000 n 0000709934 00000 n 0000710099 00000 n 0000710268 00000 n 0000710435 00000 n 0000710599 00000 n 0000710796 00000 n 0000710996 00000 n 0000711196 00000 n 0000711396 00000 n 0000717857 00000 n 0000724840 00000 n 0000717660 00000 n 0000718253 00000 n 0000715584 00000 n 0000712527 00000 n 0000717529 00000 n 0000715802 00000 n 0000715968 00000 n 0000716138 00000 n 0000717726 00000 n 0000716308 00000 n 0000717923 00000 n 0000716478 00000 n 0000717989 00000 n 0000716647 00000 n 0000716817 00000 n 0000716987 00000 n 0000717156 00000 n 0000717359 00000 n 0000718121 00000 n 0000718187 00000 n 0000721525 00000 n 0000725169 00000 n 0000721280 00000 n 0000718418 00000 n 0000724774 00000 n 0000722433 00000 n 0000722596 00000 n 0000722766 00000 n 0000722936 00000 n 0000723106 00000 n 0000723306 00000 n 0000723506 00000 n 0000724906 00000 n 0000723676 00000 n 0000723846 00000 n 0000724046 00000 n 0000724248 00000 n 0000724410 00000 n 0000725103 00000 n 0000724574 00000 n 0000722168 00000 n 0000722288 00000 n 0000722336 00000 n 0000722411 00000 n 0000744906 00000 n 0000731871 00000 n 0000728139 00000 n 0000725350 00000 n 0000731345 00000 n 0000731411 00000 n 0000728402 00000 n 0000728569 00000 n 0000731477 00000 n 0000728770 00000 n 0000731543 00000 n 0000728970 00000 n 0000729171 00000 n 0000731609 00000 n 0000729372 00000 n 0000729573 00000 n 0000731675 00000 n 0000729774 00000 n 0000729975 00000 n 0000730176 00000 n 0000730377 00000 n 0000730542 00000 n 0000731740 00000 n 0000730742 00000 n 0000731806 00000 n 0000730943 00000 n 0000731144 00000 n 0000749378 00000 n 0000749575 00000 n 0000749773 00000 n 0000749905 00000 n 0000754789 00000 n 0000739258 00000 n 0000735065 00000 n 0000731996 00000 n 0000738864 00000 n 0000735364 00000 n 0000738930 00000 n 0000735565 00000 n 0000738995 00000 n 0000735766 00000 n 0000735967 00000 n 0000736168 00000 n 0000739061 00000 n 0000736368 00000 n 0000739127 00000 n 0000736569 00000 n 0000736769 00000 n 0000736935 00000 n 0000737136 00000 n 0000737301 00000 n 0000737502 00000 n 0000737667 00000 n 0000737868 00000 n 0000738033 00000 n 0000738200 00000 n 0000738367 00000 n 0000738534 00000 n 0000738701 00000 n 0001001529 00000 n 0000754987 00000 n 0000759039 00000 n 0000745038 00000 n 0000745170 00000 n 0000745300 00000 n 0000745496 00000 n 0000745628 00000 n 0000742166 00000 n 0000739396 00000 n 0000744776 00000 n 0000742420 00000 n 0000742587 00000 n 0000742753 00000 n 0000742915 00000 n 0000743082 00000 n 0000743251 00000 n 0000743451 00000 n 0000744972 00000 n 0000745104 00000 n 0000743615 00000 n 0000745235 00000 n 0000743781 00000 n 0000743946 00000 n 0000744112 00000 n 0000744279 00000 n 0000745365 00000 n 0000744445 00000 n 0000744611 00000 n 0000745562 00000 n 0000750037 00000 n 0000748661 00000 n 0000745793 00000 n 0000749312 00000 n 0000748816 00000 n 0000749444 00000 n 0000749510 00000 n 0000749641 00000 n 0000749707 00000 n 0000749839 00000 n 0000749971 00000 n 0000748982 00000 n 0000749145 00000 n 0000755119 00000 n 0000753409 00000 n 0000750202 00000 n 0000754525 00000 n 0000754591 00000 n 0000753582 00000 n 0000754723 00000 n 0000753748 00000 n 0000753948 00000 n 0000754124 00000 n 0000754855 00000 n 0000754324 00000 n 0000754921 00000 n 0000755053 00000 n 0000759500 00000 n 0000758245 00000 n 0000755284 00000 n 0000758973 00000 n 0000759105 00000 n 0000759171 00000 n 0000759303 00000 n 0000758400 00000 n 0000758600 00000 n 0000758773 00000 n 0000762204 00000 n 0000766730 00000 n 0000761932 00000 n 0000759652 00000 n 0000766400 00000 n 0000766466 00000 n 0000763425 00000 n 0000766532 00000 n 0000766598 00000 n 0000763609 00000 n 0000763810 00000 n 0000766664 00000 n 0000763978 00000 n 0000764180 00000 n 0000764348 00000 n 0000764550 00000 n 0000764718 00000 n 0000764887 00000 n 0000765088 00000 n 0000765257 00000 n 0000765459 00000 n 0000765627 00000 n 0000765829 00000 n 0000766031 00000 n 0000766198 00000 n 0000763160 00000 n 0000763280 00000 n 0000763328 00000 n 0000763403 00000 n 0000786568 00000 n 0000786964 00000 n 0000775428 00000 n 0000770026 00000 n 0000766911 00000 n 0000774838 00000 n 0000770370 00000 n 0000770572 00000 n 0000770774 00000 n 0000770976 00000 n 0000771175 00000 n 0000771343 00000 n 0000775036 00000 n 0000771545 00000 n 0000771747 00000 n 0000771915 00000 n 0000775101 00000 n 0000772116 00000 n 0000775165 00000 n 0000772317 00000 n 0000772518 00000 n 0000772686 00000 n 0000772887 00000 n 0000773054 00000 n 0000775231 00000 n 0000773256 00000 n 0000773458 00000 n 0000775297 00000 n 0000773626 00000 n 0000773828 00000 n 0000773997 00000 n 0000774165 00000 n 0000774333 00000 n 0000774501 00000 n 0000774670 00000 n 0001001654 00000 n 0000791144 00000 n 0000791672 00000 n 0000796082 00000 n 0000780946 00000 n 0000781144 00000 n 0000791540 00000 n 0000781538 00000 n 0000778901 00000 n 0000775566 00000 n 0000780816 00000 n 0000781012 00000 n 0000781078 00000 n 0000779119 00000 n 0000779286 00000 n 0000779451 00000 n 0000779615 00000 n 0000779781 00000 n 0000781210 00000 n 0000779947 00000 n 0000780115 00000 n 0000780280 00000 n 0000781407 00000 n 0000780446 00000 n 0000780613 00000 n 0000781473 00000 n 0000787029 00000 n 0000784230 00000 n 0000781703 00000 n 0000786172 00000 n 0000784439 00000 n 0000786304 00000 n 0000784642 00000 n 0000784826 00000 n 0000786370 00000 n 0000785028 00000 n 0000785212 00000 n 0000785396 00000 n 0000786502 00000 n 0000785599 00000 n 0000786634 00000 n 0000786766 00000 n 0000785802 00000 n 0000786832 00000 n 0000786898 00000 n 0000785969 00000 n 0000791804 00000 n 0000789830 00000 n 0000787194 00000 n 0000790881 00000 n 0000790947 00000 n 0000790003 00000 n 0000791012 00000 n 0000791078 00000 n 0000790168 00000 n 0000791210 00000 n 0000791276 00000 n 0000791342 00000 n 0000790339 00000 n 0000791474 00000 n 0000790510 00000 n 0000790678 00000 n 0000791606 00000 n 0000791738 00000 n 0000794319 00000 n 0000796411 00000 n 0000794164 00000 n 0000791956 00000 n 0000795884 00000 n 0000795950 00000 n 0000796016 00000 n 0000795329 00000 n 0000796148 00000 n 0000795500 00000 n 0000796345 00000 n 0000795668 00000 n 0000795064 00000 n 0000795184 00000 n 0000795232 00000 n 0000795307 00000 n 0000801080 00000 n 0000801475 00000 n 0000799231 00000 n 0000796593 00000 n 0000800884 00000 n 0000799431 00000 n 0000799647 00000 n 0000799813 00000 n 0000799979 00000 n 0000801146 00000 n 0000800146 00000 n 0000801212 00000 n 0000800314 00000 n 0000801277 00000 n 0000801343 00000 n 0000800514 00000 n 0000801409 00000 n 0000800683 00000 n 0000802352 00000 n 0000802170 00000 n 0000801614 00000 n 0000802286 00000 n 0001001779 00000 n 0000822181 00000 n 0000806722 00000 n 0000802438 00000 n 0000822050 00000 n 0000822116 00000 n 0000807687 00000 n 0000807842 00000 n 0000807996 00000 n 0000808150 00000 n 0000808305 00000 n 0000808460 00000 n 0000808614 00000 n 0000808769 00000 n 0000808923 00000 n 0000809078 00000 n 0000809233 00000 n 0000809387 00000 n 0000809542 00000 n 0000809694 00000 n 0000809849 00000 n 0000810002 00000 n 0000810157 00000 n 0000810312 00000 n 0000810466 00000 n 0000810620 00000 n 0000810774 00000 n 0000810929 00000 n 0000811084 00000 n 0000811239 00000 n 0000811394 00000 n 0000811549 00000 n 0000811703 00000 n 0000811858 00000 n 0000812011 00000 n 0000812165 00000 n 0000812320 00000 n 0000812475 00000 n 0000812630 00000 n 0000812780 00000 n 0000812930 00000 n 0000813085 00000 n 0000813239 00000 n 0000813394 00000 n 0000813549 00000 n 0000813704 00000 n 0000813858 00000 n 0000814013 00000 n 0000814167 00000 n 0000814322 00000 n 0000814476 00000 n 0000814631 00000 n 0000814785 00000 n 0000814939 00000 n 0000815093 00000 n 0000815248 00000 n 0000815403 00000 n 0000815558 00000 n 0000815713 00000 n 0000815867 00000 n 0000816021 00000 n 0000816175 00000 n 0000816329 00000 n 0000816484 00000 n 0000816639 00000 n 0000816794 00000 n 0000816948 00000 n 0000817103 00000 n 0000817257 00000 n 0000817411 00000 n 0000817566 00000 n 0000817721 00000 n 0000817876 00000 n 0000818031 00000 n 0000818185 00000 n 0000818340 00000 n 0000818495 00000 n 0000818650 00000 n 0000818805 00000 n 0000818960 00000 n 0000819115 00000 n 0000819269 00000 n 0000819424 00000 n 0000819578 00000 n 0000819733 00000 n 0000819888 00000 n 0000820043 00000 n 0000820193 00000 n 0000820348 00000 n 0000820503 00000 n 0000820658 00000 n 0000820813 00000 n 0000820968 00000 n 0000821123 00000 n 0000821277 00000 n 0000821432 00000 n 0000821586 00000 n 0000821740 00000 n 0000821895 00000 n 0000842061 00000 n 0000826912 00000 n 0000822293 00000 n 0000841995 00000 n 0000827859 00000 n 0000828013 00000 n 0000828167 00000 n 0000828322 00000 n 0000828476 00000 n 0000828632 00000 n 0000828788 00000 n 0000828944 00000 n 0000829097 00000 n 0000829253 00000 n 0000829408 00000 n 0000829563 00000 n 0000829719 00000 n 0000829875 00000 n 0000830030 00000 n 0000830184 00000 n 0000830338 00000 n 0000830494 00000 n 0000830650 00000 n 0000830806 00000 n 0000830960 00000 n 0000831116 00000 n 0000831270 00000 n 0000831425 00000 n 0000831581 00000 n 0000831737 00000 n 0000831893 00000 n 0000832047 00000 n 0000832203 00000 n 0000832359 00000 n 0000832515 00000 n 0000832671 00000 n 0000832826 00000 n 0000832981 00000 n 0000833137 00000 n 0000833291 00000 n 0000833447 00000 n 0000833603 00000 n 0000833759 00000 n 0000833913 00000 n 0000834069 00000 n 0000834224 00000 n 0000834380 00000 n 0000834536 00000 n 0000834692 00000 n 0000834845 00000 n 0000835001 00000 n 0000835157 00000 n 0000835313 00000 n 0000835468 00000 n 0000835624 00000 n 0000835780 00000 n 0000835936 00000 n 0000836092 00000 n 0000836244 00000 n 0000836400 00000 n 0000836556 00000 n 0000836712 00000 n 0000836868 00000 n 0000837023 00000 n 0000837178 00000 n 0000837334 00000 n 0000837488 00000 n 0000837644 00000 n 0000837800 00000 n 0000837956 00000 n 0000838111 00000 n 0000838267 00000 n 0000838421 00000 n 0000838577 00000 n 0000838733 00000 n 0000838889 00000 n 0000839045 00000 n 0000839200 00000 n 0000839356 00000 n 0000839511 00000 n 0000839665 00000 n 0000839821 00000 n 0000839977 00000 n 0000840133 00000 n 0000840289 00000 n 0000840444 00000 n 0000840600 00000 n 0000840755 00000 n 0000840911 00000 n 0000841066 00000 n 0000841220 00000 n 0000841375 00000 n 0000841530 00000 n 0000841685 00000 n 0000841840 00000 n 0000852469 00000 n 0000844885 00000 n 0000842173 00000 n 0000852403 00000 n 0000845418 00000 n 0000845573 00000 n 0000845728 00000 n 0000845884 00000 n 0000846040 00000 n 0000846194 00000 n 0000846349 00000 n 0000846505 00000 n 0000846661 00000 n 0000846816 00000 n 0000846971 00000 n 0000847126 00000 n 0000847281 00000 n 0000847436 00000 n 0000847591 00000 n 0000847746 00000 n 0000847901 00000 n 0000848054 00000 n 0000848209 00000 n 0000848365 00000 n 0000848520 00000 n 0000848676 00000 n 0000848831 00000 n 0000848986 00000 n 0000849141 00000 n 0000849296 00000 n 0000849449 00000 n 0000849604 00000 n 0000849759 00000 n 0000849915 00000 n 0000850071 00000 n 0000850226 00000 n 0000850381 00000 n 0000850537 00000 n 0000850693 00000 n 0000850848 00000 n 0000851003 00000 n 0000851159 00000 n 0000851315 00000 n 0000851470 00000 n 0000851626 00000 n 0000851781 00000 n 0000851936 00000 n 0000852092 00000 n 0000852247 00000 n 0000863994 00000 n 0000855261 00000 n 0000852555 00000 n 0000863928 00000 n 0000855857 00000 n 0000856012 00000 n 0000856168 00000 n 0000856323 00000 n 0000856478 00000 n 0000856633 00000 n 0000856788 00000 n 0000856943 00000 n 0000857098 00000 n 0000857253 00000 n 0000857409 00000 n 0000857565 00000 n 0000857721 00000 n 0000857876 00000 n 0000858031 00000 n 0000858186 00000 n 0000858341 00000 n 0000858496 00000 n 0000858652 00000 n 0000858807 00000 n 0000858962 00000 n 0000859118 00000 n 0000859273 00000 n 0000859428 00000 n 0000859583 00000 n 0000859737 00000 n 0000859892 00000 n 0000860047 00000 n 0000860201 00000 n 0000860356 00000 n 0000860511 00000 n 0000860666 00000 n 0000860821 00000 n 0000860977 00000 n 0000861133 00000 n 0000861288 00000 n 0000861443 00000 n 0000861598 00000 n 0000861753 00000 n 0000861908 00000 n 0000862064 00000 n 0000862219 00000 n 0000862375 00000 n 0000862531 00000 n 0000862686 00000 n 0000862841 00000 n 0000862996 00000 n 0000863151 00000 n 0000863307 00000 n 0000863462 00000 n 0000863618 00000 n 0000863773 00000 n 0000869923 00000 n 0000865621 00000 n 0000864093 00000 n 0000869857 00000 n 0000865974 00000 n 0000866129 00000 n 0000866284 00000 n 0000866440 00000 n 0000866596 00000 n 0000866751 00000 n 0000866906 00000 n 0000867061 00000 n 0000867217 00000 n 0000867372 00000 n 0000867526 00000 n 0000867681 00000 n 0000867836 00000 n 0000867991 00000 n 0000868147 00000 n 0000868303 00000 n 0000868458 00000 n 0000868612 00000 n 0000868768 00000 n 0000868924 00000 n 0000869080 00000 n 0000869235 00000 n 0000869390 00000 n 0000869545 00000 n 0000869701 00000 n 0000870075 00000 n 0000878171 00000 n 0000888829 00000 n 0000899822 00000 n 0000902403 00000 n 0000902192 00000 n 0000920676 00000 n 0000941482 00000 n 0000955871 00000 n 0000958506 00000 n 0000958475 00000 n 0000976851 00000 n 0000998297 00000 n 0001001904 00000 n 0001002028 00000 n 0001002154 00000 n 0001002280 00000 n 0001002406 00000 n 0001002486 00000 n 0001002587 00000 n 0001019223 00000 n 0001059628 00000 n 0001059669 00000 n 0001059709 00000 n 0001059843 00000 n trailer << /Size 3977 /Root 3975 0 R /Info 3976 0 R /ID [ ] >> startxref 1060107 %%EOF CCfits/CCfits-2.4.ps0000644000225700000360000615016311667511122013555 0ustar cagordonlhea%!PS-Adobe-2.0 %%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software %%Title: CCfits.dvi %%Pages: 156 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Times-Roman Times-Bold Symbol CMMI10 %%+ Helvetica-Narrow-Bold Courier Times-Italic CMSY10 Times-BoldItalic %%+ Helvetica-Narrow-BoldOblique Courier-Oblique %%DocumentPaperSizes: Letter %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o CCfits-2.4.ps CCfits %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2011.12.06:1619 %%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: pspicture.ps 0 0 %! %% %% Source File `pspicture.dtx'. %% Copyright (C) 1992 1999 David Carlisle %% This file may be distributed under the terms of the LPPL. %% See 00readme.txt for details. %% /!BP{ 72 72.27 div dup scale }def /!A{ newpath 0 0 moveto dup neg dup .4 mul rlineto .8 mul 0 exch rlineto closepath fill } def /!V{ !BP /!X exch def /!y exch def /!x exch def newpath 0 0 moveto !x 0 eq {0 !y 0 lt {!X neg}{!X} ifelse} {!x 0 lt {!X neg}{!X}ifelse !X !y mul !x abs div} ifelse lineto setlinewidth % @wholewidth currentpoint stroke translate !y !x atan rotate !A % @arrowlength }def /!L{ !BP /!X exch def /!y exch def /!x exch def newpath 0 0 moveto !x 0 eq {0 !y 0 lt {!X neg}{!X} ifelse} {!x 0 lt {!X neg}{!X}ifelse !X !y mul !x abs div} ifelse lineto setlinewidth % @wholewidth stroke }def /!C{ !BP 0 0 3 2 roll 2 div 0 360 arc setlinewidth % @wholewidth stroke }def /!D{ !BP 0 0 3 2 roll 2 div 0 360 arc fill }def /!O{ !BP /!y exch 2 div def /!x exch 2 div def /!r exch !x !y 2 copy gt {exch} if pop 2 copy gt {exch} if pop def setlinewidth % @wholewidth 1 eq {newpath !x neg 0 moveto !x neg !y 0 !y !r arcto 4 {pop} repeat 0 !y lineto stroke}if 1 eq {newpath !x 0 moveto !x !y 0 !y !r arcto 4 {pop} repeat 0 !y lineto stroke}if 1 eq {newpath !x neg 0 moveto !x neg !y neg 0 !y neg !r arcto 4 {pop} repeat 0 !y neg lineto stroke}if 1 eq {newpath !x 0 moveto !x !y neg 0 !y neg !r arcto 4 {pop} repeat 0 !y neg lineto stroke}if }def /!V2{ !BP 2 copy exch atan /a exch def 2 copy newpath 0 0 moveto lineto % 3 2 roll setlinewidth % @wholewidth stroke translate % a rotate !A % @arrowlength }def /!L2{ !BP newpath 0 0 moveto lineto % setlinewidth % @wholewidth stroke }def /!C2{ !BP /!s exch def /!y exch def /!x exch def newpath 0 0 moveto 0 0 !x 2 div !y 10 div !s mul add !y 2 div !x 10 div !s mul sub !x !y curveto setlinewidth % @wholewidth stroke }def %%EndProcSet %%BeginProcSet: 8r.enc 0 0 % File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30 % % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, % W. Schmidt, P. Lehman", % version = "2.0", % date = "30 October 2002", % filename = "8r.enc", % email = "tex-fonts@@tug.org", % docstring = "This is the encoding vector for Type1 and TrueType % fonts to be used with TeX. This file is part of the % PSNFSS bundle, version 9" % @} % % The idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol, % MacRoman, and some extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % These are /dotlessj /ff /ffi /ffl. % % (4) hyphen appears twice for compatibility with both ASCII and Windows. % % (5) /Euro was assigned to 128, as in Windows ANSI % % (6) Missing characters from MacRoman encoding incorporated as follows: % % PostScript MacRoman TeXBase1 % -------------- -------------- -------------- % /notequal 173 0x16 % /infinity 176 0x17 % /lessequal 178 0x18 % /greaterequal 179 0x19 % /partialdiff 182 0x1A % /summation 183 0x1B % /product 184 0x1C % /pi 185 0x1D % /integral 186 0x81 % /Omega 189 0x8D % /radical 195 0x8E % /approxequal 197 0x8F % /Delta 198 0x9D % /lozenge 215 0x9E % /TeXBase1Encoding [ % 0x00 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron % 0x10 /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle % 0x20 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % 0x80 /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis % 0xA0 /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%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 %%BeginProcSet: color.pro 0 0 %! TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll }repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def /TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ /currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC /Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC /Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ 0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ 0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ 0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ 0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ 0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end %%EndProcSet TeXDict begin @defspecial /DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 div Resolution mul } def /HyperBorder { 1 PDFToDvips } def /H.V {pdf@hoff pdf@voff null} def /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def /H.S { currentpoint HyperBorder add /pdf@lly exch def dup DvipsToPDF /pdf@hoff exch def HyperBorder sub /pdf@llx exch def } def /H.L { 2 sub dup /HyperBasePt exch def PDFToDvips /HyperBaseDvips exch def currentpoint HyperBaseDvips sub /pdf@ury exch def /pdf@urx exch def } def /H.A { H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF HyperBasePt sub sub /pdf@voff exch def } def /H.R { currentpoint HyperBorder sub /pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint exch pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def systemdict /pdfmark known not {userdict /pdfmark systemdict /cleartomark get put} if @fedspecial end %%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: 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 3 /asteriskmath put dup 24 /similar put dup 94 /logicaland 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 515DB70A8D4F6146FE068DC1E5DE8BC570317AAEA74A842CFD26F9591866F5A0 9B4EAD7FDA08ADBC733642C7B72A03737012A32F9AEA4E37734D5F5D9075D245 BFE02773D9EE99F885C51FF0D3DDE1B0528D77BA830198EE8F982093BEA3D613 9AA4D929B959D8C933F026EBCB3A82A4F26243069DBA027C8AE10832A831206A B444AF6127CB67F61923FDA3EC734BC0CE102CACCDE36E8F7E0979B6824D7E80 D739571C7C046FB2DD73AC156514288FC491E2DDA0DADE6D45E9B6346C752CB5 1457AC34D9D6A55CEBED6FF2F67B926367C1655694FDCD65EBDD26D6BA4DAC4E 41F023F4FD58765F826D43742E0AF205B22AB4F8DE6E1573E5A79B4D210AD2AA 1A347861854F43A9B8E7349C4AB271BF9C75019856E88BDFDEFB1C5F328B01C9 8B2C9CCF6AD74FDAAC5968CB6F6C23B39BD1962C552BF257EE997F72EBC85565 FDB073CA64197BD33E1F019A99CB4EE3B0CCB68607D9390A0842392C4F07C418 58F18FCCE62B1149E66DA9A439C2D3BED02B45C99D233495153AF5633A619B42 8EC81964C52D1E6BE8439597F133896881F5F05E7141FAB80DD3A567414201E0 84381354B13D394716D6A63DF135BF9372D5F32765C82B7088AC93722FA769DB 0B2E76C4F34B00EA59D233232FD546A2EB0A5E2545E267BB14711247B70A193B 539DB793DE0EC4E1151DEE74D8768CAC016FEC2DFC18BBEEBB95CFF2B1C59913 E06964CB95E71CB51DAEDD77C4D39BB65571D3056752E26A5D0E1FB700389F62 635AEA56DE06933564F9DCFDB5AEA595C32987DC122F0242D76B782349E4069D E0CDD6EF4375C680CBFE4C8F24F2AE89BF7785F5EA7435A91500F265022C307E 8ADEAAE1C6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 40258431 52099146 1000 600 600 (CCfits.dvi) @start /Fa 193[77 1[77 60[{}2 99.6264 /CMMI10 rf /Fc 252[37 3[{}1 74.7198 /CMSY10 rf /Fd 161[41 94[{}1 61.4362 /CMSY10 rf /Fe 193[58 1[58 60[{}2 74.7198 /CMMI10 rf /Fg 193[52 1[52 60[{}2 66.4176 /CMMI10 rf /Fi 134[33 4[18 3[33 1[33 52 18 6[29 3[29 12[41 37 83[{ TeXBase1Encoding ReEncodeFont}10 66.4176 /Times-Roman rf /Fj 138[45 2[45 3[45 45 7[45 2[45 98[{TeXBase1Encoding ReEncodeFont} 6 74.7198 /Courier-Oblique rf /Fk 133[31 34 34 48 34 37 20 34 24 1[37 37 37 54 17 34 1[17 37 37 20 34 37 34 37 34 9[58 41 44 37 41 44 3[44 1[37 44 1[17 44 1[37 41 44 1[44 4[36 16[17 41[37 2[{TeXBase1Encoding ReEncodeFont}42 74.7193 /Helvetica-Narrow-BoldOblique rf /Fl 133[29 33 33 50 33 37 21 29 29 37 37 37 37 54 21 33 21 21 37 37 21 33 37 33 37 37 1[37 1[29 1[29 42 42 46 62 46 54 42 37 46 1[46 54 50 62 42 50 1[25 54 54 46 46 54 50 46 46 3[50 2[25 7[37 37 1[21 19 25 19 2[25 25 25 4[31 25 29[37 37 2[{TeXBase1Encoding ReEncodeFont}68 74.7198 /Times-Italic rf /Fm 134[37 3[46 23 32 32 1[42 42 46 65 23 2[23 46 1[28 37 42 37 42 42 11[60 51 46 2[51 6[32 65 1[55 1[60 2[55 18[21 43[46 2[{TeXBase1Encoding ReEncodeFont}29 83.022 /Times-BoldItalic rf /Fn 130[40 1[40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 1[40 40 40 40 40 1[40 40 40 40 40 40 40 40 1[40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 2[40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 1[40 40 40 40 33[{TeXBase1Encoding ReEncodeFont} 86 66.4176 /Courier rf /Fo 133[31 34 34 48 34 37 20 34 24 1[37 37 37 54 17 34 1[17 37 37 20 34 37 34 37 34 8[41 58 41 44 37 41 44 1[41 48 44 51 1[44 1[17 44 1[37 41 44 44 44 44 6[20 34 34 34 34 34 34 34 34 34 34 1[17 20 17 2[20 20 1[44 34[37 37 2[{TeXBase1Encoding ReEncodeFont}63 74.7193 /Helvetica-Narrow-Bold rf /Fp 231[65 20[42 3[{}2 83.022 /CMSY10 rf /Fq 133[37 41 41 57 41 45 24 41 29 1[45 45 45 65 20 41 1[20 45 45 24 41 45 41 45 41 8[49 69 49 53 45 49 53 1[49 57 53 61 45 53 1[20 53 1[45 49 53 53 53 53 6[24 41 41 41 41 41 41 41 41 41 41 1[20 6[20 36[45 2[{TeXBase1Encoding ReEncodeFont}59 89.6632 /Helvetica-Narrow-Bold rf /Fr 133[50 50 50 50 50 50 50 50 50 1[50 50 50 50 50 50 1[50 50 50 50 50 50 50 50 50 1[50 1[50 1[50 5[50 50 50 50 1[50 50 3[50 1[50 50 50 50 50 50 50 50 50 50 5[50 8[50 50 50 50 50 50 2[50 50 4[50 50 34[{TeXBase1Encoding ReEncodeFont} 55 83.022 /Courier rf /Fs 134[49 49 69 49 54 29 49 34 1[54 54 54 78 25 49 1[25 54 54 29 49 54 49 54 49 8[59 83 1[64 54 59 64 1[59 69 64 73 54 2[25 64 69 54 59 64 64 64 64 7[49 49 49 49 49 49 49 49 49 49 3[25 4[25 36[54 2[{TeXBase1Encoding ReEncodeFont}56 107.596 /Helvetica-Narrow-Bold rf /Ft 133[32 37 37 55 37 42 23 32 32 1[42 42 42 60 23 37 1[23 42 42 23 37 42 37 42 42 3[32 1[32 3[69 51 60 46 42 51 3[55 69 46 55 1[28 60 1[51 51 60 55 5[56 1[28 28 7[42 1[42 23 21 28 21 2[28 28 1[65 34[42 42 2[{ TeXBase1Encoding ReEncodeFont}56 83.022 /Times-Italic rf /Fu 193[65 1[65 60[{}2 83.022 /CMMI10 rf /Fw 134[29 29 2[32 19 23 26 2[29 32 6[29 19 26 32 26 32 29 12[39 12[45 2[42 42 8[19 3[29 29 2[29 29 29 45[32 2[{ TeXBase1Encoding ReEncodeFont}26 58.1154 /Times-Bold rf /Fx 105[42 29 37 37 21[40 1[40 37 42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 28 42 1[28 1[28 51 60 60 78 60 60 51 46 55 1[46 60 60 74 51 60 32 28 60 60 46 51 60 55 55 60 3[47 1[23 23 42 42 42 42 42 42 42 42 42 42 23 21 28 21 47 1[28 28 28 65 1[42 42 34 28 29[46 46 2[{TeXBase1Encoding ReEncodeFont}89 83.022 /Times-Roman rf /Fy 133[37 42 42 60 42 46 28 32 37 46 46 42 46 69 23 46 28 23 46 42 28 37 46 37 46 42 1[42 1[28 1[28 2[60 83 60 60 55 46 60 1[51 65 60 78 55 65 1[32 65 65 51 55 60 60 55 60 3[47 1[28 28 42 42 42 42 42 42 42 42 42 42 1[21 28 21 2[28 28 28 69 35[46 2[{ TeXBase1Encoding ReEncodeFont}72 83.022 /Times-Bold rf /Fz 139[40 47 3[60 66 8[53 33[86 67[{TeXBase1Encoding ReEncodeFont}6 119.552 /Times-Bold rf /FA 138[37 15[33 1[33 14[46 15[54 9[21 3[37 37 2[37 37 37 48[{TeXBase1Encoding ReEncodeFont}11 74.7198 /Times-Roman rf /FB 134[50 50 3[28 1[33 2[50 50 6[50 1[44 50 1[50 44 25[72 2[72 12[50 1[50 50 1[50 50 2[25 46[{TeXBase1Encoding ReEncodeFont}19 99.6264 /Times-Roman rf /FC 139[33 47 47[80 64[66 2[{ TeXBase1Encoding ReEncodeFont}4 119.552 /Times-Roman rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 0 TeXcolorgray Black 0 TeXcolorgray 515 440 a SDict begin [ /Count -6 /Dest (section.1) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.1.1) cvn /Title (\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.1.2) cvn /Title (\376\377\000A\000b\000o\000u\000t\000\040\000t\000h\000i\000s\000\040\000M\000a\000n\000u\000a\000l) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.1.3) cvn /Title (\376\377\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s\000\040\000f\000o\000r\000\040\000V\000e\000r\000s\000i\000o\000n\000\040\0002\000.\0004\000\040\000D\000e\000c\000\040\0002\0000\0001\0001) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.1.4) cvn /Title (\376\377\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s\000\040\000F\000o\000r\000\040\000V\000e\000r\000s\000i\000o\000n\000\040\0002\000.\0003\000\040\000N\000o\000v\000\040\0002\0000\0001\0000) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.1.5) cvn /Title (\376\377\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s\000\040\000F\000o\000r\000\040\000V\000e\000r\000s\000i\000o\000n\000\040\0002\000.\0002\000\040\000S\000e\000p\000\040\0002\0000\0000\0009) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.1.6) cvn /Title (\376\377\000A\000u\000t\000h\000o\000r\000s\000\040\000a\000n\000d\000\040\000A\000c\000k\000n\000o\000w\000l\000e\000d\000g\000e\000m\000e\000n\000t\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (section.2) cvn /Title (\376\377\000I\000n\000s\000t\000a\000l\000l\000i\000n\000g\000\040\000t\000h\000e\000\040\000P\000a\000c\000k\000a\000g\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.2.1) cvn /Title (\376\377\000P\000l\000a\000t\000f\000o\000r\000m\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.2.2) cvn /Title (\376\377\000B\000u\000i\000l\000d\000i\000n\000g) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.2.2.1) cvn /Title (\376\377\000I\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s\000\040\000f\000o\000r\000\040\000B\000u\000i\000l\000d\000i\000n\000g\000\040\000C\000C\000f\000i\000t\000s\000\040\000o\000n\000\040\000U\000N\000I\000X\000-\000l\000i\000k\000e\000\040\000p\000l\000a\000t\000f\000o\000r\000m\000s\000:) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.2.2.2) cvn /Title (\376\377\000I\000n\000s\000t\000r\000u\000c\000t\000i\000o\000n\000s\000\040\000f\000o\000r\000\040\000M\000i\000c\000r\000o\000s\000f\000t\000\040\000W\000i\000n\000d\000o\000w\000s\000\040\000b\000u\000i\000l\000d\000:) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.3) cvn /Title (\376\377\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000N\000o\000t\000e\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (section.4) cvn /Title (\376\377\000X\000s\000p\000e\000c\000\040\000a\000n\000d\000\040\000C\000C\000f\000i\000t\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.4.1) cvn /Title (\376\377\000A\000b\000o\000u\000t\000\040\000X\000S\000P\000E\000C) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.4.2) cvn /Title (\376\377\000N\000e\000w\000\040\000D\000a\000t\000a\000\040\000F\000o\000r\000m\000a\000t\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.4.3) cvn /Title (\376\377\000M\000o\000d\000u\000l\000a\000r\000i\000t\000y) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (section.5) cvn /Title (\376\377\000G\000e\000t\000t\000i\000n\000g\000\040\000S\000t\000a\000r\000t\000e\000d) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.5.1) cvn /Title (\376\377\000D\000r\000i\000v\000e\000r\000\040\000P\000r\000o\000g\000r\000a\000m) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.6) cvn /Title (\376\377\000W\000r\000i\000t\000i\000n\000g\000\040\000P\000r\000i\000m\000a\000r\000y\000\040\000I\000m\000a\000g\000e\000s\000\040\000a\000n\000d\000\040\000I\000m\000a\000g\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.7) cvn /Title (\376\377\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000d\000\040\000W\000r\000i\000t\000i\000n\000g\000\040\000t\000o\000\040\000a\000n\000\040\000A\000s\000c\000i\000i\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.8) cvn /Title (\376\377\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000a\000n\000d\000\040\000W\000r\000i\000t\000i\000n\000g\000\040\000t\000o\000\040\000a\000\040\000B\000i\000n\000a\000r\000y\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.9) cvn /Title (\376\377\000C\000o\000p\000y\000i\000n\000g\000\040\000a\000n\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n\000\040\000b\000e\000t\000w\000e\000e\000n\000\040\000F\000i\000l\000e\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.10) cvn /Title (\376\377\000S\000e\000l\000e\000c\000t\000i\000n\000g\000\040\000T\000a\000b\000l\000e\000\040\000D\000a\000t\000a) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.11) cvn /Title (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000H\000e\000a\000d\000e\000r\000\040\000i\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n\000\040\000f\000r\000o\000m\000\040\000a\000\040\000H\000D\000U) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.12) cvn /Title (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000a\000n\000\040\000I\000m\000a\000g\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.13) cvn /Title (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000a\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000t\000e\000n\000s\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.14) cvn /Title (\376\377\000R\000e\000a\000d\000i\000n\000g\000\040\000w\000i\000t\000h\000\040\000E\000x\000t\000e\000n\000d\000e\000d\000\040\000F\000i\000l\000e\000\040\000N\000a\000m\000e\000\040\000S\000y\000n\000t\000a\000x) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (section.15) cvn /Title (\376\377\000W\000h\000a\000t\000'\000s\000\040\000P\000r\000e\000s\000e\000n\000t\000,\000\040\000W\000h\000a\000t\000'\000s\000\040\000M\000i\000s\000s\000i\000n\000g\000,\000\040\000a\000n\000d\000\040\000C\000a\000l\000l\000i\000n\000g\000\040\000C\000F\000I\000T\000S\000I\000O) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.15.1) cvn /Title (\376\377\000W\000h\000a\000t\000'\000s\000\040\000N\000o\000t\000\040\000P\000r\000e\000s\000e\000n\000t) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.15.2) cvn /Title (\376\377\000C\000a\000l\000l\000i\000n\000g\000\040\000C\000F\000I\000T\000S\000I\000O) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.16) cvn /Title (\376\377\000P\000r\000e\000v\000i\000o\000u\000s\000\040\000R\000e\000l\000e\000a\000s\000e\000\040\000N\000o\000t\000e\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (section.17) cvn /Title (\376\377\000T\000o\000d\000o\000\040\000L\000i\000s\000t) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (section.18) cvn /Title (\376\377\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.18.1) cvn /Title (\376\377\000M\000o\000d\000u\000l\000e\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (section.19) cvn /Title (\376\377\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000I\000n\000d\000e\000x) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.19.1) cvn /Title (\376\377\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000L\000i\000s\000t) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (section.20) cvn /Title (\376\377\000H\000i\000e\000r\000a\000r\000c\000h\000i\000c\000a\000l\000\040\000I\000n\000d\000e\000x) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.20.1) cvn /Title (\376\377\000C\000l\000a\000s\000s\000\040\000H\000i\000e\000r\000a\000r\000c\000h\000y) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (section.21) cvn /Title (\376\377\000C\000l\000a\000s\000s\000\040\000I\000n\000d\000e\000x) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.21.1) cvn /Title (\376\377\000C\000l\000a\000s\000s\000\040\000L\000i\000s\000t) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (section.22) cvn /Title (\376\377\000M\000o\000d\000u\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsection.22.1) cvn /Title (\376\377\000F\000I\000T\000S\000\040\000E\000x\000c\000e\000p\000t\000i\000o\000n\000s) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (section.23) cvn /Title (\376\377\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.23.1) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000\040\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.23.1.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.23.1.2) cvn /Title (\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.23.1.3) cvn /Title (\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.23.2) cvn /Title (\376\377\000F\000I\000T\000S\000U\000t\000i\000l\000\040\000N\000a\000m\000e\000s\000p\000a\000c\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.23.2.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -41 /Dest (section.24) cvn /Title (\376\377\000C\000l\000a\000s\000s\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.1) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000A\000s\000c\000i\000i\000T\000a\000b\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.1.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.1.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.1.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.2) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000B\000i\000n\000T\000a\000b\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.2.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.2.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.2.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.3) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.3.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.3.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.3.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.4) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000s\000u\000f\000f\000i\000c\000i\000e\000n\000t\000E\000l\000e\000m\000e\000n\000t\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.4.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.4.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.5) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000D\000a\000t\000a\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.5.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.5.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.6) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000N\000u\000m\000b\000e\000r\000O\000f\000R\000o\000w\000s\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.6.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.6.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.7) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000R\000o\000w\000N\000u\000m\000b\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.7.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.7.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.8) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000I\000n\000v\000a\000l\000i\000d\000R\000o\000w\000P\000a\000r\000a\000m\000e\000t\000e\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.8.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.8.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.9) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000N\000o\000N\000u\000l\000l\000V\000a\000l\000u\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.9.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.9.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.10) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000R\000a\000n\000g\000e\000E\000r\000r\000o\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.10.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.10.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.11) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000C\000o\000l\000u\000m\000n\000:\000:\000W\000r\000o\000n\000g\000C\000o\000l\000u\000m\000n\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.11.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.11.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.12) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000E\000x\000t\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.12.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.12.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.12.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.13) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000E\000x\000t\000H\000D\000U\000:\000:\000W\000r\000o\000n\000g\000E\000x\000t\000e\000n\000s\000i\000o\000n\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.13.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.13.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.14) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.14.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.14.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.14.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.15) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000C\000a\000n\000t\000C\000r\000e\000a\000t\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.15.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.15.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.16) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000C\000a\000n\000t\000O\000p\000e\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.16.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.16.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.17) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000N\000o\000S\000u\000c\000h\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.17.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.17.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.18) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000:\000:\000O\000p\000e\000r\000a\000t\000i\000o\000n\000N\000o\000t\000S\000u\000p\000p\000o\000r\000t\000e\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.18.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.18.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.19) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000i\000t\000s\000E\000r\000r\000o\000r\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.19.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.19.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.20) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000i\000t\000s\000E\000x\000c\000e\000p\000t\000i\000o\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.20.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.20.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.20.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.21) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000i\000t\000s\000F\000a\000t\000a\000l\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.21.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.21.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.22) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000a\000u\000t\000o\000\137\000a\000r\000r\000a\000y\000\137\000p\000t\000r\000<\000\040\000X\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.22.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.23) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000C\000A\000a\000r\000r\000a\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.23.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.24) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000C\000V\000A\000a\000r\000r\000a\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.24.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.25) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000C\000V\000a\000r\000r\000a\000y\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.25.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.26) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000N\000a\000m\000e\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.26.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.27) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000N\000u\000m\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.27.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.28) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000P\000t\000r\000N\000a\000m\000e\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.28.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.29) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000P\000t\000r\000N\000u\000m\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.29.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.30) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000M\000a\000t\000c\000h\000T\000y\000p\000e\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.30.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -1 /Dest (subsection.24.31) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000F\000I\000T\000S\000U\000t\000i\000l\000:\000:\000U\000n\000r\000e\000c\000o\000g\000n\000i\000z\000e\000d\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.31.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.32) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.32.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.32.2) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.33) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000I\000n\000v\000a\000l\000i\000d\000E\000x\000t\000e\000n\000s\000i\000o\000n\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.33.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.33.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.34) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000I\000n\000v\000a\000l\000i\000d\000I\000m\000a\000g\000e\000D\000a\000t\000a\000T\000y\000p\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.34.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.34.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.35) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000N\000o\000N\000u\000l\000l\000V\000a\000l\000u\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.35.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.35.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.36) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000H\000D\000U\000:\000:\000N\000o\000S\000u\000c\000h\000K\000e\000y\000w\000o\000r\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.36.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.36.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.37) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000I\000m\000a\000g\000e\000E\000x\000t\000<\000\040\000T\000\040\000>\000\040\000C\000l\000a\000s\000s\000\040\000T\000e\000m\000p\000l\000a\000t\000e\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.37.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.37.2) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.38) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000K\000e\000y\000w\000o\000r\000d\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.38.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.38.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.38.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.39) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000P\000H\000D\000U\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.39.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.39.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.39.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -3 /Dest (subsection.24.40) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000T\000a\000b\000l\000e\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.40.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.40.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.40.3) cvn /Title (\376\377\000M\000e\000m\000b\000e\000r\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -2 /Dest (subsection.24.41) cvn /Title (\376\377\000C\000C\000f\000i\000t\000s\000:\000:\000T\000a\000b\000l\000e\000:\000:\000N\000o\000S\000u\000c\000h\000C\000o\000l\000u\000m\000n\000\040\000C\000l\000a\000s\000s\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.41.1) cvn /Title (\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Count -0 /Dest (subsubsection.24.41.2) cvn /Title (\376\377\000C\000o\000n\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000\046\000\040\000D\000e\000s\000t\000r\000u\000c\000t\000o\000r\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) /OUT pdfmark end 515 440 a 515 440 a SDict begin [ /Page 1 /View [ /Fit ] /PageMode /UseOutlines /DOCVIEW pdfmark end 515 440 a 515 440 a SDict begin [ {Catalog} << >> /PUT pdfmark end 515 440 a 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmark end 515 440 a 0 TeXcolorgray 0 TeXcolorgray 1794 2456 a FC(CC\002ts)1885 2610 y FB(2.4)1335 2946 y(Generated)26 b(by)e(Doxygen)g(1.7.5.1)1567 3163 y FA(T)m(ue)18 b(Dec)h(6)g(2011)h(16:12:51)p 0 TeXcolorgray 0 TeXcolorgray eop end %%Page: 1 2 TeXDict begin 1 1 bop 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 523 a Fz(Contents)p 0 0 1 TeXcolorrgb 515 706 a SDict begin H.S end 515 706 a Fy(1)82 b(CC\002ts)21 b(Documentation)1432 706 y SDict begin 12 H.L end 1432 706 a 1432 706 a SDict begin [ /Subtype /Link /Dest (section.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1432 706 a 0 TeXcolorgray 1905 w Fy(1)p 0 0 1 TeXcolorrgb 639 805 a SDict begin H.S end 639 805 a Fx(1.1)86 b(Introduction)1244 805 y SDict begin 12 H.L end 1244 805 a 1244 805 a SDict begin [ /Subtype /Link /Dest (subsection.1.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1244 805 a 0 TeXcolorgray 39 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) g(.)g(.)h(.)165 b(1)p 0 0 1 TeXcolorrgb 639 905 a SDict begin H.S end 639 905 a Fx(1.2)86 b(About)20 b(this)g(Manual)1454 905 y SDict begin 12 H.L end 1454 905 a 1454 905 a SDict begin [ /Subtype /Link /Dest (subsection.1.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1454 905 a 0 TeXcolorgray 78 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(2)p 0 0 1 TeXcolorrgb 639 1005 a SDict begin H.S end 639 1005 a Fx(1.3)86 b(Release)21 b(Notes)g(for)e(V)-9 b(ersion)20 b(2.4)f(Dec)i(2011)2163 1005 y SDict begin 12 H.L end 2163 1005 a 2163 1005 a SDict begin [ /Subtype /Link /Dest (subsection.1.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2163 1005 a 0 TeXcolorgray 54 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h (.)165 b(2)p 0 0 1 TeXcolorrgb 639 1104 a SDict begin H.S end 639 1104 a Fx(1.4)86 b(Release)21 b(Notes)g(F)o(or)e(V)-9 b(ersion)20 b(2.3)f(No)o(v)h(2010)2188 1104 y SDict begin 12 H.L end 2188 1104 a 2188 1104 a SDict begin [ /Subtype /Link /Dest (subsection.1.4) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2188 1104 a 0 TeXcolorgray 29 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(3)p 0 0 1 TeXcolorrgb 639 1204 a SDict begin H.S end 639 1204 a Fx(1.5)86 b(Release)21 b(Notes)g(F)o(or)e(V)-9 b(ersion)20 b(2.2)f(Sep)i(2009)2171 1204 y SDict begin 12 H.L end 2171 1204 a 2171 1204 a SDict begin [ /Subtype /Link /Dest (subsection.1.5) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2171 1204 a 0 TeXcolorgray 46 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(4)p 0 0 1 TeXcolorrgb 639 1303 a SDict begin H.S end 639 1303 a Fx(1.6)86 b(Authors)19 b(and)h(Ackno)n(wledgements)1920 1303 y SDict begin 12 H.L end 1920 1303 a 1920 1303 a SDict begin [ /Subtype /Link /Dest (subsection.1.6) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1920 1303 a 0 TeXcolorgray 48 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)165 b(5)p 0 0 1 TeXcolorrgb 515 1486 a SDict begin H.S end 515 1486 a Fy(2)82 b(Installing)21 b(the)f(P)o(ackage)1424 1486 y SDict begin 12 H.L end 1424 1486 a 1424 1486 a SDict begin [ /Subtype /Link /Dest (section.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1424 1486 a 0 TeXcolorgray 1913 w Fy(5)p 0 0 1 TeXcolorrgb 639 1586 a SDict begin H.S end 639 1586 a Fx(2.1)86 b(Platforms)1154 1586 y SDict begin 12 H.L end 1154 1586 a 1154 1586 a SDict begin [ /Subtype /Link /Dest (subsection.2.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1154 1586 a 0 TeXcolorgray 66 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) g(.)h(.)f(.)g(.)g(.)h(.)165 b(5)p 0 0 1 TeXcolorrgb 639 1685 a SDict begin H.S end 639 1685 a Fx(2.2)86 b(Building)1122 1685 y SDict begin 12 H.L end 1122 1685 a 1122 1685 a SDict begin [ /Subtype /Link /Dest (subsection.2.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1122 1685 a 0 TeXcolorgray 36 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(5)p 0 0 1 TeXcolorrgb 830 1785 a SDict begin H.S end 830 1785 a Fx(2.2.1)98 b(Instructions)19 b(for)g(Building)h(CC\002ts)i(on)d(UNIX-lik)o(e)h (platforms:)2997 1785 y SDict begin 12 H.L end 2997 1785 a 2997 1785 a SDict begin [ /Subtype /Link /Dest (subsubsection.2.2.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2997 1785 a 0 TeXcolorgray 29 w Fx(.)41 b(.)h(.)165 b(6)p 0 0 1 TeXcolorrgb 830 1885 a SDict begin H.S end 830 1885 a Fx(2.2.2)98 b(Instructions)19 b(for)g(Microsft)h(W)m(indo)n(ws)f(b)n(uild:)2459 1885 y SDict begin 12 H.L end 2459 1885 a 2459 1885 a SDict begin [ /Subtype /Link /Dest (subsubsection.2.2.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2459 1885 a 0 TeXcolorgray 69 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(7)p 0 0 1 TeXcolorrgb 515 2067 a SDict begin H.S end 515 2067 a Fy(3)82 b(Implementation)20 b(Notes)1426 2067 y SDict begin 12 H.L end 1426 2067 a 1426 2067 a SDict begin [ /Subtype /Link /Dest (section.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1426 2067 a 0 TeXcolorgray 1911 w Fy(7)p 0 0 1 TeXcolorrgb 515 2250 a SDict begin H.S end 515 2250 a Fy(4)82 b(Xspec)21 b(and)g(CC\002ts)1253 2250 y SDict begin 12 H.L end 1253 2250 a 1253 2250 a SDict begin [ /Subtype /Link /Dest (section.4) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1253 2250 a 0 TeXcolorgray 2084 w Fy(9)p 0 0 1 TeXcolorrgb 639 2350 a SDict begin H.S end 639 2350 a Fx(4.1)86 b(About)20 b(XSPEC)1317 2350 y SDict begin 12 H.L end 1317 2350 a 1317 2350 a SDict begin [ /Subtype /Link /Dest (subsection.4.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1317 2350 a 0 TeXcolorgray 28 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(9)p 0 0 1 TeXcolorrgb 639 2449 a SDict begin H.S end 639 2449 a Fx(4.2)86 b(Ne)n(w)21 b(Data)f(F)o(ormats)1455 2449 y SDict begin 12 H.L end 1455 2449 a 1455 2449 a SDict begin [ /Subtype /Link /Dest (subsection.4.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1455 2449 a 0 TeXcolorgray 77 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)165 b(9)p 0 0 1 TeXcolorrgb 639 2549 a SDict begin H.S end 639 2549 a Fx(4.3)86 b(Modularity)1206 2549 y SDict begin 12 H.L end 1206 2549 a 1206 2549 a SDict begin [ /Subtype /Link /Dest (subsection.4.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1206 2549 a 0 TeXcolorgray 77 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(10)p 0 0 1 TeXcolorrgb 515 2731 a SDict begin H.S end 515 2731 a Fy(5)82 b(Getting)20 b(Started)1192 2731 y SDict begin 12 H.L end 1192 2731 a 1192 2731 a SDict begin [ /Subtype /Link /Dest (section.5) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1192 2731 a 0 TeXcolorgray 2104 w Fy(10)p 0 0 1 TeXcolorrgb 639 2831 a SDict begin H.S end 639 2831 a Fx(5.1)86 b(Dri)n(v)o(er)19 b(Program)1352 2831 y SDict begin 12 H.L end 1352 2831 a 1352 2831 a SDict begin [ /Subtype /Link /Dest (subsection.5.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1352 2831 a 0 TeXcolorgray 55 w Fx(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(10)p 0 0 1 TeXcolorrgb 515 3014 a SDict begin H.S end 515 3014 a Fy(6)82 b(Writing)20 b(Primary)g(Images)g(and)h(Image)f(Extensions)2316 3014 y SDict begin 12 H.L end 2316 3014 a 2316 3014 a SDict begin [ /Subtype /Link /Dest (section.6) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2316 3014 a 0 TeXcolorgray 980 w Fy(12)p 0 0 1 TeXcolorrgb 515 3196 a SDict begin H.S end 515 3196 a Fy(7)82 b(Cr)o(eating)19 b(and)i(Writing)f(to)g(an)g(Ascii)h(T)-8 b(able)21 b(Extension)2390 3196 y SDict begin 12 H.L end 2390 3196 a 2390 3196 a SDict begin [ /Subtype /Link /Dest (section.7) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2390 3196 a 0 TeXcolorgray 906 w Fy(15)p 0 0 1 TeXcolorrgb 515 3379 a SDict begin H.S end 515 3379 a Fy(8)82 b(Cr)o(eating)19 b(and)i(Writing)f(to)g (a)g(Binary)g(T)-8 b(able)21 b(Extension)2413 3379 y SDict begin 12 H.L end 2413 3379 a 2413 3379 a SDict begin [ /Subtype /Link /Dest (section.8) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2413 3379 a 0 TeXcolorgray 883 w Fy(18)p 0 0 1 TeXcolorrgb 515 3562 a SDict begin H.S end 515 3562 a Fy(9)82 b(Copying)20 b(an)g(Extension)h(between)f(Files)1917 3562 y SDict begin 12 H.L end 1917 3562 a 1917 3562 a SDict begin [ /Subtype /Link /Dest (section.9) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1917 3562 a 0 TeXcolorgray 1379 w Fy(23)p 0 0 1 TeXcolorrgb 515 3744 a SDict begin H.S end 515 3744 a Fy(10)40 b(Selecting)20 b(T)-8 b(able)21 b(Data)1366 3744 y SDict begin 12 H.L end 1366 3744 a 1366 3744 a SDict begin [ /Subtype /Link /Dest (section.10) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1366 3744 a 0 TeXcolorgray 1930 w Fy(24)p 0 0 1 TeXcolorrgb 515 3927 a SDict begin H.S end 515 3927 a Fy(11)40 b(Reading)20 b(Header)g(inf)n(ormation)f(fr)o(om)g(a)i(HDU) 2124 3927 y SDict begin 12 H.L end 2124 3927 a 2124 3927 a SDict begin [ /Subtype /Link /Dest (section.11) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2124 3927 a 0 TeXcolorgray 1172 w Fy(25)p 0 0 1 TeXcolorrgb 515 4110 a SDict begin H.S end 515 4110 a Fy(12)40 b(Reading)20 b(an)h(Image)1286 4110 y SDict begin 12 H.L end 1286 4110 a 1286 4110 a SDict begin [ /Subtype /Link /Dest (section.12) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1286 4110 a 0 TeXcolorgray 2010 w Fy(26)p 0 0 1 TeXcolorrgb 515 4292 a SDict begin H.S end 515 4292 a Fy(13)40 b(Reading)20 b(a)h(T)-8 b(able)21 b(Extension)1585 4292 y SDict begin 12 H.L end 1585 4292 a 1585 4292 a SDict begin [ /Subtype /Link /Dest (section.13) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1585 4292 a 0 TeXcolorgray 1711 w Fy(27)p 0 0 1 TeXcolorrgb 515 4475 a SDict begin H.S end 515 4475 a Fy(14)40 b(Reading)20 b(with)h(Extended)f(File)h(Name)f(Syntax)2119 4475 y SDict begin 12 H.L end 2119 4475 a 2119 4475 a SDict begin [ /Subtype /Link /Dest (section.14) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2119 4475 a 0 TeXcolorgray 1177 w Fy(28)p 0 0 1 TeXcolorrgb 515 4658 a SDict begin H.S end 515 4658 a Fy(15)40 b(What')m(s)20 b(Pr)o(esent,)g(What')m(s)g(Missing,)h(and)g (Calling)f(CFITSIO)2592 4658 y SDict begin 12 H.L end 2592 4658 a 2592 4658 a SDict begin [ /Subtype /Link /Dest (section.15) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2592 4658 a 0 TeXcolorgray 704 w Fy(29)p 0 0 1 TeXcolorrgb 639 4757 a SDict begin H.S end 639 4757 a Fx(15.1)44 b(What')-5 b(s)21 b(Not)f(Present)1476 4757 y SDict begin 12 H.L end 1476 4757 a 1476 4757 a SDict begin [ /Subtype /Link /Dest (subsection.15.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1476 4757 a 0 TeXcolorgray 56 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(30)p 0 0 1 TeXcolorrgb 639 4857 a SDict begin H.S end 639 4857 a Fx(15.2)44 b(Calling)20 b(CFITSIO)1409 4857 y SDict begin 12 H.L end 1409 4857 a 1409 4857 a SDict begin [ /Subtype /Link /Dest (subsection.15.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1409 4857 a 0 TeXcolorgray 60 w Fx(.)42 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(30)p 0 TeXcolorgray 0 TeXcolorgray eop end %%Page: 2 3 TeXDict begin 2 2 bop 0 TeXcolorgray 0 TeXcolorgray 515 203 a Fy(CONTENTS)2362 b(ii)p 515 236 2865 4 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 523 a SDict begin H.S end 515 523 a Fy(16)40 b(Pr)o(e)o(vious)19 b(Release)h(Notes)1453 523 y SDict begin 12 H.L end 1453 523 a 1453 523 a SDict begin [ /Subtype /Link /Dest (section.16) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1453 523 a 0 TeXcolorgray 1843 w Fy(30)p 0 0 1 TeXcolorrgb 515 706 a SDict begin H.S end 515 706 a Fy(17)40 b(T)-8 b(odo)21 b(List)975 706 y SDict begin 12 H.L end 975 706 a 975 706 a SDict begin [ /Subtype /Link /Dest (section.17) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 975 706 a 0 TeXcolorgray 2321 w Fy(33)p 0 0 1 TeXcolorrgb 515 888 a SDict begin H.S end 515 888 a Fy(18)40 b(Module)21 b(Index)1135 888 y SDict begin 12 H.L end 1135 888 a 1135 888 a SDict begin [ /Subtype /Link /Dest (section.18) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1135 888 a 0 TeXcolorgray 2161 w Fy(33)p 0 0 1 TeXcolorrgb 639 988 a SDict begin H.S end 639 988 a Fx(18.1)44 b(Modules)1122 988 y SDict begin 12 H.L end 1122 988 a 1122 988 a SDict begin [ /Subtype /Link /Dest (subsection.18.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1122 988 a 0 TeXcolorgray 36 w Fx(.)d(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(33)p 0 0 1 TeXcolorrgb 515 1171 a SDict begin H.S end 515 1171 a Fy(19)40 b(Namespace)20 b(Index)1264 1171 y SDict begin 12 H.L end 1264 1171 a 1264 1171 a SDict begin [ /Subtype /Link /Dest (section.19) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1264 1171 a 0 TeXcolorgray 2032 w Fy(33)p 0 0 1 TeXcolorrgb 639 1270 a SDict begin H.S end 639 1270 a Fx(19.1)44 b(Namespace)20 b(List)1363 1270 y SDict begin 12 H.L end 1363 1270 a 1363 1270 a SDict begin [ /Subtype /Link /Dest (subsection.19.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1363 1270 a 0 TeXcolorgray 44 w Fx(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(33)p 0 0 1 TeXcolorrgb 515 1453 a SDict begin H.S end 515 1453 a Fy(20)40 b(Hierar)o(chical)19 b(Index)1309 1453 y SDict begin 12 H.L end 1309 1453 a 1309 1453 a SDict begin [ /Subtype /Link /Dest (section.20) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1309 1453 a 0 TeXcolorgray 1987 w Fy(34)p 0 0 1 TeXcolorrgb 639 1553 a SDict begin H.S end 639 1553 a Fx(20.1)44 b(Class)22 b(Hierarchy)1365 1553 y SDict begin 12 H.L end 1365 1553 a 1365 1553 a SDict begin [ /Subtype /Link /Dest (subsection.20.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1365 1553 a 0 TeXcolorgray 42 w Fx(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g (.)h(.)124 b(34)p 0 0 1 TeXcolorrgb 515 1735 a SDict begin H.S end 515 1735 a Fy(21)40 b(Class)21 b(Index)1052 1735 y SDict begin 12 H.L end 1052 1735 a 1052 1735 a SDict begin [ /Subtype /Link /Dest (section.21) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1052 1735 a 0 TeXcolorgray 2244 w Fy(35)p 0 0 1 TeXcolorrgb 639 1835 a SDict begin H.S end 639 1835 a Fx(21.1)44 b(Class)22 b(List)1160 1835 y SDict begin 12 H.L end 1160 1835 a 1160 1835 a SDict begin [ /Subtype /Link /Dest (subsection.21.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1160 1835 a 0 TeXcolorgray 60 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) g(.)g(.)h(.)124 b(36)p 0 0 1 TeXcolorrgb 515 2017 a SDict begin H.S end 515 2017 a Fy(22)40 b(Module)21 b(Documentation)1478 2017 y SDict begin 12 H.L end 1478 2017 a 1478 2017 a SDict begin [ /Subtype /Link /Dest (section.22) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1478 2017 a 0 TeXcolorgray 1818 w Fy(39)p 0 0 1 TeXcolorrgb 639 2117 a SDict begin H.S end 639 2117 a Fx(22.1)44 b(FITS)21 b(Exceptions)1393 2117 y SDict begin 12 H.L end 1393 2117 a 1393 2117 a SDict begin [ /Subtype /Link /Dest (subsection.22.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1393 2117 a 0 TeXcolorgray 76 w Fx(.)42 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(39)p 0 0 1 TeXcolorrgb 515 2300 a SDict begin H.S end 515 2300 a Fy(23)40 b(Namespace)20 b(Documentation)1607 2300 y SDict begin 12 H.L end 1607 2300 a 1607 2300 a SDict begin [ /Subtype /Link /Dest (section.23) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1607 2300 a 0 TeXcolorgray 1689 w Fy(40)p 0 0 1 TeXcolorrgb 639 2399 a SDict begin H.S end 639 2399 a Fx(23.1)44 b(CC\002ts)22 b(Namespace)e(Reference) 1805 2399 y SDict begin 12 H.L end 1805 2399 a 1805 2399 a SDict begin [ /Subtype /Link /Dest (subsection.23.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1805 2399 a 0 TeXcolorgray 38 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(40)p 0 0 1 TeXcolorrgb 830 2499 a SDict begin H.S end 830 2499 a Fx(23.1.1)56 b(Detailed)20 b(Description)1787 2499 y SDict begin 12 H.L end 1787 2499 a 1787 2499 a SDict begin [ /Subtype /Link /Dest (subsubsection.23.1.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2499 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(41)p 0 0 1 TeXcolorrgb 830 2599 a SDict begin H.S end 830 2599 a Fx(23.1.2)56 b(Enumeration)18 b(T)-7 b(ype)19 b(Documentation)2245 2599 y SDict begin 12 H.L end 2245 2599 a 2245 2599 a SDict begin [ /Subtype /Link /Dest (subsubsection.23.1.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2245 2599 a 0 TeXcolorgray 34 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(41)p 0 0 1 TeXcolorrgb 830 2698 a SDict begin H.S end 830 2698 a Fx(23.1.3)56 b(Function)19 b(Documentation)1927 2698 y SDict begin 12 H.L end 1927 2698 a 1927 2698 a SDict begin [ /Subtype /Link /Dest (subsubsection.23.1.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1927 2698 a 0 TeXcolorgray 41 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)g(.)h(.)124 b(41)p 0 0 1 TeXcolorrgb 639 2798 a SDict begin H.S end 639 2798 a Fx(23.2)44 b(FITSUtil)21 b(Namespace)e(Reference)1892 2798 y SDict begin 12 H.L end 1892 2798 a 1892 2798 a SDict begin [ /Subtype /Link /Dest (subsection.23.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1892 2798 a 0 TeXcolorgray 76 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)g(.)h(.)124 b(42)p 0 0 1 TeXcolorrgb 830 2897 a SDict begin H.S end 830 2897 a Fx(23.2.1)56 b(Detailed)20 b(Description)1787 2897 y SDict begin 12 H.L end 1787 2897 a 1787 2897 a SDict begin [ /Subtype /Link /Dest (subsubsection.23.2.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2897 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(42)p 0 0 1 TeXcolorrgb 515 3080 a SDict begin H.S end 515 3080 a Fy(24)40 b(Class)21 b(Documentation)1395 3080 y SDict begin 12 H.L end 1395 3080 a 1395 3080 a SDict begin [ /Subtype /Link /Dest (section.24) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1395 3080 a 0 TeXcolorgray 1901 w Fy(42)p 0 0 1 TeXcolorrgb 639 3180 a SDict begin H.S end 639 3180 a Fx(24.1)44 b(CC\002ts::AsciiT)-7 b(able)22 b(Class)g(Reference)2006 3180 y SDict begin 12 H.L end 2006 3180 a 2006 3180 a SDict begin [ /Subtype /Link /Dest (subsection.24.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2006 3180 a 0 TeXcolorgray 24 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)124 b(42)p 0 0 1 TeXcolorrgb 830 3279 a SDict begin H.S end 830 3279 a Fx(24.1.1)56 b(Detailed)20 b(Description)1787 3279 y SDict begin 12 H.L end 1787 3279 a 1787 3279 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.1.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3279 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(43)p 0 0 1 TeXcolorrgb 830 3379 a SDict begin H.S end 830 3379 a Fx(24.1.2)56 b(Constructor)19 b(&)h(Destructor)f (Documentation)2480 3379 y SDict begin 12 H.L end 2480 3379 a 2480 3379 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.1.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3379 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) h(.)124 b(43)p 0 0 1 TeXcolorrgb 830 3479 a SDict begin H.S end 830 3479 a Fx(24.1.3)56 b(Member)19 b(Function)g(Documentation)2229 3479 y SDict begin 12 H.L end 2229 3479 a 2229 3479 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.1.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 3479 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) 124 b(45)p 0 0 1 TeXcolorrgb 639 3578 a SDict begin H.S end 639 3578 a Fx(24.2)44 b(CC\002ts::BinT)-7 b(able)22 b(Class)f(Reference)1950 3578 y SDict begin 12 H.L end 1950 3578 a 1950 3578 a SDict begin [ /Subtype /Link /Dest (subsection.24.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1950 3578 a 0 TeXcolorgray 80 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)124 b(46)p 0 0 1 TeXcolorrgb 830 3678 a SDict begin H.S end 830 3678 a Fx(24.2.1)56 b(Detailed)20 b(Description)1787 3678 y SDict begin 12 H.L end 1787 3678 a 1787 3678 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.2.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3678 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(47)p 0 0 1 TeXcolorrgb 830 3778 a SDict begin H.S end 830 3778 a Fx(24.2.2)56 b(Constructor)19 b(&)h(Destructor)f (Documentation)2480 3778 y SDict begin 12 H.L end 2480 3778 a 2480 3778 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.2.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3778 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) h(.)124 b(47)p 0 0 1 TeXcolorrgb 830 3877 a SDict begin H.S end 830 3877 a Fx(24.2.3)56 b(Member)19 b(Function)g(Documentation)2229 3877 y SDict begin 12 H.L end 2229 3877 a 2229 3877 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.2.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 3877 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) 124 b(49)p 0 0 1 TeXcolorrgb 639 3977 a SDict begin H.S end 639 3977 a Fx(24.3)44 b(CC\002ts::Column)21 b(Class)h(Reference)1916 3977 y SDict begin 12 H.L end 1916 3977 a 1916 3977 a SDict begin [ /Subtype /Link /Dest (subsection.24.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1916 3977 a 0 TeXcolorgray 52 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)124 b(50)p 0 0 1 TeXcolorrgb 830 4076 a SDict begin H.S end 830 4076 a Fx(24.3.1)56 b(Detailed)20 b(Description)1787 4076 y SDict begin 12 H.L end 1787 4076 a 1787 4076 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.3.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4076 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(54)p 0 0 1 TeXcolorrgb 830 4176 a SDict begin H.S end 830 4176 a Fx(24.3.2)56 b(Constructor)19 b(&)h(Destructor)f (Documentation)2480 4176 y SDict begin 12 H.L end 2480 4176 a 2480 4176 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.3.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4176 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) h(.)124 b(55)p 0 0 1 TeXcolorrgb 830 4276 a SDict begin H.S end 830 4276 a Fx(24.3.3)56 b(Member)19 b(Function)g(Documentation)2229 4276 y SDict begin 12 H.L end 2229 4276 a 2229 4276 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.3.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 4276 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) 124 b(55)p 0 0 1 TeXcolorrgb 639 4375 a SDict begin H.S end 639 4375 a Fx(24.4)44 b(CC\002ts::Column::Insuf)n(\002cientElements)18 b(Class)k(Reference) 2647 4375 y SDict begin 12 H.L end 2647 4375 a 2647 4375 a SDict begin [ /Subtype /Link /Dest (subsection.24.4) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2647 4375 a 0 TeXcolorgray 68 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(65)p 0 0 1 TeXcolorrgb 830 4475 a SDict begin H.S end 830 4475 a Fx(24.4.1)56 b(Detailed)20 b(Description)1787 4475 y SDict begin 12 H.L end 1787 4475 a 1787 4475 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.4.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4475 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(65)p 0 0 1 TeXcolorrgb 830 4575 a SDict begin H.S end 830 4575 a Fx(24.4.2)56 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4575 y SDict begin 12 H.L end 2480 4575 a 2480 4575 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.4.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4575 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(65)p 0 0 1 TeXcolorrgb 639 4674 a SDict begin H.S end 639 4674 a Fx(24.5)44 b(CC\002ts::Column::In)m(v)n(alidDataT)-7 b(ype)18 b(Class)j(Reference) 2512 4674 y SDict begin 12 H.L end 2512 4674 a 2512 4674 a SDict begin [ /Subtype /Link /Dest (subsection.24.5) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2512 4674 a 0 TeXcolorgray 78 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(66)p 0 0 1 TeXcolorrgb 830 4774 a SDict begin H.S end 830 4774 a Fx(24.5.1)56 b(Detailed)20 b(Description)1787 4774 y SDict begin 12 H.L end 1787 4774 a 1787 4774 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.5.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4774 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(66)p 0 0 1 TeXcolorrgb 830 4873 a SDict begin H.S end 830 4873 a Fx(24.5.2)56 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4873 y SDict begin 12 H.L end 2480 4873 a 2480 4873 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.5.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4873 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(66)p 0 0 1 TeXcolorrgb 639 4973 a SDict begin H.S end 639 4973 a Fx(24.6)44 b(CC\002ts::Column::In)m(v)n(alidNumberOfRo)n(ws)17 b(Class)k (Reference)2738 4973 y SDict begin 12 H.L end 2738 4973 a 2738 4973 a SDict begin [ /Subtype /Link /Dest (subsection.24.6) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2738 4973 a 0 TeXcolorgray 39 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)124 b(67)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 3 4 TeXDict begin 3 3 bop 0 TeXcolorgray 0 TeXcolorgray 515 203 a Fy(CONTENTS)2339 b(iii)p 515 236 2865 4 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 830 523 a SDict begin H.S end 830 523 a Fx(24.6.1)56 b(Detailed)20 b(Description)1787 523 y SDict begin 12 H.L end 1787 523 a 1787 523 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.6.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 523 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(67)p 0 0 1 TeXcolorrgb 830 623 a SDict begin H.S end 830 623 a Fx(24.6.2)56 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 623 y SDict begin 12 H.L end 2480 623 a 2480 623 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.6.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 623 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)124 b(67)p 0 0 1 TeXcolorrgb 639 722 a SDict begin H.S end 639 722 a Fx(24.7)44 b(CC\002ts::Column::In)m(v)n(alidRo)n (wNumber)17 b(Class)k(Reference)2618 722 y SDict begin 12 H.L end 2618 722 a 2618 722 a SDict begin [ /Subtype /Link /Dest (subsection.24.7) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2618 722 a 0 TeXcolorgray 35 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g (.)g(.)h(.)124 b(68)p 0 0 1 TeXcolorrgb 830 822 a SDict begin H.S end 830 822 a Fx(24.7.1)56 b(Detailed)20 b(Description)1787 822 y SDict begin 12 H.L end 1787 822 a 1787 822 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.7.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 822 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)124 b(68)p 0 0 1 TeXcolorrgb 830 922 a SDict begin H.S end 830 922 a Fx(24.7.2)56 b(Constructor)19 b(&)h(Destructor)f (Documentation)2480 922 y SDict begin 12 H.L end 2480 922 a 2480 922 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.7.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 922 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h (.)124 b(68)p 0 0 1 TeXcolorrgb 639 1021 a SDict begin H.S end 639 1021 a Fx(24.8)44 b(CC\002ts::Column::In)m(v)n(alidRo)n(wP)o(arameter)17 b(Class)22 b(Reference)2682 1021 y SDict begin 12 H.L end 2682 1021 a 2682 1021 a SDict begin [ /Subtype /Link /Dest (subsection.24.8) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2682 1021 a 0 TeXcolorgray 33 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.) 124 b(69)p 0 0 1 TeXcolorrgb 830 1121 a SDict begin H.S end 830 1121 a Fx(24.8.1)56 b(Detailed)20 b(Description)1787 1121 y SDict begin 12 H.L end 1787 1121 a 1787 1121 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.8.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1121 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(69)p 0 0 1 TeXcolorrgb 830 1220 a SDict begin H.S end 830 1220 a Fx(24.8.2)56 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 1220 y SDict begin 12 H.L end 2480 1220 a 2480 1220 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.8.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 1220 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(70)p 0 0 1 TeXcolorrgb 639 1320 a SDict begin H.S end 639 1320 a Fx(24.9)44 b(CC\002ts::Column::NoNullV)-9 b(alue)19 b(Class)j(Reference)2400 1320 y SDict begin 12 H.L end 2400 1320 a 2400 1320 a SDict begin [ /Subtype /Link /Dest (subsection.24.9) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2400 1320 a 0 TeXcolorgray 66 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(70)p 0 0 1 TeXcolorrgb 830 1420 a SDict begin H.S end 830 1420 a Fx(24.9.1)56 b(Detailed)20 b(Description)1787 1420 y SDict begin 12 H.L end 1787 1420 a 1787 1420 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.9.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1420 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(71)p 0 0 1 TeXcolorrgb 830 1519 a SDict begin H.S end 830 1519 a Fx(24.9.2)56 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 1519 y SDict begin 12 H.L end 2480 1519 a 2480 1519 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.9.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 1519 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(71)p 0 0 1 TeXcolorrgb 639 1619 a SDict begin H.S end 639 1619 a Fx(24.10)r (CC\002ts::Column::RangeError)18 b(Class)k(Reference)2349 1619 y SDict begin 12 H.L end 2349 1619 a 2349 1619 a SDict begin [ /Subtype /Link /Dest (subsection.24.10) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2349 1619 a 0 TeXcolorgray 54 w Fx(.)42 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(71)p 0 0 1 TeXcolorrgb 830 1719 a SDict begin H.S end 830 1719 a Fx(24.10.1)14 b(Detailed)20 b(Description)1787 1719 y SDict begin 12 H.L end 1787 1719 a 1787 1719 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.10.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1719 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(72)p 0 0 1 TeXcolorrgb 830 1818 a SDict begin H.S end 830 1818 a Fx(24.10.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 1818 y SDict begin 12 H.L end 2480 1818 a 2480 1818 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.10.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 1818 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(72)p 0 0 1 TeXcolorrgb 639 1918 a SDict begin H.S end 639 1918 a Fx(24.11)r (CC\002ts::Column::WrongColumnT)-7 b(ype)17 b(Class)22 b(Reference)2624 1918 y SDict begin 12 H.L end 2624 1918 a 2624 1918 a SDict begin [ /Subtype /Link /Dest (subsection.24.11) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2624 1918 a 0 TeXcolorgray 29 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(72)p 0 0 1 TeXcolorrgb 830 2017 a SDict begin H.S end 830 2017 a Fx(24.11.1)14 b(Detailed)20 b(Description)1787 2017 y SDict begin 12 H.L end 1787 2017 a 1787 2017 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.11.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2017 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(73)p 0 0 1 TeXcolorrgb 830 2117 a SDict begin H.S end 830 2117 a Fx(24.11.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 2117 y SDict begin 12 H.L end 2480 2117 a 2480 2117 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.11.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 2117 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(73)p 0 0 1 TeXcolorrgb 639 2217 a SDict begin H.S end 639 2217 a Fx(24.12)r (CC\002ts::ExtHDU)22 b(Class)f(Reference)1943 2217 y SDict begin 12 H.L end 1943 2217 a 1943 2217 a SDict begin [ /Subtype /Link /Dest (subsection.24.12) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1943 2217 a 0 TeXcolorgray 25 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)124 b(74)p 0 0 1 TeXcolorrgb 830 2316 a SDict begin H.S end 830 2316 a Fx(24.12.1)14 b(Detailed)20 b(Description)1787 2316 y SDict begin 12 H.L end 1787 2316 a 1787 2316 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.12.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2316 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(77)p 0 0 1 TeXcolorrgb 830 2416 a SDict begin H.S end 830 2416 a Fx(24.12.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 2416 y SDict begin 12 H.L end 2480 2416 a 2480 2416 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.12.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 2416 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(77)p 0 0 1 TeXcolorrgb 830 2516 a SDict begin H.S end 830 2516 a Fx(24.12.3)14 b(Member)19 b(Function)g(Documentation)2229 2516 y SDict begin 12 H.L end 2229 2516 a 2229 2516 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.12.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 2516 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(78)p 0 0 1 TeXcolorrgb 639 2615 a SDict begin H.S end 639 2615 a Fx(24.13)r(CC\002ts::ExtHDU::WrongExtensionT)-7 b(ype)17 b(Class)22 b(Reference)2716 2615 y SDict begin 12 H.L end 2716 2615 a 2716 2615 a SDict begin [ /Subtype /Link /Dest (subsection.24.13) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2716 2615 a 0 TeXcolorgray 61 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)124 b(83)p 0 0 1 TeXcolorrgb 830 2715 a SDict begin H.S end 830 2715 a Fx(24.13.1)14 b(Detailed)20 b(Description)1787 2715 y SDict begin 12 H.L end 1787 2715 a 1787 2715 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.13.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2715 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(84)p 0 0 1 TeXcolorrgb 830 2814 a SDict begin H.S end 830 2814 a Fx(24.13.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 2814 y SDict begin 12 H.L end 2480 2814 a 2480 2814 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.13.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 2814 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(84)p 0 0 1 TeXcolorrgb 639 2914 a SDict begin H.S end 639 2914 a Fx(24.14)r(CC\002ts::FITS)22 b(Class)g(Reference)1819 2914 y SDict begin 12 H.L end 1819 2914 a 1819 2914 a SDict begin [ /Subtype /Link /Dest (subsection.24.14) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1819 2914 a 0 TeXcolorgray 24 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(84)p 0 0 1 TeXcolorrgb 830 3014 a SDict begin H.S end 830 3014 a Fx(24.14.1)14 b(Detailed)20 b(Description)1787 3014 y SDict begin 12 H.L end 1787 3014 a 1787 3014 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.14.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3014 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(88)p 0 0 1 TeXcolorrgb 830 3113 a SDict begin H.S end 830 3113 a Fx(24.14.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 3113 y SDict begin 12 H.L end 2480 3113 a 2480 3113 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.14.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3113 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(88)p 0 0 1 TeXcolorrgb 830 3213 a SDict begin H.S end 830 3213 a Fx(24.14.3)14 b(Member)19 b(Function)g(Documentation)2229 3213 y SDict begin 12 H.L end 2229 3213 a 2229 3213 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.14.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 3213 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(93)p 0 0 1 TeXcolorrgb 639 3313 a SDict begin H.S end 639 3313 a Fx(24.15)r (CC\002ts::FITS::CantCreate)22 b(Class)f(Reference)2238 3313 y SDict begin 12 H.L end 2238 3313 a 2238 3313 a SDict begin [ /Subtype /Link /Dest (subsection.24.15) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2238 3313 a 0 TeXcolorgray 41 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) 124 b(98)p 0 0 1 TeXcolorrgb 830 3412 a SDict begin H.S end 830 3412 a Fx(24.15.1)14 b(Detailed)20 b(Description)1787 3412 y SDict begin 12 H.L end 1787 3412 a 1787 3412 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.15.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3412 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(98)p 0 0 1 TeXcolorrgb 830 3512 a SDict begin H.S end 830 3512 a Fx(24.15.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 3512 y SDict begin 12 H.L end 2480 3512 a 2480 3512 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.15.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3512 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)124 b(98)p 0 0 1 TeXcolorrgb 639 3611 a SDict begin H.S end 639 3611 a Fx(24.16)r (CC\002ts::FITS::CantOpen)21 b(Class)h(Reference)2202 3611 y SDict begin 12 H.L end 2202 3611 a 2202 3611 a SDict begin [ /Subtype /Link /Dest (subsection.24.16) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2202 3611 a 0 TeXcolorgray 77 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) 124 b(99)p 0 0 1 TeXcolorrgb 830 3711 a SDict begin H.S end 830 3711 a Fx(24.16.1)14 b(Detailed)20 b(Description)1787 3711 y SDict begin 12 H.L end 1787 3711 a 1787 3711 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.16.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3711 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(100)p 0 0 1 TeXcolorrgb 830 3811 a SDict begin H.S end 830 3811 a Fx(24.16.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 3811 y SDict begin 12 H.L end 2480 3811 a 2480 3811 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.16.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3811 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(100)p 0 0 1 TeXcolorrgb 639 3910 a SDict begin H.S end 639 3910 a Fx(24.17)r (CC\002ts::FITS::NoSuchHDU)21 b(Class)g(Reference)2312 3910 y SDict begin 12 H.L end 2312 3910 a 2312 3910 a SDict begin [ /Subtype /Link /Dest (subsection.24.17) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2312 3910 a 0 TeXcolorgray 29 w Fx(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(100)p 0 0 1 TeXcolorrgb 830 4010 a SDict begin H.S end 830 4010 a Fx(24.17.1)14 b(Detailed)20 b(Description)1787 4010 y SDict begin 12 H.L end 1787 4010 a 1787 4010 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.17.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4010 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(101)p 0 0 1 TeXcolorrgb 830 4110 a SDict begin H.S end 830 4110 a Fx(24.17.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4110 y SDict begin 12 H.L end 2480 4110 a 2480 4110 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.17.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4110 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(101)p 0 0 1 TeXcolorrgb 639 4209 a SDict begin H.S end 639 4209 a Fx(24.18)r (CC\002ts::FITS::OperationNotSupported)17 b(Class)22 b(Reference)2663 4209 y SDict begin 12 H.L end 2663 4209 a 2663 4209 a SDict begin [ /Subtype /Link /Dest (subsection.24.18) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2663 4209 a 0 TeXcolorgray 52 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(101)p 0 0 1 TeXcolorrgb 830 4309 a SDict begin H.S end 830 4309 a Fx(24.18.1)14 b(Detailed)20 b(Description)1787 4309 y SDict begin 12 H.L end 1787 4309 a 1787 4309 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.18.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4309 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(102)p 0 0 1 TeXcolorrgb 830 4408 a SDict begin H.S end 830 4408 a Fx(24.18.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4408 y SDict begin 12 H.L end 2480 4408 a 2480 4408 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.18.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4408 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(102)p 0 0 1 TeXcolorrgb 639 4508 a SDict begin H.S end 639 4508 a Fx(24.19)r (CC\002ts::FitsError)21 b(Class)h(Reference)1948 4508 y SDict begin 12 H.L end 1948 4508 a 1948 4508 a SDict begin [ /Subtype /Link /Dest (subsection.24.19) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1948 4508 a 0 TeXcolorgray 20 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)g(.)h(.)82 b(102)p 0 0 1 TeXcolorrgb 830 4608 a SDict begin H.S end 830 4608 a Fx(24.19.1)14 b(Detailed)20 b(Description)1787 4608 y SDict begin 12 H.L end 1787 4608 a 1787 4608 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.19.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4608 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(103)p 0 0 1 TeXcolorrgb 830 4707 a SDict begin H.S end 830 4707 a Fx(24.19.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4707 y SDict begin 12 H.L end 2480 4707 a 2480 4707 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.19.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4707 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(103)p 0 0 1 TeXcolorrgb 639 4807 a SDict begin H.S end 639 4807 a Fx(24.20)r(CC\002ts::FitsException)21 b(Class)g(Reference)2109 4807 y SDict begin 12 H.L end 2109 4807 a 2109 4807 a SDict begin [ /Subtype /Link /Dest (subsection.24.20) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2109 4807 a 0 TeXcolorgray 45 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(103)p 0 0 1 TeXcolorrgb 830 4907 a SDict begin H.S end 830 4907 a Fx(24.20.1)14 b(Detailed)20 b(Description)1787 4907 y SDict begin 12 H.L end 1787 4907 a 1787 4907 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.20.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4907 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(104)p 0 0 1 TeXcolorrgb 830 5006 a SDict begin H.S end 830 5006 a Fx(24.20.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 5006 y SDict begin 12 H.L end 2480 5006 a 2480 5006 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.20.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 5006 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(105)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 4 5 TeXDict begin 4 4 bop 0 TeXcolorgray 0 TeXcolorgray 515 203 a Fy(CONTENTS)2344 b(i)o(v)p 515 236 2865 4 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 830 523 a SDict begin H.S end 830 523 a Fx(24.20.3)14 b(Member)19 b(Function)g(Documentation)2229 523 y SDict begin 12 H.L end 2229 523 a 2229 523 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.20.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 523 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(105)p 0 0 1 TeXcolorrgb 639 623 a SDict begin H.S end 639 623 a Fx(24.21)r(CC\002ts::FitsF)o(atal)23 b(Class)e(Reference)1937 623 y SDict begin 12 H.L end 1937 623 a 1937 623 a SDict begin [ /Subtype /Link /Dest (subsection.24.21) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1937 623 a 0 TeXcolorgray 31 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(105)p 0 0 1 TeXcolorrgb 830 722 a SDict begin H.S end 830 722 a Fx(24.21.1)14 b(Detailed)20 b(Description)1787 722 y SDict begin 12 H.L end 1787 722 a 1787 722 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.21.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 722 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(106)p 0 0 1 TeXcolorrgb 830 822 a SDict begin H.S end 830 822 a Fx(24.21.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 822 y SDict begin 12 H.L end 2480 822 a 2480 822 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.21.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 822 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)82 b(106)p 0 0 1 TeXcolorrgb 639 922 a SDict begin H.S end 639 922 a Fx(24.22)r(CC\002ts::FITSUtil::auto_array_ptr)p Fu(<)18 b Fx(X)i Fu(>)h Fx(Class)g(T)-6 b(emplate)20 b(Reference)3042 922 y SDict begin 12 H.L end 3042 922 a 3042 922 a SDict begin [ /Subtype /Link /Dest (subsection.24.22) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 3042 922 a 0 TeXcolorgray 46 w Fx(.)42 b(.)82 b(106)p 0 0 1 TeXcolorrgb 830 1021 a SDict begin H.S end 830 1021 a Fx(24.22.1)14 b(Detailed)20 b(Description)1787 1021 y SDict begin 12 H.L end 1787 1021 a 1787 1021 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.22.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1021 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(107)p 0 0 1 TeXcolorrgb 639 1121 a SDict begin H.S end 639 1121 a Fx(24.23)r(CC\002ts::FITSUtil::CAarray)p Fu(<)21 b Fx(T)f Fu(>)h Fx(Class)g(T)-6 b(emplate)20 b(Reference)2830 1121 y SDict begin 12 H.L end 2830 1121 a 2830 1121 a SDict begin [ /Subtype /Link /Dest (subsection.24.23) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2830 1121 a 0 TeXcolorgray 72 w Fx(.)41 b(.)g(.)g(.)h(.)82 b(108)p 0 0 1 TeXcolorrgb 830 1220 a SDict begin H.S end 830 1220 a Fx(24.23.1)14 b(Detailed)20 b(Description)1787 1220 y SDict begin 12 H.L end 1787 1220 a 1787 1220 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.23.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1220 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(108)p 0 0 1 TeXcolorrgb 639 1320 a SDict begin H.S end 639 1320 a Fx(24.24)r (CC\002ts::FITSUtil::CVAarray)p Fu(<)21 b Fx(T)f Fu(>)g Fx(Class)i(T)-6 b(emplate)20 b(Reference)2890 1320 y SDict begin 12 H.L end 2890 1320 a 2890 1320 a SDict begin [ /Subtype /Link /Dest (subsection.24.24) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2890 1320 a 0 TeXcolorgray 74 w Fx(.)41 b(.)g(.)h(.)82 b(108)p 0 0 1 TeXcolorrgb 830 1420 a SDict begin H.S end 830 1420 a Fx(24.24.1)14 b(Detailed)20 b(Description)1787 1420 y SDict begin 12 H.L end 1787 1420 a 1787 1420 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.24.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1420 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(108)p 0 0 1 TeXcolorrgb 639 1519 a SDict begin H.S end 639 1519 a Fx(24.25)r(CC\002ts::FITSUtil::CV)-9 b(array)p Fu(<)21 b Fx(T)f Fu(>)g Fx(Class)i(T)-6 b(emplate)20 b(Reference)2821 1519 y SDict begin 12 H.L end 2821 1519 a 2821 1519 a SDict begin [ /Subtype /Link /Dest (subsection.24.25) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2821 1519 a 0 TeXcolorgray 81 w Fx(.)41 b(.)g(.)g(.)h(.)82 b(109)p 0 0 1 TeXcolorrgb 830 1619 a SDict begin H.S end 830 1619 a Fx(24.25.1)14 b(Detailed)20 b(Description)1787 1619 y SDict begin 12 H.L end 1787 1619 a 1787 1619 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.25.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1619 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(109)p 0 0 1 TeXcolorrgb 639 1719 a SDict begin H.S end 639 1719 a Fx(24.26)r (CC\002ts::FITSUtil::MatchName)p Fu(<)20 b Fx(T)h Fu(>)f Fx(Class)i(T)-6 b(emplate)19 b(Reference)2954 1719 y SDict begin 12 H.L end 2954 1719 a 2954 1719 a SDict begin [ /Subtype /Link /Dest (subsection.24.26) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2954 1719 a 0 TeXcolorgray 72 w Fx(.)41 b(.)h(.)82 b(109)p 0 0 1 TeXcolorrgb 830 1818 a SDict begin H.S end 830 1818 a Fx(24.26.1)14 b(Detailed)20 b(Description)1787 1818 y SDict begin 12 H.L end 1787 1818 a 1787 1818 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.26.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1818 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(109)p 0 0 1 TeXcolorrgb 639 1918 a SDict begin H.S end 639 1918 a Fx(24.27)r(CC\002ts::FITSUtil::MatchNum)p Fu(<)20 b Fx(T)h Fu(>)f Fx(Class)i(T)-6 b(emplate)19 b(Reference)2922 1918 y SDict begin 12 H.L end 2922 1918 a 2922 1918 a SDict begin [ /Subtype /Link /Dest (subsection.24.27) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2922 1918 a 0 TeXcolorgray 42 w Fx(.)41 b(.)g(.)h(.)82 b(110)p 0 0 1 TeXcolorrgb 830 2017 a SDict begin H.S end 830 2017 a Fx(24.27.1)14 b(Detailed)20 b(Description)1787 2017 y SDict begin 12 H.L end 1787 2017 a 1787 2017 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.27.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2017 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(110)p 0 0 1 TeXcolorrgb 639 2117 a SDict begin H.S end 639 2117 a Fx(24.28)r (CC\002ts::FITSUtil::MatchPtrName)p Fu(<)20 b Fx(T)h Fu(>)f Fx(Class)i(T)-6 b(emplate)19 b(Reference)3051 2117 y SDict begin 12 H.L end 3051 2117 a 3051 2117 a SDict begin [ /Subtype /Link /Dest (subsection.24.28) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 3051 2117 a 0 TeXcolorgray 37 w Fx(.)42 b(.)82 b(110)p 0 0 1 TeXcolorrgb 830 2217 a SDict begin H.S end 830 2217 a Fx(24.28.1)14 b(Detailed)20 b(Description)1787 2217 y SDict begin 12 H.L end 1787 2217 a 1787 2217 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.28.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2217 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(111)p 0 0 1 TeXcolorrgb 639 2316 a SDict begin H.S end 639 2316 a Fx(24.29)r(CC\002ts::FITSUtil::MatchPtrNum)p Fu(<)20 b Fx(T)g Fu(>)h Fx(Class)g(T)-6 b(emplate)20 b(Reference)3019 2316 y SDict begin 12 H.L end 3019 2316 a 3019 2316 a SDict begin [ /Subtype /Link /Dest (subsection.24.29) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 3019 2316 a 0 TeXcolorgray 69 w Fx(.)42 b(.)82 b(111)p 0 0 1 TeXcolorrgb 830 2416 a SDict begin H.S end 830 2416 a Fx(24.29.1)14 b(Detailed)20 b(Description)1787 2416 y SDict begin 12 H.L end 1787 2416 a 1787 2416 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.29.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2416 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(111)p 0 0 1 TeXcolorrgb 639 2516 a SDict begin H.S end 639 2516 a Fx(24.30)r (CC\002ts::FITSUtil::MatchT)-7 b(ype)p Fu(<)20 b Fx(T)h Fu(>)f Fx(Class)h(T)-6 b(emplate)20 b(Reference)2920 2516 y SDict begin 12 H.L end 2920 2516 a 2920 2516 a SDict begin [ /Subtype /Link /Dest (subsection.24.30) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2920 2516 a 0 TeXcolorgray 44 w Fx(.)41 b(.)g(.)h(.)82 b(111)p 0 0 1 TeXcolorrgb 830 2615 a SDict begin H.S end 830 2615 a Fx(24.30.1)14 b(Detailed)20 b(Description)1787 2615 y SDict begin 12 H.L end 1787 2615 a 1787 2615 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.30.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2615 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(111)p 0 0 1 TeXcolorrgb 639 2715 a SDict begin H.S end 639 2715 a Fx(24.31)r(CC\002ts::FITSUtil::UnrecognizedT)-7 b(ype)18 b(Class)k(Reference)2624 2715 y SDict begin 12 H.L end 2624 2715 a 2624 2715 a SDict begin [ /Subtype /Link /Dest (subsection.24.31) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2624 2715 a 0 TeXcolorgray 29 w Fx(.)41 b(.)g(.)g(.)h(.)f (.)g(.)g(.)h(.)82 b(112)p 0 0 1 TeXcolorrgb 830 2814 a SDict begin H.S end 830 2814 a Fx(24.31.1)14 b(Detailed)20 b(Description)1787 2814 y SDict begin 12 H.L end 1787 2814 a 1787 2814 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.31.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 2814 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(112)p 0 0 1 TeXcolorrgb 639 2914 a SDict begin H.S end 639 2914 a Fx(24.32)r(CC\002ts::HDU)22 b(Class)g(Reference) 1828 2914 y SDict begin 12 H.L end 1828 2914 a 1828 2914 a SDict begin [ /Subtype /Link /Dest (subsection.24.32) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1828 2914 a 0 TeXcolorgray 77 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)82 b(112)p 0 0 1 TeXcolorrgb 830 3014 a SDict begin H.S end 830 3014 a Fx(24.32.1)14 b(Detailed)20 b(Description)1787 3014 y SDict begin 12 H.L end 1787 3014 a 1787 3014 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.32.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3014 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(116)p 0 0 1 TeXcolorrgb 830 3113 a SDict begin H.S end 830 3113 a Fx(24.32.2)14 b(Member)19 b(Function)g (Documentation)2229 3113 y SDict begin 12 H.L end 2229 3113 a 2229 3113 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.32.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 3113 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)g(.)h(.)82 b(116)p 0 0 1 TeXcolorrgb 639 3213 a SDict begin H.S end 639 3213 a Fx(24.33)r(CC\002ts::HDU::In)m(v)n(alidExtensionT)-7 b(ype)17 b(Class)22 b(Reference)2600 3213 y SDict begin 12 H.L end 2600 3213 a 2600 3213 a SDict begin [ /Subtype /Link /Dest (subsection.24.33) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2600 3213 a 0 TeXcolorgray 53 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(121)p 0 0 1 TeXcolorrgb 830 3313 a SDict begin H.S end 830 3313 a Fx(24.33.1)14 b(Detailed)20 b(Description)1787 3313 y SDict begin 12 H.L end 1787 3313 a 1787 3313 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.33.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3313 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(122)p 0 0 1 TeXcolorrgb 830 3412 a SDict begin H.S end 830 3412 a Fx(24.33.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 3412 y SDict begin 12 H.L end 2480 3412 a 2480 3412 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.33.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3412 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(122)p 0 0 1 TeXcolorrgb 639 3512 a SDict begin H.S end 639 3512 a Fx(24.34)r(CC\002ts::HDU::In)m(v)n (alidImageDataT)-7 b(ype)17 b(Class)22 b(Reference)2632 3512 y SDict begin 12 H.L end 2632 3512 a 2632 3512 a SDict begin [ /Subtype /Link /Dest (subsection.24.34) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2632 3512 a 0 TeXcolorgray 21 w Fx(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(122)p 0 0 1 TeXcolorrgb 830 3611 a SDict begin H.S end 830 3611 a Fx(24.34.1)14 b(Detailed)20 b(Description)1787 3611 y SDict begin 12 H.L end 1787 3611 a 1787 3611 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.34.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3611 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(123)p 0 0 1 TeXcolorrgb 830 3711 a SDict begin H.S end 830 3711 a Fx(24.34.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 3711 y SDict begin 12 H.L end 2480 3711 a 2480 3711 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.34.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 3711 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(123)p 0 0 1 TeXcolorrgb 639 3811 a SDict begin H.S end 639 3811 a Fx(24.35)r (CC\002ts::HDU::NoNullV)-9 b(alue)21 b(Class)g(Reference)2312 3811 y SDict begin 12 H.L end 2312 3811 a 2312 3811 a SDict begin [ /Subtype /Link /Dest (subsection.24.35) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2312 3811 a 0 TeXcolorgray 29 w Fx(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(123)p 0 0 1 TeXcolorrgb 830 3910 a SDict begin H.S end 830 3910 a Fx(24.35.1)14 b(Detailed)20 b(Description)1787 3910 y SDict begin 12 H.L end 1787 3910 a 1787 3910 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.35.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 3910 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(124)p 0 0 1 TeXcolorrgb 830 4010 a SDict begin H.S end 830 4010 a Fx(24.35.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4010 y SDict begin 12 H.L end 2480 4010 a 2480 4010 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.35.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4010 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(124)p 0 0 1 TeXcolorrgb 639 4110 a SDict begin H.S end 639 4110 a Fx(24.36)r (CC\002ts::HDU::NoSuchK)n(e)o(yw)o(ord)19 b(Class)i(Reference)2446 4110 y SDict begin 12 H.L end 2446 4110 a 2446 4110 a SDict begin [ /Subtype /Link /Dest (subsection.24.36) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2446 4110 a 0 TeXcolorgray 20 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(125)p 0 0 1 TeXcolorrgb 830 4209 a SDict begin H.S end 830 4209 a Fx(24.36.1)14 b(Detailed)20 b(Description)1787 4209 y SDict begin 12 H.L end 1787 4209 a 1787 4209 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.36.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4209 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(125)p 0 0 1 TeXcolorrgb 830 4309 a SDict begin H.S end 830 4309 a Fx(24.36.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4309 y SDict begin 12 H.L end 2480 4309 a 2480 4309 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.36.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4309 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(125)p 0 0 1 TeXcolorrgb 639 4408 a SDict begin H.S end 639 4408 a Fx(24.37)r (CC\002ts::ImageExt)p Fu(<)20 b Fx(T)g Fu(>)g Fx(Class)i(T)-6 b(emplate)20 b(Reference)2521 4408 y SDict begin 12 H.L end 2521 4408 a 2521 4408 a SDict begin [ /Subtype /Link /Dest (subsection.24.37) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2521 4408 a 0 TeXcolorgray 69 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.) g(.)g(.)h(.)82 b(126)p 0 0 1 TeXcolorrgb 830 4508 a SDict begin H.S end 830 4508 a Fx(24.37.1)14 b(Detailed)20 b(Description)1787 4508 y SDict begin 12 H.L end 1787 4508 a 1787 4508 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.37.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4508 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(126)p 0 0 1 TeXcolorrgb 830 4608 a SDict begin H.S end 830 4608 a Fx(24.37.2)14 b(Member)19 b(Function)g (Documentation)2229 4608 y SDict begin 12 H.L end 2229 4608 a 2229 4608 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.37.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 4608 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)g(.)h(.)82 b(127)p 0 0 1 TeXcolorrgb 639 4707 a SDict begin H.S end 639 4707 a Fx(24.38)r(CC\002ts::K)n(e)o(yw)o(ord)20 b(Class)i(Reference)1953 4707 y SDict begin 12 H.L end 1953 4707 a 1953 4707 a SDict begin [ /Subtype /Link /Dest (subsection.24.38) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1953 4707 a 0 TeXcolorgray 77 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(128)p 0 0 1 TeXcolorrgb 830 4807 a SDict begin H.S end 830 4807 a Fx(24.38.1)14 b(Detailed)20 b(Description)1787 4807 y SDict begin 12 H.L end 1787 4807 a 1787 4807 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.38.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 4807 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(129)p 0 0 1 TeXcolorrgb 830 4907 a SDict begin H.S end 830 4907 a Fx(24.38.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 4907 y SDict begin 12 H.L end 2480 4907 a 2480 4907 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.38.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 4907 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(129)p 0 0 1 TeXcolorrgb 830 5006 a SDict begin H.S end 830 5006 a Fx(24.38.3)14 b(Member)19 b(Function)g(Documentation)2229 5006 y SDict begin 12 H.L end 2229 5006 a 2229 5006 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.38.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 5006 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(130)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 1 6 TeXDict begin 1 5 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 0 a SDict begin [ /Title () /Subject () /Creator (LaTeX with hyperref package) /Author () /Producer (dvips + Distiller) /Keywords () /DOCINFO pdfmark end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(1)20 b(CC\002ts)h (Documentation)1967 b(1)p 515 236 2865 4 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 639 523 a SDict begin H.S end 639 523 a Fx(24.39)r(CC\002ts::PHDU)22 b(Class)g(Reference)1874 523 y SDict begin 12 H.L end 1874 523 a 1874 523 a SDict begin [ /Subtype /Link /Dest (subsection.24.39) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1874 523 a 0 TeXcolorgray 31 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(131)p 0 0 1 TeXcolorrgb 830 623 a SDict begin H.S end 830 623 a Fx(24.39.1)14 b(Detailed)20 b(Description)1787 623 y SDict begin 12 H.L end 1787 623 a 1787 623 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.39.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 623 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(133)p 0 0 1 TeXcolorrgb 830 722 a SDict begin H.S end 830 722 a Fx(24.39.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 722 y SDict begin 12 H.L end 2480 722 a 2480 722 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.39.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 722 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)g(.)h(.)82 b(133)p 0 0 1 TeXcolorrgb 830 822 a SDict begin H.S end 830 822 a Fx(24.39.3)14 b(Member)19 b(Function)g(Documentation) 2229 822 y SDict begin 12 H.L end 2229 822 a 2229 822 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.39.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 822 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(134)p 0 0 1 TeXcolorrgb 639 922 a SDict begin H.S end 639 922 a Fx(24.40)r(CC\002ts::T)-7 b(able)22 b(Class)f(Reference)1830 922 y SDict begin 12 H.L end 1830 922 a 1830 922 a SDict begin [ /Subtype /Link /Dest (subsection.24.40) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1830 922 a 0 TeXcolorgray 75 w Fx(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(138)p 0 0 1 TeXcolorrgb 830 1021 a SDict begin H.S end 830 1021 a Fx(24.40.1)14 b(Detailed)20 b(Description)1787 1021 y SDict begin 12 H.L end 1787 1021 a 1787 1021 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.40.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1021 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(139)p 0 0 1 TeXcolorrgb 830 1121 a SDict begin H.S end 830 1121 a Fx(24.40.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 1121 y SDict begin 12 H.L end 2480 1121 a 2480 1121 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.40.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 1121 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(140)p 0 0 1 TeXcolorrgb 830 1220 a SDict begin H.S end 830 1220 a Fx(24.40.3)14 b(Member)19 b(Function)g(Documentation)2229 1220 y SDict begin 12 H.L end 2229 1220 a 2229 1220 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.40.3) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2229 1220 a 0 TeXcolorgray 50 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(140)p 0 0 1 TeXcolorrgb 639 1320 a SDict begin H.S end 639 1320 a Fx(24.41)r(CC\002ts::T) -7 b(able::NoSuchColumn)19 b(Class)j(Reference)2412 1320 y SDict begin 12 H.L end 2412 1320 a 2412 1320 a SDict begin [ /Subtype /Link /Dest (subsection.24.41) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2412 1320 a 0 TeXcolorgray 54 w Fx(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(144)p 0 0 1 TeXcolorrgb 830 1420 a SDict begin H.S end 830 1420 a Fx(24.41.1)14 b(Detailed)20 b(Description)1787 1420 y SDict begin 12 H.L end 1787 1420 a 1787 1420 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.41.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 1787 1420 a 0 TeXcolorgray 56 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(144)p 0 0 1 TeXcolorrgb 830 1519 a SDict begin H.S end 830 1519 a Fx(24.41.2)14 b(Constructor)19 b(&)h(Destructor)f(Documentation)2480 1519 y SDict begin 12 H.L end 2480 1519 a 2480 1519 a SDict begin [ /Subtype /Link /Dest (subsubsection.24.41.2) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end 2480 1519 a 0 TeXcolorgray 48 w Fx(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)82 b(144)515 1651 y SDict begin H.S end 515 1651 a 515 1651 a SDict begin 12 H.A end 515 1651 a 515 1651 a SDict begin [ /View [/XYZ H.V] /Dest (section.1) cvn H.B /DEST pdfmark end 515 1651 a 0.25 TeXcolorgray 196 x Fs(1)107 b(CC\002ts)25 b(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2080 a SDict begin H.S end 515 2080 a 0 TeXcolorgray 0 TeXcolorgray 515 2080 a SDict begin H.R end 515 2080 a 515 2080 a SDict begin [ /View [/XYZ H.V] /Dest (index) cvn H.B /DEST pdfmark end 515 2080 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 1512 2294 a SDict begin H.S end 1512 2294 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1724 2237 a SDict begin H.R end 1724 2237 a 1724 2293 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1724 2293 a 0 TeXcolorgray 21 w Fx(requires)p 0 1 0 0 TeXcolorcmyk 2033 2294 a SDict begin H.S end 2033 2294 a 0 1 0 0 TeXcolorcmyk -1 x Fr(CFITSIO)p 0 1 0 0 TeXcolorcmyk 2382 2243 a SDict begin H.R end 2382 2243 a 2382 2293 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html) >> /Subtype /Link H.B /ANN pdfmark end 2382 2293 a 0 TeXcolorgray 0 TeXcolorgray 515 2506 a SDict begin H.S end 515 2506 a 0 TeXcolorgray 0 TeXcolorgray 515 2506 a SDict begin H.R end 515 2506 a 515 2506 a SDict begin [ /View [/XYZ H.V] /Dest (index_intro) cvn H.B /DEST pdfmark end 515 2506 a 0 TeXcolorgray 515 2628 a SDict begin H.S end 515 2628 a 515 2628 a SDict begin 12 H.A end 515 2628 a 515 2628 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.1) cvn H.B /DEST pdfmark end 515 2628 a 0.25 TeXcolorgray 163 x Fq(1.1)90 b(Intr)o(oduction)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2995 a SDict begin H.S end 515 2995 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 2938 a SDict begin H.R end 727 2938 a 727 2994 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 2994 a 0 TeXcolorgray 32 w Fx(is)32 b(an)g(object)e(oriented)g(interf)o(ace)h(to)h(the)f (c\002tsio)h(library)-5 b(.)57 b(c\002tsio)32 b(is)g(a)g(widely)f(used) 515 3094 y(library)e(for)g(manipulating)f(FITS)i(\(Fle)o(xible)f(Image) g(T)m(ransport)f(System\))i(formatted)e(\002les.)55 b(-)515 3193 y(This)22 b(follo)n(wing)e(documentation)e(assumes)k(prior)f(kno)n (wledge)e(of)j(the)f(FITS)h(format)f(and)g(some)515 3293 y(kno)n(wledge)h(of)h(the)i(use)f(of)g(the)g(c\002tsio)h(library)-5 b(,)23 b(which)h(is)h(in)f(wide)g(use,)h(well)g(de)n(v)o(eloped,)d(and) 515 3392 y(a)n(v)n(ailable)d(on)h(man)o(y)f(platforms.)515 3539 y(Readers)f(unf)o(amiliar)e(with)j(FITS)f(b)n(ut)g(in)g(need)g(of) g(performing)d(I/O)j(with)g(FITS)h(data)f(sets)h(are)f(di-)515 3639 y(rected)c(to)i(the)f(\002rst)h(c\002tsio)g(manual,)f(a)n(v)n (ailable)f(at)i Ft(http://heasar)m(c.gsfc.nasa.go)o(v/docs/softwar)m (e/\002tsio/\002)o(tsio.h)o(tml)515 3739 y Fx(Information)32 b(about)j(the)h(FITS)f(\002le)i(format)d(and)h(the)g(current)g (standard)f(is)j(a)n(v)n(ailable)e(from)515 3838 y Ft (http://\002ts.gsfc.nasa.go)o(v)515 3985 y Fx(The)p 0 0 1 TeXcolorrgb 663 3986 a SDict begin H.S end 663 3986 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 875 3929 a SDict begin H.R end 875 3929 a 875 3985 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 875 3985 a 0 TeXcolorgray 19 w Fx(library)17 b(pro)o(vides)f(an)i(interf)o(ace)g(that)g(allo)n(ws)h(the)f(user)g(to) g(manipulate)f(FITS)i(format)515 4085 y(data)i(through)f(the)h(high-le) n(v)o(el)f(b)n(uilding)g(blocks)h(of)g(FITS)h(\002les)g(and)f(Header)n (-Data)g(Units)h(\(HD-)515 4184 y(Us\).)32 b(The)23 b(implementation)d (is)k(designed)d(to)i(hide)f(the)h(details)g(of)f(performing)e(FITS)j (I/O)g(from)515 4284 y(the)i(user)m(,)i(who)e(will)h(write)g(calls)h (that)e(manipulate)g(FITS)h(objects)f(by)g(passing)h(\002lenames)f(and) 515 4384 y(lists)g(of)f(strings)g(that)g(represent)f(HDUs,)j(k)o(e)o (yw)o(ords,)d(image)h(data)g(and)f(data)h(columns.)36 b(Unlik)o(e)515 4483 y(c\002tsio,)31 b(which)e(typically)f(requires)h (se)n(v)o(eral)f(calls)i(to)f(access)h(data)f Ft(\(e)o(.g)o(.)51 b(open)28 b(\002le)o(,)j(mo)o(ve)e(to)515 4583 y(corr)m(ect)21 b(header)-9 b(,)19 b(determine)h(column)f(containing)g(table)h(data,)f (r)m(ead)i(data\))p 0 0 1 TeXcolorrgb 2774 4584 a SDict begin H.S end 2774 4584 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2986 4527 a SDict begin H.R end 2986 4527 a 2986 4583 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2986 4583 a 0 TeXcolorgray 21 w Fx(is)h(designed)515 4682 y(to)g(mak)o(e)h(reading)e(data)h (atomic.)31 b(F)o(or)23 b(e)o(xample,)e(it)i(e)o(xploits)f(internally)f (e)o(xisting)h(optimization)515 4782 y(techniques)27 b(for)g(FITS)h(I/O,)h(choosing)d(the)i(optimal)g(reading)e(strate)o(gy) i(as)g(a)n(v)n(ailable)g([see)h(the)515 4882 y(c\002tsio)18 b(manual,)g(Chapter)f(13])g(when)h(data)g(are)g(read)g(on)f (initialization.)24 b(Data)18 b(written)g(by)p 0 0 1 TeXcolorrgb 3167 4883 a SDict begin H.S end 3167 4883 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 3379 4825 a SDict begin H.R end 3379 4825 a 3379 4882 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3379 4882 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 2 7 TeXDict begin 2 6 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(1.2)82 b(About)20 b(this)h(Manual)1966 b(2)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(will)29 b(also)g(be)g(compliant)e(with)i(the)g(FITS)g(standard)e(by)h (speci\002cation)g(of)h(class)g(constructors)515 623 y(representing)18 b(FITS)i(dataset)h(elements.)p 0 0 1 TeXcolorrgb 515 771 a SDict begin H.S end 515 771 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 713 a SDict begin H.R end 727 713 a 727 770 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 770 a 0 TeXcolorgray 29 w Fx(necessarily)28 b(w)o(orks)g(in)g(a)h(fundamentally)c(dif)n(ferent)i(w)o(ay)h(than)g (c\002tsio.)50 b(The)28 b(general)515 869 y(pattern)c(of)h(usage)g(for) p 0 0 1 TeXcolorrgb 1203 870 a SDict begin H.S end 1203 870 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1415 813 a SDict begin H.R end 1415 813 a 1415 869 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1415 869 a 0 TeXcolorgray 26 w Fx(is:)36 b(create)25 b(a)h(FITS)f(object,)h(which)e(either)h(opens)f(a)i(disk)f (\002le)h(or)515 969 y(creates)20 b(a)g(ne)n(w)g(disk)h(\002le,)f (create)g(references)f(to)h(e)o(xisting)f(or)h(ne)n(w)g(HDU)h(objects)f (within)f(it,)i(and)515 1068 y(manipulated)g(the)h(data)h(through)d (the)j(references.)31 b(F)o(or)23 b(\002les)h(with)f(Write)g(access)g (the)g(library)f(is)515 1168 y(designed)16 b(to)h(k)o(eep)f(the)i(FITS) f(object)g(on)f(disk)h(in)h(sync)f(with)g(the)g(memory)e(cop)o(y)-5 b(.)23 b(The)17 b(additional)515 1268 y(memory)h(cop)o(y)h(increases)h (the)h(resources)e(required)f(by)i(a)g(calling)g(program)e(in)i(return) f(for)h(some)515 1367 y(\003e)o(xibility)f(in)i(accessing)e(the)i (data.)p 0 TeXcolorgray 1564 1367 a SDict begin H.S end 1564 1367 a 0 TeXcolorgray 0 TeXcolorgray 1564 1367 a SDict begin H.R end 1564 1367 a 1564 1367 a SDict begin [ /View [/XYZ H.V] /Dest (index_about) cvn H.B /DEST pdfmark end 1564 1367 a 0 TeXcolorgray 515 1506 a SDict begin H.S end 515 1506 a 515 1506 a SDict begin 12 H.A end 515 1506 a 515 1506 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.2) cvn H.B /DEST pdfmark end 515 1506 a 0.25 TeXcolorgray 145 x Fq(1.2)90 b(About)20 b(this)i(Man)o(ual)p 0 TeXcolorgray 515 1854 a Fx(This)e(document)e(lays)j(out)f(the)g(speci\002cation)f (for)h(the)p 0 0 1 TeXcolorrgb 2115 1855 a SDict begin H.S end 2115 1855 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2327 1798 a SDict begin H.R end 2327 1798 a 2327 1854 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2327 1854 a 0 TeXcolorgray 21 w Fx(library)-5 b(.)515 2001 y(The)21 b(ne)o(xt)f(sections)i (document)d(the)i(installation)g(procedure)e(and)i(the)g(demonstration) e(program)515 2101 y Ft(cookbook)f Fx(which)h(gi)n(v)o(es)h(e)o (xamples)f(of)h(usage)g(with)g(comments.)515 2248 y(F)o(ollo)n(wing)e (sections)i(gi)n(v)o(e)g(a)g(list)h(of)f(what)g(is)h(implemented)d(in)i (CC\002ts)i(compared)c(to)i(the)g(c\002tsio)515 2347 y(library)-5 b(.)42 b(F)o(or)26 b(background)d(information)i(and)h(as)h (an)f(e)o(xample)f(there)h(is)i(a)f(section)f(describing)515 2447 y(ho)n(w)c(CC\002ts)k(is)e(to)f(be)g(used)g(in)h(XSPEC,)g(for)e (which)h(it)h(w)o(as)g(originally)e(designed,)g(which)h(may)515 2546 y(serv)o(e)c(to)i(gi)n(v)o(e)e(the)h(reader)g(some)g(insight)f (into)h(the)g(design)g(decisions)g(made.)p 0 TeXcolorgray 515 2693 a SDict begin H.S end 515 2693 a 0 TeXcolorgray 0 TeXcolorgray 515 2693 a SDict begin H.R end 515 2693 a 515 2693 a SDict begin [ /View [/XYZ H.V] /Dest (index_rel1) cvn H.B /DEST pdfmark end 515 2693 a 0 TeXcolorgray 515 2814 a SDict begin H.S end 515 2814 a 515 2814 a SDict begin 12 H.A end 515 2814 a 515 2814 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.3) cvn H.B /DEST pdfmark end 515 2814 a 0.25 TeXcolorgray 163 x Fq(1.3)90 b(Release)20 b(Notes)h(f)o(or)f(V)l(er)o(sion)g(2.4)h(Dec)f(2011)p 0 TeXcolorgray 515 3180 a Fx(Fix)o(es:)p 0 TeXcolorgray 652 3389 a(\225)p 0 TeXcolorgray 41 w(Compressed)d(images)g(may)g(no)n (w)f(be)i(written)f(with)g(BITPIX=32.)23 b(This)18 b(\002x)f(w)o(as)h (made)f(by)722 3489 y(internally)23 b(storing)h(the)g(image)f(array)h (as)g(int)h(types)f(rather)f(than)h(longs)f(\(see)i(backw)o(ards)722 3589 y(compatibility)19 b(issues\).)p 0 TeXcolorgray 652 3753 a(\225)p 0 TeXcolorgray 41 w(F)o(or)k(v)n(ariable-width)e (columns,)i(the)g(write)h(functions)d(no)n(w)i(allo)n(w)g(all)h(of)f (the)h(same)f(type)722 3852 y(con)m(v)o(ersions)18 b(as)j(had)f(been)f (w)o(orking)g(with)h(\002x)o(ed-width)e(columns.)p 0 TeXcolorgray 652 4016 a(\225)p 0 TeXcolorgray 41 w(The)23 b(null-v)n(alue)f(v)o(ersions)g(of)h(the)h(primary)e(and)g(e)o (xtension)g(image)h(write)h(functions)e(are)722 4116 y(no)n(w)e(w)o(orking.)p 0 TeXcolorgray 652 4280 a(\225)p 0 TeXcolorgray 41 w(The)h(basic)h(FITS)g(constructor)d(can)j(no)n(w)f (handle)f(\002les)i(containing)e(multiple)h(e)o(xtensions)722 4379 y(which)26 b(ha)n(v)o(e)g(the)h(same)g(name)f(AND)h(v)o(ersion)e (number)-5 b(.)43 b(\(Note)27 b(that)f(this)h(is)h(still)g(not)e(a)722 4479 y(recommended)17 b(\002le)k(structure.\))p 0 TeXcolorgray 652 4643 a(\225)p 0 TeXcolorgray 41 w(BinT)-7 b(able')i(s)22 b(addColumn)e(function)f(no)n(w)i(automatically)g(\002rst)h(mak)o(es)f (itself)h(the)g(current)722 4743 y(e)o(xtension)d(so)i(that)f(the)g (user)g(doesn')o(t)f(ha)n(v)o(e)g(to)i(call)f(ExtHDU::mak)o (eThisCurrent\(\).)p 0 TeXcolorgray 652 4907 a(\225)p 0 TeXcolorgray 41 w(Bug)i(\002x)g(to)f(T)-7 b(able')i(s)22 b(deleteRo)n(ws)g(function.)27 b(This)22 b(error)e(had)h(been)g(pre)n (v)o(enting)e(the)i(out-)722 5006 y(put)16 b(stream)f(operator)f(from)h (w)o(orking)f(on)i(v)o(ector)e(columns)h(after)g(ro)n(ws)h(had)f(been)g (deleted.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)g(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 3 8 TeXDict begin 3 7 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(1.4)82 b(Release)20 b(Notes)g(F)n(or)f(V)-8 b(ersion)21 b(2.3)e(No)o(v)h(2010)1236 b(3)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(Backw)o(ards)20 b(Compatibility)f(Issue:)p 0 TeXcolorgray 652 736 a(\225)p 0 TeXcolorgray 41 w(F)o(or)30 b(images)g(of)g(BITPIX=32,)p 0 0 1 TeXcolorrgb 1684 737 a SDict begin H.S end 1684 737 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1896 680 a SDict begin H.R end 1896 680 a 1896 736 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1896 736 a 0 TeXcolorgray 31 w Fx(no)n(w)g(stores)g (the)g(v)n(alues)g(in)g(a)h(v)n(alarray)d(of)i(ints)722 836 y(rather)23 b(than)f(longs.)34 b(This)23 b(af)n(fects)g(the)h (public)e(interf)o(ace)g(in)i(one)f(place:)31 b(the)23 b(return)f(type)722 936 y(of)e(the)g(ImageExt)p Fu(<)p Fx(T)p Fu(>)p Fx(::image\(\))c(function.)p 0 TeXcolorgray 515 1149 a SDict begin H.S end 515 1149 a 0 TeXcolorgray 0 TeXcolorgray 515 1149 a SDict begin H.R end 515 1149 a 515 1149 a SDict begin [ /View [/XYZ H.V] /Dest (index_rel2) cvn H.B /DEST pdfmark end 515 1149 a 0 TeXcolorgray 515 1270 a SDict begin H.S end 515 1270 a 515 1270 a SDict begin 12 H.A end 515 1270 a 515 1270 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.4) cvn H.B /DEST pdfmark end 515 1270 a 0.25 TeXcolorgray 164 x Fq(1.4)90 b(Release)20 b(Notes)h(For)f(V)l(er)o(sion)g(2.3)h(No)o(v)f(2010)p 0 TeXcolorgray 515 1637 a Fx(Enhancements)e(to)p 0 0 1 TeXcolorrgb 1105 1638 a SDict begin H.S end 1105 1638 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1317 1580 a SDict begin H.R end 1317 1580 a 1317 1637 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1317 1637 a 0 TeXcolorgray Fx(:)p 0 TeXcolorgray 652 1850 a(\225)p 0 TeXcolorgray 41 w(3)25 b(pre)n(viously)d(protected)h(functions)g(are)h(no)n(w)g(made)g (public:)32 b(K)n(e)o(yw)o(ord::k)o(e)o(ytype\(\),)21 b(P-)722 1950 y(HDU::simple\(\),)e(and)h(PHDU::e)o(xtend\(\).)p 0 TeXcolorgray 652 2116 a(\225)p 0 TeXcolorgray 41 w(Ne)n(w)h (function:)i(ExtHDU::isCompressed\(\).)p 0 TeXcolorgray 652 2282 a(\225)p 0 TeXcolorgray 41 w(Uses)17 b(less)g(memory)d(during) h(the)h(image)f(loading)g(operations)f(for)h(primary)g(and)g(e)o (xtension)722 2381 y(HDUs.)p 0 TeXcolorgray 652 2547 a(\225)p 0 TeXcolorgray 41 w(When)29 b(the)h(basic)f(v)o(ersion)f(of)h (the)g(FITS)g(constructor)f(is)i(called)f(in)g(Write)h(mode)e(on)h(a) 722 2647 y(pre-e)o(xisting)23 b(\002le,)j(it)f(will)g(no)n(w)f (automatically)f(read)h(ALL)g(of)g(the)h(headers)e(rather)h(than)722 2747 y(just)18 b(the)f(primary)-5 b(.)22 b(This)17 b(mak)o(es)g(it)h (conform)d(more)i(closely)g(to)g(the)g(Read)h(mode)e(beha)n(vior)m(,) 722 2846 y(and)22 b(it)h(mak)o(es)f(things)g(easier)h(when)f(trying)f (to)i(append)d(ne)n(w)j(HDUs)g(to)f(\002les)h(containing)722 2946 y(an)d(unkno)n(wn)e(number)g(of)i(e)o(xisting)g(HDUs.)25 b(\(See)c(Backw)o(ards)f(Compatibility\))515 3159 y(Bug)g(Fix)o(es:)p 0 TeXcolorgray 652 3372 a(\225)p 0 TeXcolorgray 41 w(In)28 b(the)h(2)f(FITS)h(class)g(deleteExtension)e(functions,)h(the)h(inde)o (x)e(numbers)g(of)h(all)h(HDU)722 3472 y(objects)22 b(which)g(follo)n (w)f(the)h(deleted)f(are)h(no)n(w)g(decremented)d(by)j(one.)30 b(\(See)22 b(Backw)o(ards)722 3572 y(Compatibility\))p 0 TeXcolorgray 652 3738 a(\225)p 0 TeXcolorgray 41 w(Fix)17 b(to)g(the)f(PHDU)h(write)g(functions)e(which)h(tak)o(e)h(a)g(nullV)-9 b(alue)15 b(ar)o(gument.)21 b(Neither)c(could)722 3837 y(be)j(instantiated)g(due)g(to)g(an)g(in)m(v)n(alid)f(static_cast)i(of) f(pointers.)p 0 TeXcolorgray 652 4003 a(\225)p 0 TeXcolorgray 41 w(Fix)k(needed)f(for)f(the)i(FITS::cop)o(y)f(function)f(to)h(allo)n (w)h(the)g(Columns)f(in)g(the)h(ne)n(wly)f(cre-)722 4103 y(ated)d(HDU)h(to)f(be)g(modi\002able.)p 0 TeXcolorgray 652 4269 a(\225)p 0 TeXcolorgray 41 w(The)27 b(basic)g(v)o(ersion)f(of) g(the)h(FITS)g(constructor)m(,)g(when)f(in)h(Write)g(mode,)h(w)o(as)g (ignoring)722 4369 y(the)20 b(user')-5 b(s)21 b(readDataFlag)e(and)h (optional)e(primary)h(k)o(e)o(ys)h(input.)p 0 TeXcolorgray 652 4535 a(\225)p 0 TeXcolorgray 41 w(An)k(error)f(in)h(the)g(\(seldom) f(instantiated\))g(Image)g(class)h(assignment)g(operator)e(w)o(as)i (pre-)722 4634 y(v)o(enting)19 b(compilation)f(with)j(the)f(n)m(vcc)f (compiler)-5 b(.)p 0 TeXcolorgray 652 4800 a(\225)p 0 TeXcolorgray 41 w(On)16 b(64-bit)e(Linux)g(only)-5 b(,)15 b(a)h(bad)f(cast)h(error)f(is)h(triggered)e(when)h(trying)f(to)i(read)f (an)g(image)g(of)722 4900 y(type)22 b(signed)g(or)g(unsigned)f(long,)h (into)g(a)h(v)n(alarray)e(with)i(the)f(opposite)f(signed/unsigned)722 5000 y(quali\002er)-5 b(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 4 9 TeXDict begin 4 8 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(1.5)82 b(Release)20 b(Notes)g(F)n(or)f(V)-8 b(ersion)21 b(2.2)e(Sep)i(2009)1249 b(4)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(All)22 b(of)g(the)f(FITS::read)g(functions)f(no)n (w)h(perform)e(a)j(check)f(to)g(pre)n(v)o(ent)f(multiple)h(entries)722 623 y(of)f(the)g(same)h(HDU)f(from)g(appearing)e(in)i(the)g(FITS::e)o (xtension\(\))e(multimap.)p 0 TeXcolorgray 652 789 a(\225)p 0 TeXcolorgray 41 w(F)o(or)k(case)h(of)f(Columns)g(of)g(type)g (unsigned)f(longs,)h(the)g(object')-5 b(s)22 b(lo)n(wer)g(data)g(limit) h(v)n(alue)722 888 y(w)o(as)e(left)g(unitialized.)515 1102 y(Backw)o(ards)f(Compatibility)f(Issues:)p 0 TeXcolorgray 652 1315 a(\225)p 0 TeXcolorgray 41 w(If)f(you')l(re)e(calling)i (either)f(FITS::deleteExtension)f(function)h(AND)h(you)f(ha)n(v)o(e)g (sa)n(v)o(ed)h(ref-)722 1415 y(erences)i(to)h(an)o(y)f(of)g(the)g (ExtHDU)g(objects)h(which)f(follo)n(w)f(the)i(deleted)f(object,)f(note) h(that)722 1514 y(those)f(ExtHDUs)g(will)g(no)n(w)g(ha)n(v)o(e)f(an)h (inde)o(x)e(number)g(1)i(less)h(than)f(before.)k(Their)18 b(indices)722 1614 y(will)j(no)n(w)f(correctly)f(match)g(what')-5 b(s)21 b(actually)e(in)i(the)f(FITS)g(\002le.)p 0 TeXcolorgray 652 1780 a(\225)p 0 TeXcolorgray 41 w(When)25 b(using)f(the)h(basic)g (v)o(ersion)f(of)h(the)g(FITS)g(constructor)e(in)i(Write)h(mode)d(on)i (a)g(pre-)722 1879 y(e)o(xisting)31 b(\002le,)k(you)c(no)g(longer)f (need)h(to)h(\002rst)g(call)g(FITS::read)f(to)g(access)i(an)o(y)d(of)i (the)722 1979 y(ExtHDUs.)38 b(These)24 b(are)h(no)n(w)e(read)h (automatically)-5 b(,)24 b(same)g(as)h(when)f(this)h(constructor)e(is) 722 2079 y(called)f(in)g(Read)g(mode.)28 b(Ho)n(we)n(v)o(er)21 b(this)h(change)e(shouldn')o(t)g(require)g(the)i(remo)o(v)n(al)e(of)i (the)722 2178 y(FITS::read)e(calls)h(from)e(your)g(code.)24 b(The)o(y)19 b(will)i(merely)e(be)i(redundant)c(if)k(left)f(in.)p 0 TeXcolorgray 515 2392 a SDict begin H.S end 515 2392 a 0 TeXcolorgray 0 TeXcolorgray 515 2392 a SDict begin H.R end 515 2392 a 515 2392 a SDict begin [ /View [/XYZ H.V] /Dest (index_rel3) cvn H.B /DEST pdfmark end 515 2392 a 0 TeXcolorgray 515 2513 a SDict begin H.S end 515 2513 a 515 2513 a SDict begin 12 H.A end 515 2513 a 515 2513 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.5) cvn H.B /DEST pdfmark end 515 2513 a 0.25 TeXcolorgray 164 x Fq(1.5)90 b(Release)20 b(Notes)h(For)f(V)l(er)o(sion)g(2.2)h(Sep)f (2009)p 0 TeXcolorgray 515 2879 a Fx(Enhancements)e(to)p 0 0 1 TeXcolorrgb 1105 2880 a SDict begin H.S end 1105 2880 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1317 2823 a SDict begin H.R end 1317 2823 a 1317 2879 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1317 2879 a 0 TeXcolorgray Fx(:)p 0 TeXcolorgray 652 3093 a(\225)p 0 TeXcolorgray 41 w(Added)h(an)i (auto-generated)c(pkg-con\002g)g(\002le)k(to)f(the)g(stand-alone)f (distrib)n(ution.)p 0 TeXcolorgray 652 3259 a(\225)p 0 TeXcolorgray 41 w(Added)c(an)g(option)f(for)h(case-insensiti)n(v)o(e) g(searching)f(in)h(the)h(ExtHDU)f(and)g(T)-7 b(able)15 b(Column)722 3358 y(get-by-name)j(functions.)p 0 TeXcolorgray 652 3524 a(\225)p 0 TeXcolorgray 41 w(The)23 b(public)g(functions)e (column\(\))g(and)i(numCols\(\))f(ha)n(v)o(e)h(been)f(added)g(to)i(the) f(ExtHDU)722 3624 y(interf)o(ace.)h(The)o(y)19 b(were)i(pre)n(viously)d (a)n(v)n(ailable)h(only)h(in)g(the)g(deri)n(v)o(ed)f(T)-7 b(able)20 b(class.)p 0 TeXcolorgray 652 3790 a(\225)p 0 TeXcolorgray 41 w(Ne)n(w)h(resetRead)f(and)f(getNullV)-9 b(alue)19 b(functions)g(for)h(Column)f(class.)p 0 TeXcolorgray 652 3956 a(\225)p 0 TeXcolorgray 41 w(Impro)o(v)o(ed)14 b(the)j(documentation)d(for)i(the)h(nullV)-9 b(alue)16 b(v)o(ersions)g(of)g(the)h(Column)f(read/write)722 4056 y(member)j(functions.)515 4269 y(Bug)h(Fix)o(es:)p 0 TeXcolorgray 652 4482 a(\225)p 0 TeXcolorgray 41 w(Con)m(v)o(erted)25 b(non-standard)g(calls)j(to)f(v)o(ector)f(and)h(v)n(alarray)e(end)i (iterators.)46 b(These)27 b(were)722 4582 y(causing)20 b(runtime)f(e)o(xceptions)f(when)i(b)n(uilt)g(with)h(Microsoft)e(V)-5 b(isual)20 b(C++)h(v9.0.)p 0 TeXcolorgray 652 4748 a(\225)p 0 TeXcolorgray 41 w(The)27 b(Column)f(addNullV)-9 b(alue)24 b(function)i(no)n(w)g(w)o(orks)g(for)g(cases)i(where)e(the)h(null)f(v)n (alue)722 4848 y(ar)o(gument)18 b(is)i(of)g(a)g(type)f(that)h(requires) f(casting)g(to)h(match)f(the)h(type)f(of)h(data)f(stored)h(in)g(the)722 4947 y(Column.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 5 10 TeXDict begin 5 9 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(1.6)82 b(A)l(uthors)20 b(and)g(Ackno)o(wledgements)1487 b(5)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(Fix)29 b(to)g(the)g(Column)f (writeArrays)f(function)g(for)h(the)h(case)g(where)f(v)n(alarrays)g(of) g(v)n(ary-)722 623 y(ing)23 b(length)f(were)h(sent)g(to)g(\002x)o (ed-width)e(columns.)32 b(It)24 b(w)o(as)f(pre)n(viously)e(sending)h (along)g(a)722 722 y(def)o(ault)e(null)g(v)n(alue)f(e)n(v)o(en)g(when)h (the)g(user)g(did)g(not)g(request)f(one.)p 0 TeXcolorgray 652 888 a(\225)p 0 TeXcolorgray 41 w(Fix)e(for)g(reading)e(and)h (writing)g(comple)o(x)f(data)i(types)g(to)g(scalar)g(columns.)22 b(The)17 b(\002rst)g("\002rst-)722 988 y(Ro)n(w")k(comple)o(x)d(v)n (alues)i(were)g(not)g(being)f(written)h(or)g(read.)p 0 TeXcolorgray 652 1154 a(\225)p 0 TeXcolorgray 41 w(Renamed)k(pri)n(v) n(ate)g(FITS::e)o(xtension\(\))e(function)h(to)h(e)o(xtensionMap\(\).) 35 b(This)25 b(is)h(to)e(pre-)722 1254 y(v)o(ent)f(user)h(from)f(ha)n (ving)g(to)h(e)o(xplicitly)e(declare)h(a)i(const)e(FITS)h(pointer)f(in) h(order)e(to)i(use)722 1353 y(the)c(public)g(const)g(FITS::e)o (xtension)p Fp(\003)p Fx(\(\))d(function.)515 1567 y(Backw)o(ards)j (Compatibility)f(Issue:)p 0 TeXcolorgray 652 1780 a(\225)p 0 TeXcolorgray 41 w(T)-7 b(o)28 b(pre)n(v)o(ent)f(o)o(v)o(erloading)d (ambiguity)j(resulting)g(from)g(the)h(ne)n(w)g(\003ag)g(added)f(to)h (ExtH-)722 1879 y(DU/T)-7 b(able)21 b(get-by-name)e(Column)h(functions) g(for)g(case-insensiti)n(v)o(e)h(searches,)f(the)i(pro-)722 1979 y(tected)30 b(column\(string,Column)p Fp(\003)p Fx(\))25 b(function)j(has)i(been)f(renamed)f(to)i(setColumn.)54 b(As)722 2079 y(this)17 b(is)g(a)f(protected)e(function,)h(the)h (change)e(should)h(not)h(af)n(fect)f(standard)g(usage)g(of)p 0 0 1 TeXcolorrgb 3146 2080 a SDict begin H.S end 3146 2080 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 3358 2022 a SDict begin H.R end 3358 2022 a 3358 2079 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3358 2079 a 0 TeXcolorgray Fx(.)515 2292 y(F)o(or)20 b(a)h(more)f(complete)g(listing,)g(see)i(the)e (CHANGES)h(\002le)h(distrib)n(uted)d(with)i(the)g(softw)o(are.)26 b(F)o(or)515 2392 y(earlier)20 b(v)o(ersions,)f(see)p 0 0 1 TeXcolorrgb 1191 2393 a SDict begin H.S end 1191 2393 a 0 0 1 TeXcolorrgb -1 x Fx(Pre)n(vious)h(Release)g(Notes)p 0 0 1 TeXcolorrgb 1973 2335 a SDict begin H.R end 1973 2335 a 1973 2392 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (releases) cvn H.B /ANN pdfmark end 1973 2392 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 1994 2392 a SDict begin H.S end 1994 2392 a 0 TeXcolorgray 0 TeXcolorgray 1994 2392 a SDict begin H.R end 1994 2392 a 1994 2392 a SDict begin [ /View [/XYZ H.V] /Dest (index_ack) cvn H.B /DEST pdfmark end 1994 2392 a 0 TeXcolorgray 515 2525 a SDict begin H.S end 515 2525 a 515 2525 a SDict begin 12 H.A end 515 2525 a 515 2525 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.1.6) cvn H.B /DEST pdfmark end 515 2525 a 0.25 TeXcolorgray 152 x Fq(1.6)90 b(A)n(uthor)o(s)20 b(and)g(Ac)o(kno)o(wledg)q(ements)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2880 a SDict begin H.S end 515 2880 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 2823 a SDict begin H.R end 727 2823 a 727 2879 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 2879 a 0 TeXcolorgray 25 w Fx(w)o(as)26 b(written)e(as)i(part)e(of)h(a)g(re-engineering)c(ef) n(fort)j(for)g(the)h(X-Ray)f(data)h(analysis)g(pro-)515 2979 y(gram,)f(XSPEC.)g(It)h(w)o(as)g(designed)d(using)i(Rational)g (Rose)g(and)g(originally)e(implemented)h(on)g(a)515 3079 y(Solaris)g(platform)e(by)i(Ben)g(Dorman)f(to)h(whom)f(blame)h(should)f (be)g(attached.)33 b(Sandhia)22 b(Bansal)515 3178 y(w)o(ork)o(ed)14 b(on)h(part)g(of)f(the)i(implementation)d(and,)i(and)g(P)o(aul)g(K)o (unz)f(\()p 0 1 0 0 TeXcolorcmyk 2438 3191 a SDict begin H.S end 2438 3191 a 0 1 0 0 TeXcolorcmyk -13 x Fr(pfkeb@slac.stanford.edu)p 0 1 0 0 TeXcolorcmyk 3584 3125 a SDict begin H.R end 3584 3125 a 3584 3178 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (mailto:pfkeb@slac.stanford.edu) >> /Subtype /Link H.B /ANN pdfmark end 3584 3178 a 0 TeXcolorgray Fx(\))515 3278 y(wrote)26 b(the)h(con\002guration)e(scheme)h(and)h(dispensed)f(helpful)f(advice:) 39 b(both)26 b(are)h(also)g(thank)o(ed)515 3378 y(profusely)c(for)h (the)h(port)f(to)g(W)m(indo)n(ws2000/VC++.net.)36 b(Thanks)24 b(to)g(R.)i(Mathar)e(\(MPIA\))g(and)515 3477 y(P)o(atrik)c(Jonsson)g (\(Lick)h(Obs.\))26 b(for)21 b(contrib)n(uting)d(man)o(y)i(helpful)f (suggestions)h(and)g(b)n(ug)h(reports,)515 3577 y(and)e(ports)h(to)h (HP-UX)f(and)g(AIX)g(respecti)n(v)o(ely)-5 b(.)p 0 0 1 TeXcolorrgb 515 3725 a SDict begin H.S end 515 3725 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 3667 a SDict begin H.R end 727 3667 a 727 3724 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 3724 a 0 TeXcolorgray 16 w Fx(is)16 b(currently)d(maintained)h(by)h(Craig)g(Gordon)f(and)g(Bryan)h(Irby)f (\()p 0 1 0 0 TeXcolorcmyk 2619 3737 a SDict begin H.S end 2619 3737 a 0 1 0 0 TeXcolorcmyk -13 x Fr(ccfits@heasarc.gsfc.nasa.gov)p 0 1 0 0 TeXcolorcmyk 4013 3671 a SDict begin H.R end 4013 3671 a 4013 3724 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (mailto:ccfits@heasarc.gsfc.nasa.gov) >> /Subtype /Link H.B /ANN pdfmark end 4013 3724 a 0 TeXcolorgray Fx(\).)515 3823 y(Suggestions)24 b(and)h(b)n(ug)g(reports)g(are)h(welcome,)g(as)g(are)f(of)n(fers)g(to)h (\002ll)g(out)g(parts)f(of)h(the)f(imple-)515 3923 y(mentation)g(that)i (are)f(missing.)44 b(W)-7 b(e)28 b(are)f(also)g(interested)f(in)g(kno)n (wing)f(which)h(parts)h(of)f(c\002tsio)515 4023 y(that)20 b(are)g(not)g(currently)e(supported)h(should)g(be)h(the)g(highest)g (priority)f(for)g(future)g(e)o(xtensions.)515 4171 y SDict begin H.S end 515 4171 a 515 4171 a SDict begin 12 H.A end 515 4171 a 515 4171 a SDict begin [ /View [/XYZ H.V] /Dest (section.2) cvn H.B /DEST pdfmark end 515 4171 a 0.25 TeXcolorgray 179 x Fs(2)107 b(Installing)23 b(the)i(P)m(ac)n(ka) o(g)q(e)p 0 TeXcolorgray 0 TeXcolorgray 515 4583 a SDict begin H.S end 515 4583 a 0 TeXcolorgray 0 TeXcolorgray 515 4583 a SDict begin H.R end 515 4583 a 515 4583 a SDict begin [ /View [/XYZ H.V] /Dest (installation) cvn H.B /DEST pdfmark end 515 4583 a 0 TeXcolorgray 0 TeXcolorgray 535 4583 a SDict begin H.S end 535 4583 a 0 TeXcolorgray 0 TeXcolorgray 535 4583 a SDict begin H.R end 535 4583 a 535 4583 a SDict begin [ /View [/XYZ H.V] /Dest (installation_platform) cvn H.B /DEST pdfmark end 535 4583 a 0 TeXcolorgray 515 4704 a SDict begin H.S end 515 4704 a 515 4704 a SDict begin 12 H.A end 515 4704 a 515 4704 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.2.1) cvn H.B /DEST pdfmark end 515 4704 a 0.25 TeXcolorgray 164 x Fq(2.1)90 b(Platf)o(orms)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 0 1 TeXcolorrgb eop end %%Page: 6 11 TeXDict begin 6 10 bop 0 0 1 TeXcolorrgb 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(2.2)82 b(Building)2331 b(6)p 515 236 2865 4 v 0 0 1 TeXcolorrgb 515 524 a SDict begin H.S end 515 524 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 467 a SDict begin H.R end 727 467 a 727 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 523 a 0 TeXcolorgray 28 w Fx(is)28 b(generally)d(supported)g(on)i(the)g(same)g(platforms)f (as)p 0 1 0 0 TeXcolorcmyk 2409 524 a SDict begin H.S end 2409 524 a 0 1 0 0 TeXcolorcmyk -1 x Fr(HEASOFT)p 0 1 0 0 TeXcolorcmyk 2758 474 a SDict begin H.R end 2758 474 a 2758 523 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (http://heasarc.gsfc.nasa.gov/docs/software/lheasoft/) >> /Subtype /Link H.B /ANN pdfmark end 2758 523 a 0 TeXcolorgray Fx(,)j(and)e(on)f(W)m(indo)n(ws)515 623 y(with)20 b(VC++)h(7.0)e(or)h (later)-5 b(.)26 b(See)20 b(the)h(HEASOFT)p 0 1 0 0 TeXcolorcmyk 1974 636 a SDict begin H.S end 1974 636 a 0 1 0 0 TeXcolorcmyk -13 x Fr(supported)48 b(platforms)p 0 1 0 0 TeXcolorcmyk 2920 570 a SDict begin H.R end 2920 570 a 2920 623 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (http://heasarc.gsfc.nasa.gov/docs/software/lheasoft/supported_platforms.html) >> /Subtype /Link H.B /ANN pdfmark end 2920 623 a 0 TeXcolorgray 21 w Fx(page.)p 0 TeXcolorgray 3120 623 a SDict begin H.S end 3120 623 a 0 TeXcolorgray 0 TeXcolorgray 3120 623 a SDict begin H.R end 3120 623 a 3120 623 a SDict begin [ /View [/XYZ H.V] /Dest (installation_build) cvn H.B /DEST pdfmark end 3120 623 a 0 TeXcolorgray 515 762 a SDict begin H.S end 515 762 a 515 762 a SDict begin 12 H.A end 515 762 a 515 762 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.2.2) cvn H.B /DEST pdfmark end 515 762 a 0.25 TeXcolorgray 146 x Fq(2.2)90 b(Building)p 0 TeXcolorgray 515 1110 a Fx(T)-7 b(o)26 b(b)n(uild)g(and)g(install)p 0 0 1 TeXcolorrgb 1200 1111 a SDict begin H.S end 1200 1111 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1412 1054 a SDict begin H.R end 1412 1054 a 1412 1110 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1412 1110 a 0 TeXcolorgray 27 w Fx(from)g(source)g(code)f(on)h(a)h(UNIX-lik) o(e)f(\(e.g.)43 b(UNIX,)26 b(Linux,)h(or)515 1210 y(Cygwin\))i (platform,)j(tak)o(e)f(the)f(follo)n(wing)f(steps.)57 b(F)o(or)30 b(b)n(uilding)f(on)i(a)g(Microsoft)e(W)m(indo)n(ws)515 1310 y(platform)18 b(with)j(V)-5 b(isual)20 b(De)n(v)o(eloper)f (Studio,)g(see)i(belo)n(w)-5 b(.)p 0 TeXcolorgray 2189 1310 a SDict begin H.S end 2189 1310 a 0 TeXcolorgray 0 TeXcolorgray 2189 1310 a SDict begin H.R end 2189 1310 a 2189 1310 a SDict begin [ /View [/XYZ H.V] /Dest (installation_unix) cvn H.B /DEST pdfmark end 2189 1310 a 0 TeXcolorgray 515 1449 a SDict begin H.S end 515 1449 a 515 1449 a SDict begin 12 H.A end 515 1449 a 515 1449 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.2.2.1) cvn H.B /DEST pdfmark end 515 1449 a 0.25 TeXcolorgray 129 x Fo(2.2.1)75 b(Instructions)19 b(f)o(or)f(Building)h(CC\002ts)g(on)e(UNIX-like)h(platf)o(orms:)p 0 TeXcolorgray 515 1781 a Fx(1.)25 b(Con\002gure)515 1928 y(By)k(def)o(ault,)h(the)f(GCC)h(compiler)d(and)h(link)o(er)g (will)i(be)f(used.)50 b(If)29 b(you)f(w)o(ant)g(to)h(compile)f(and)515 2027 y(link)17 b(with)h(a)h(dif)n(ferent)d(compiler)h(and)g(link)o(er)m (,)g(you)g(can)h(set)h(some)e(en)m(vironment)e(v)n(ariable)i(before)515 2127 y(running)c(the)j(con\002gure)e(script.)23 b(F)o(or)16 b(e)o(xample,)f(to)g(use)h(Sun')-5 b(s)16 b(C++)g(compiler)m(,)f(do)g (the)h(follo)n(wing:)515 2274 y Fu(>)k Fx(seten)m(v)g(CXX)h(CC)g(\(csh) f(syntax\))515 2421 y(or)515 2568 y Fu(>)g Fx(e)o(xport)f(CXX=CC)i (\(bash)f(syntax\))515 2715 y(Y)-9 b(ou)19 b(can)h(set)h(the)g (absolute)e(path)h(to)g(the)g(compiler)f(you)g(w)o(ant)i(to)f(use)h(if) f(necessary)-5 b(.)p 0 0 1 TeXcolorrgb 515 2862 a SDict begin H.S end 515 2862 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 2805 a SDict begin H.R end 727 2805 a 727 2861 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 2861 a 0 TeXcolorgray 26 w Fx(requires)25 b(that)h(the)f(CFITSIO)h(package,)f(v)o(ersion)g (3.08)f(or)h(later)m(,)i(is)f(a)n(v)n(ailable)g(on)f(your)515 2961 y(system.)g(See)p 0 1 0 0 TeXcolorcmyk 515 3121 a SDict begin H.S end 515 3121 a 0 1 0 0 TeXcolorcmyk -13 x Fr (http://heasarc.gsfc.nasa.gov/docs/)o(softw)o(are/fi)o(tsio/)o(fitsi)o (o.html)p 0 1 0 0 TeXcolorcmyk 3553 3055 a SDict begin H.R end 3553 3055 a 3553 3108 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html) >> /Subtype /Link H.B /ANN pdfmark end 3553 3108 a 0 TeXcolorgray 515 3255 a Fx(for)20 b(more)g(information.)k(The)c(con\002gure)f(script)h(that)h(you)f(will) h(run)f(tak)o(es)h(an)g(option)e(to)i(specify)515 3354 y(the)f(location)f(of)h(the)g(CFITSIO)h(package.)515 3501 y(If)16 b(the)g(CFITSIO)h(package)e(is)i(installed)f(in)h(a)f (directory)f(consisting)h(of)g(a)h(')o(lib')f(subdirectory)d(con-)515 3601 y(taining)19 b("libc\002tsio.a")g(or)h("libc\002tsio.so")f(and)g (an)h('include')e(subdirectory)g(containing)g("\002tsio.-)515 3701 y(h",)f(then)g(you)f(can)h(run)f(the)h(con\002gure)e(script)i (with)g(a)h(single)e(option.)23 b(F)o(or)17 b(e)o(xample,)f(if)h(the)g (c\002tsio)515 3800 y(package)i(is)i(installed)f(in)g(this)h(f)o (ashion)f(in)g(/usr/local/c\002tsio/)g(then)g(the)g(con\002gure)e (script)j(option)515 3900 y(will)g(be)515 4047 y (--with-c\002tsio=/usr/local/c\002tsio)515 4193 y(If)g(the)g(CFITSIO)h (package)e(is)i(not)f(installed)g(in)g(the)h(abo)o(v)o(e)d(manner)m(,)h (then)h(you)f(need)h(to)g(run)g(the)515 4293 y(con\002gure)e(script)i (with)g(tw)o(o)h(options,)e(one)g(to)i(specify)e(the)h(include)f (directory)g(and)g(the)h(other)f(to)515 4393 y(specify)25 b(the)h(library)f(directory)-5 b(.)41 b(F)o(or)26 b(e)o(xample,)g(if)h (the)f(c\002tsio)g(package)f(w)o(as)i(b)n(uilt)f(in)h(/home-)515 4492 y(/user/c\002tsio/)20 b(then)g(the)g(tw)o(o)g(options)g(will)h(be) 515 4639 y(--with-c\002tsio-include=/home/user/c\002tsio)15 b(--with-c\002tsio-libdir=/home/user/c\002tsio)515 4786 y(F)o(or)28 b(users)h(of)f(HEASOFT)g(\(instead)g(of)h(stand-alone)d (CFITSIO\):)j(Note)f(that)h(modern)e(distri-)515 4886 y(b)n(utions)e(of)h(HEASOFT)g(only)f(include)g(a)i ("libc\002tsio_X.XX.so")d(library)h(by)h(def)o(ault,)h(b)n(ut)f(the)515 4985 y(con\002gure)18 b(script)j(needs)e(to)i(\002nd)f ("libc\002tsio.so",)g(so)g(you)g(will)h(need)e(to)i(create)f(a)h (symbolic)e(link)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h (f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 7 12 TeXDict begin 7 11 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(2.2)82 b(Building)2331 b(7)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(in)16 b($HEADAS/lib/)g(linking)g (libc\002tsio.so)g(-)p Fu(>)g Fx(libc\002tsio_X.XX.so)f(in)i(order)e (for)p 0 0 1 TeXcolorrgb 2921 524 a SDict begin H.S end 2921 524 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 3133 467 a SDict begin H.R end 3133 467 a 3133 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3133 523 a 0 TeXcolorgray 17 w Fx(to)h(con-)515 623 y(\002gure)j(properly)-5 b(.)23 b(Y)-9 b(ou)19 b(can)h(then)g(con\002gure)p 0 0 1 TeXcolorrgb 1840 624 a SDict begin H.S end 1840 624 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2052 566 a SDict begin H.R end 2052 566 a 2052 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2052 623 a 0 TeXcolorgray 21 w Fx(using)g("--with-c\002tsio=$HEADAS/lib".) 515 770 y(Y)-9 b(ou)24 b(ha)n(v)o(e)h(the)g(option)g(of)g(carrying)e (out)i(the)g(b)n(uild)g(in)h(a)f(separate)g(directory)f(from)g(the)h (source)515 869 y(directory)h(or)h(in)h(the)f(same)h(directory)e(as)i (the)f(source.)47 b(In)27 b(either)g(case,)j(you)c(need)h(to)h(run)f (the)515 969 y(con\002gure)c(script)j(in)g(the)f(directory)f(where)h (the)h(b)n(uild)f(will)h(occur)-5 b(.)41 b(F)o(or)25 b(e)o(xample,)g(if)h(b)n(uilding)515 1068 y(in)20 b(the)g(source)g (directory)e(with)j(the)f(c\002tsio)h(directory)d(in)j (/usr/local/c\002tsio/)e(then)h(the)g(con\002gure)515 1168 y(command)e(should)h(be)h(issued)h(lik)o(e)f(this:)515 1315 y Fu(>)g Fx(./con\002gure)e(--with-c\002tsio=/usr/local/c\002tsio) 515 1462 y(If)23 b(you)f(do)g(the)h(b)n(uild)g(in)g(a)g(separate)g (directory)e(from)h(the)h(source,)g(you)f(may)g(need)h(to)g(issue)h (the)515 1561 y(con\002gure)18 b(command)g(something)h(lik)o(e)h(this:) 515 1708 y Fu(>)g Fx(../CC\002ts/con\002gure)f (--with-c\002tsio=/usr/local/c\002tsio)515 1855 y(The)i(con\002gure)e (script)i(will)h(create)f(the)h(Mak)o(e\002le)f(with)g(the)h(path)e(to) i(the)f(compiler)f(you)g(choose)515 1955 y(\(or)j(GCC)j(by)e(def)o (ault\),)g(and)f(the)h(path)g(to)h(the)f(CFITSIO)g(package.)36 b(The)24 b(con\002gure)e(script)i(has)515 2054 y(other)19 b(options,)g(such)h(as)h(the)f(install)h(location.)j(T)-7 b(o)20 b(see)h(these)f(options)g(type)515 2201 y Fu(>)g Fx(./con\002gure)e(--help)515 2348 y(2.)25 b(Build)515 2495 y(Building)16 b(the)h(C++)h(shared)e(library)g(and)g(Ja)n(v)n(a)i (classes)g(will)g(be)f(done)f(automatically)f(by)i(running)515 2595 y(mak)o(e)i(without)h(ar)o(guments)e(lik)o(e)j(this:)515 2742 y Fu(>)f Fx(gmak)o(e)515 2888 y(3.)25 b(Install)515 3035 y(T)-7 b(o)20 b(install,)h(type:)515 3182 y Fu(>)f Fx(mak)o(e)g(install)515 3329 y(The)25 b(def)o(ault)h(install)g (location)f(will)i(be)f(/usr/local/lib)f(for)g(the)h(library)f(and)h (/usr/local/include)515 3429 y(for)c(the)g(header)f(\002les.)33 b(Y)-9 b(ou)22 b(can)g(change)g(this)h(with)f(the)h(--pre\002x)e (option)g(when)h(you)g(con\002gure,)515 3528 y(or)e(with)g(something)f (lik)o(e...)515 3675 y Fu(>)h Fx(mak)o(e)g(DESTDIR=/usr/local/CC\002ts) g(install)p 0 TeXcolorgray 1965 3675 a SDict begin H.S end 1965 3675 a 0 TeXcolorgray 0 TeXcolorgray 1965 3675 a SDict begin H.R end 1965 3675 a 1965 3675 a SDict begin [ /View [/XYZ H.V] /Dest (installation_windows) cvn H.B /DEST pdfmark end 1965 3675 a 0 TeXcolorgray 515 3800 a SDict begin H.S end 515 3800 a 515 3800 a SDict begin 12 H.A end 515 3800 a 515 3800 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.2.2.2) cvn H.B /DEST pdfmark end 515 3800 a 0.25 TeXcolorgray 143 x Fo(2.2.2)75 b(Instructions)19 b(f)o(or)f(Micr)o(osft)g(Windo)o (ws)g(b)o(uild:)p 0 TeXcolorgray 515 4146 a Fx(Compiling)p 0 0 1 TeXcolorrgb 890 4147 a SDict begin H.S end 890 4147 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1102 4090 a SDict begin H.R end 1102 4090 a 1102 4146 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1102 4146 a 0 TeXcolorgray 20 w Fx(with)h(MS)h(VC++) g(requires)e(VC++)i(7.0)f(or)f(later)-5 b(.)26 b(This)19 b(is)h(the)g(compiler)d(that)515 4246 y(comes)22 b(with)h(V)-5 b(isual)22 b(Studio.NET)-6 b(.)21 b(Earlier)h(v)o(ersions)g(of)g(the)g (compiler)g(has)g(too)h(man)o(y)e(defects)515 4346 y(in)f(the)g(area)g (of)g(instanciating)f(templates.)515 4492 y(T)-7 b(ak)o(e)20 b(the)g(follo)n(wing)f(steps.)515 4639 y(1.)25 b(Compile)19 b(the)g(C++)h(code.)k(Open)19 b(the)h(vs.net/CC\002ts/CC\002ts.sln)h (\002le)f(with)g(V)-5 b(isual)20 b(Studio.N-)515 4739 y(ET)-6 b(.)18 b(The)g(includes)g(paths)h(ha)n(v)o(e)f(been)g(set)h(to) g(\002nd)f(the)h(c\002tsio)g(b)n(uild)f(directory)f(at)i(the)g(same)g (le)n(v)o(el)515 4839 y(as)g(the)p 0 0 1 TeXcolorrgb 723 4840 a SDict begin H.S end 723 4840 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 935 4782 a SDict begin H.R end 935 4782 a 935 4839 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 935 4839 a 0 TeXcolorgray 19 w Fx(directory)-5 b(.)22 b(If)c(this)h(is)g (not)f(the)h(case,)g(use)f(V)-5 b(isual)19 b(Studio.NET)d(to)j(edit)f (the)h(include)515 4938 y(paths)h(and)f(e)o(xtra)h(library)f(paths)h (to)g(where)g(you)f(ha)n(v)o(e)h(c\002tsio)h(installed.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 8 13 TeXDict begin 8 12 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(3)20 b(Implementation)g(Notes)1973 b(8)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(Ne)o(xt,)19 b(just)i(use)g(the)f(b)n(uild)g(icon)f(or)h(the)g(b)n(uild)g(menu)f (item.)515 670 y(T)-7 b(o)20 b(b)n(uild)g(the)g(test)h(program,)d (cookbook,)f(use)j(the)h(vs.net/cookbook.cook)o(bo)o(ok)o(.sln)15 b(\002le)515 817 y(Author:)p 0 1 0 0 TeXcolorcmyk 799 828 a SDict begin H.S end 799 828 a 0 1 0 0 TeXcolorcmyk -11 x Fr (Paul_Kunz@slac.stanford.edu)p 0 1 0 0 TeXcolorcmyk 2144 764 a SDict begin H.R end 2144 764 a 2144 817 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (mailto:Paul_Kunz@slac.stanford.edu) >> /Subtype /Link H.B /ANN pdfmark end 2144 817 a 0 TeXcolorgray 20 w Fx(Re)n(vised)21 b(1)f(No)o(v)f(2006)g(by)h(Bryan)g(Irby)515 958 y SDict begin H.S end 515 958 a 515 958 a SDict begin 12 H.A end 515 958 a 515 958 a SDict begin [ /View [/XYZ H.V] /Dest (section.3) cvn H.B /DEST pdfmark end 515 958 a 0.25 TeXcolorgray 179 x Fs(3)107 b(Implementation)25 b(Notes)p 0 TeXcolorgray 0 TeXcolorgray 515 1370 a SDict begin H.S end 515 1370 a 0 TeXcolorgray 0 TeXcolorgray 515 1370 a SDict begin H.R end 515 1370 a 515 1370 a SDict begin [ /View [/XYZ H.V] /Dest (implementation) cvn H.B /DEST pdfmark end 515 1370 a 0 TeXcolorgray 18 w Fx(This)19 b(section)e(comments)g(on)h(some)g(of)g(the)g(design)f(decisions)h(for) p 0 0 1 TeXcolorrgb 2495 1371 a SDict begin H.S end 2495 1371 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2707 1314 a SDict begin H.R end 2707 1314 a 2707 1370 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2707 1370 a 0 TeXcolorgray Fx(.)25 b(W)-7 b(e)19 b(note)f(the)g(role)g(of)515 1470 y(c\002tsio)e(in)p 0 0 1 TeXcolorrgb 815 1471 a SDict begin H.S end 815 1471 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1027 1413 a SDict begin H.R end 1027 1413 a 1027 1470 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1027 1470 a 0 TeXcolorgray 16 w Fx(as)h(the)f (underlying)d("engine,")h(the)h(use)h(of)g(the)g(C++)g(standard)e (library)-5 b(.)22 b(W)-7 b(e)17 b(also)515 1569 y(e)o(xplain)f(some)i (of)f(the)h(choices)f(made)g(for)g(standard)f(library)h(containers)f (in)i(the)g(implementation)515 1669 y(-)i(all)h(of)f(which)f(is)j (hidden)c(from)i(the)g(user)g([)o(as)h(it)g(should)e(be])o(.)515 1816 y(Most)29 b(importantly)-5 b(,)28 b(the)h(library)e(wraps)i (rather)e(than)i(replaces)f(the)g(use)h(of)g(c\002tsio)g(library;)j(it) 515 1915 y(does)21 b(not)g(perform)f(direct)h(disk)g(I/O.)h(The)f (scheme)g(is)i(designed)d(to)i(retain)f(the)g(well-de)n(v)o(eloped)515 2015 y(f)o(acilities)h(of)e(c\002tsio)i(\(in)f(particular)m(,)f(the)h (e)o(xtended)e(\002le)j(syntax\),)e(and)g(mak)o(e)h(them)g(a)n(v)n (ailable)f(to)515 2115 y(C++)h(programmers)d(in)j(an)g(OO)g(frame)n(w)o (ork.)j(Some)c(ef)n(\002cienc)o(y)g(is)h(lost)h(o)o(v)o(er)d(a)i ('pure')e(C++)j(FI-)515 2214 y(TS)g(library)-5 b(,)20 b(since)i(the)g(internal)e(C)j(implementation)c(of)j(man)o(y)e (functions)g(requires)h(processing)515 2314 y(if)e(blocks)g(or)f (switch)i(statements)f(that)g(could)f(be)h(recoded)f(in)h(C++)h(using)e (templates.)25 b(Ho)n(we)n(v)o(er)m(,)515 2413 y(we)d(belie)n(v)o(e)e (that)i(the)g(current)e(v)o(ersion)h(strik)o(es)h(a)g(resonable)e (compromise)g(between)h(de)n(v)o(eloper)515 2513 y(time,)f(utility)g (and)g(ef)n(\002cienc)o(y)-5 b(.)515 2660 y(The)15 b(implementation)f (of)p 0 0 1 TeXcolorrgb 1283 2661 a SDict begin H.S end 1283 2661 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1495 2604 a SDict begin H.R end 1495 2604 a 1495 2660 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1495 2660 a 0 TeXcolorgray 16 w Fx(uses)j(the)e(C++)i(Standard)d(Library)g(containers)h(and)g (algorithms)515 2760 y([)o(also)26 b(referred)e(to)h(as)h(the)f (Standard)f(T)-6 b(emplate)25 b(Library)-5 b(,)24 b(\(STL\)])h(and)g(e) o(xception)e(handling.)38 b(-)515 2859 y(Here)20 b(is)h(a)g(summary)d (of)i(the)g(rationale)g(behind)e(the)j(implementation)d(decisions)h (made.)p 0 TeXcolorgray 652 3049 a(\225)p 0 TeXcolorgray 41 w(HDUs)30 b(are)f(contained)e(within)i(a)g(FITS)h(object)e(using)h (a)g(std::multimap)p Fu(<)p Fx(string,)f(HD-)722 3149 y(U)p Fp(\003)p Fu(>)20 b Fx(object.)515 3209 y SDict begin H.S end 515 3209 a 515 3209 a SDict begin 12 H.A end 515 3209 a 515 3209 a SDict begin [ /View [/XYZ H.V] /Dest (Item.1) cvn H.B /DEST pdfmark end 515 3209 a 0 TeXcolorgray 801 3299 a Fx(1.)p 0 TeXcolorgray 41 w(The)g(map)g(object)f(constructs) h(ne)n(w)g(array)f(members)g(on)h(\002rst)h(reference)515 3326 y SDict begin H.S end 515 3326 a 515 3326 a SDict begin 12 H.A end 515 3326 a 515 3326 a SDict begin [ /View [/XYZ H.V] /Dest (Item.2) cvn H.B /DEST pdfmark end 515 3326 a 0 TeXcolorgray 801 3416 a Fx(2.)p 0 TeXcolorgray 41 w(Objects)d(stored)g(in)g(the)g(map)g(are)g(sorted)g(on)f(entry)h (and)f(retrie)n(v)o(ed)g(ef)n(\002ciently)g(using)905 3516 y(binary)i(search)h(techniques.)515 3543 y SDict begin H.S end 515 3543 a 515 3543 a SDict begin 12 H.A end 515 3543 a 515 3543 a SDict begin [ /View [/XYZ H.V] /Dest (Item.3) cvn H.B /DEST pdfmark end 515 3543 a 0 TeXcolorgray 801 3633 a Fx(3.)p 0 TeXcolorgray 41 w(The)i(pointer)n(-to-HDU)e (implementation)g(allo)n(ws)j(for)e(polymorphism:)27 b(one)22 b(set)h(of)905 3733 y(operations)c(will)h(process)g(all)h(HDU) g(objects)f(within)f(the)i(FITS)f(\002le)515 3759 y SDict begin H.S end 515 3759 a 515 3759 a SDict begin 12 H.A end 515 3759 a 515 3759 a SDict begin [ /View [/XYZ H.V] /Dest (Item.4) cvn H.B /DEST pdfmark end 515 3759 a 0 TeXcolorgray 801 3850 a Fx(4.)p 0 TeXcolorgray 41 w(String)h(objects)g (\(char)p Fp(\003)f Fx(\))h(are)h(represented)d(by)i(the)g(std::string) g(class,)i(which)e(has)g(a)905 3949 y(rich)f(public)f(interf)o(ace)g (of)h(search)g(and)g(manipulation)e(f)o(acilities.)p 0 TeXcolorgray 652 4099 a(\225)p 0 TeXcolorgray 41 w(Scalar)24 b(column)f(data)h([one)f(entry)g(per)h(cell])g(are)g(implemented)e (using)i(std::v)o(ector)p Fu(<)p Fx(T)p Fu(>)722 4199 y Fx(objects.)p 0 TeXcolorgray 652 4349 a(\225)p 0 TeXcolorgray 41 w(V)-9 b(ector)20 b(column)g(data)h([)o(multiple)g(and)f(either)g (\002x)o(ed)h(or)f(v)n(ariable)g(numbers)g(of)g(entries)h(per)722 4449 y(cell])i(are)f(implemented)e(using)i(std::v)o(ector)p Fu(<)p Fx(std::v)n(alarray)c Fu(<)p Fx(T)p Fu(>)k(>)g Fx(objects.)31 b(The)21 b(std-)722 4548 y(::v)n(alarray)i(template)g (is)i(intended)e(for)g(optimized)g(numeric)f(processing.)35 b(v)n(alarrays)23 b(are)722 4648 y(ha)n(v)o(e)d(the)g(follo)n(wing)f (desirable)g(features:)515 4717 y SDict begin H.S end 515 4717 a 515 4717 a SDict begin 12 H.A end 515 4717 a 515 4717 a SDict begin [ /View [/XYZ H.V] /Dest (Item.5) cvn H.B /DEST pdfmark end 515 4717 a 0 TeXcolorgray 801 4807 a Fx(1.)p 0 TeXcolorgray 41 w(the)o(y)e(are)g(dynamic,)f(b)n(ut)h (designed)f(to)i(be)f(allocated)g(in)g(full)g(on)g(construction)e (rather)905 4907 y(than)23 b(dynamic)f(resizing)i(during)e(operation:) 30 b(this)24 b(is,)i(what)d(is)i(usually)e(needed)f(in)905 5006 y(FITS)e(\002les.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 9 14 TeXDict begin 9 13 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(4)20 b(Xspec)h(and)f(CC\002ts)2147 b(9)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (Item.6) cvn H.B /DEST pdfmark end 515 440 a 0 TeXcolorgray 801 523 a Fx(2.)p 0 TeXcolorgray 41 w(The)o(y)14 b(ha)n(v)o(e)h(b)n(uilt-in)f (v)o(ectorized)g(transcendental)f(functions)h(\(e.g.)22 b Ft(std::valarr)o(ay)p Fu(<)p Ft(-)905 623 y(T)p Fu(>)e Ft(sin\(const)g(std::valarr)o(ay)p Fu(<)p Ft(T)p Fu(>)p Ft(&)d(\))p Fx(.)515 656 y SDict begin H.S end 515 656 a 515 656 a SDict begin 12 H.A end 515 656 a 515 656 a SDict begin [ /View [/XYZ H.V] /Dest (Item.7) cvn H.B /DEST pdfmark end 515 656 a 0 TeXcolorgray 801 756 a Fx(3.)p 0 TeXcolorgray 41 w(The)o(y)h(pro)o(vide)f(std::v)n(alarray)p Fu(<)p Fx(T)p Fu(>)f Fx(apply\(T)h(f\(const)h(T&\)\))g(operation,)f(to) i(apply)f(a)905 855 y(function)g(f)j(to)f(each)g(element)515 873 y SDict begin H.S end 515 873 a 515 873 a SDict begin 12 H.A end 515 873 a 515 873 a SDict begin [ /View [/XYZ H.V] /Dest (Item.8) cvn H.B /DEST pdfmark end 515 873 a 0 TeXcolorgray 801 988 a Fx(4.)p 0 TeXcolorgray 41 w(The)o(y)31 b(pro)o(vide)f(slicing)j(operations)e([)o(see)i(the)g ("Getting)e(Started")h(section)g(for)g(a)905 1088 y(simple)20 b(e)o(xample])n(.)p 0 TeXcolorgray 652 1270 a(\225)p 0 TeXcolorgray 41 w(Exceptions)27 b(are)i(pro)o(vided)d(in)j(for)f(by)g (a)h(FitsException)f(hierarchy)-5 b(,)27 b(which)i(prints)f(out)722 1370 y(messages)g(on)g(errors)f(and)g(returns)g(control)g(to)h(where)n (v)o(er)e(the)i(e)o(xception)e(is)j(caught.)47 b(-)722 1469 y(Non-zero)14 b(status)i(v)n(alues)f(returned)f(by)h(c\002tsio)i (are)e(caught)g(by)g(subclass)h(FitsError)m(,)f(which)722 1569 y(prints)k(the)h(string)e(corresponding)e(to)k(an)f(input)f (status)i(\003ag.)25 b(FitsException')-5 b(s)19 b(other)f(sub-)722 1669 y(classes)26 b(are)f(thro)n(wn)e(on)h(array)g(bounds)f(errors)h (and)g(other)g(programming)d(errors.)37 b(Rare)722 1768 y([we)24 b(hope])e(errors)h(that)h(indicate)g(programming)c(\003a)o(ws) k(in)g(the)g(library)f(thro)n(w)g(FitsF)o(atal)722 1868 y(errors)d(that)g(suggest)g(that)g(the)g(user)g(report)f(the)i(b)n(ug.) 515 2017 y SDict begin H.S end 515 2017 a 515 2017 a SDict begin 12 H.A end 515 2017 a 515 2017 a SDict begin [ /View [/XYZ H.V] /Dest (section.4) cvn H.B /DEST pdfmark end 515 2017 a 0.25 TeXcolorgray 178 x Fs(4)107 b(Xspec)25 b(and)f(CC\002ts)p 0 TeXcolorgray 0 TeXcolorgray 515 2428 a SDict begin H.S end 515 2428 a 0 TeXcolorgray 0 TeXcolorgray 515 2428 a SDict begin H.R end 515 2428 a 515 2428 a SDict begin [ /View [/XYZ H.V] /Dest (xspec) cvn H.B /DEST pdfmark end 515 2428 a 0 TeXcolorgray 27 w Fx(This)i(section)g(is)h(pro)o(vided)d(for)i(background.)40 b(Users)27 b(of)f(CC\002ts)i(need)d(not)h(read)g(it)h(e)o(xcept)e(to) 515 2528 y(understand)c(ho)n(w)j(the)g(library)e(w)o(as)j(concei)n(v)o (ed)d(and)h(therefore)f(what)i(its)h(strengths)e(and)g(weak-)515 2627 y(nesses)e(are)f(lik)o(ely)g(to)g(be)g(in)h(this)f(initial)h (release.)p 0 TeXcolorgray 515 2774 a SDict begin H.S end 515 2774 a 0 TeXcolorgray 0 TeXcolorgray 515 2774 a SDict begin H.R end 515 2774 a 515 2774 a SDict begin [ /View [/XYZ H.V] /Dest (aboutXspec) cvn H.B /DEST pdfmark end 515 2774 a 0 TeXcolorgray 515 2896 a SDict begin H.S end 515 2896 a 515 2896 a SDict begin 12 H.A end 515 2896 a 515 2896 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.1) cvn H.B /DEST pdfmark end 515 2896 a 0.25 TeXcolorgray 163 x Fq(4.1)90 b(About)20 b(XSPEC)p 0 TeXcolorgray 515 3262 a Fx(XSPEC)36 b(is)h(a)f(general-purpose,)g(multi-mission)e(X-Ray)i (spectral)f(data)h(analysis)g(program)515 3362 y(which)29 b(\002ts)i(data)f(with)g(theoretical)f(models)g(by)g(con)m(v)n(olving)e (those)j(models)f(through)f(the)i(in-)515 3461 y(strumental)19 b(responses.)24 b(In)c(XSPEC)g(11.x)f(and)h(all)g(prior)f(v)o(ersions)g (that)h(use)g(FITS)g(format)f(data,)515 3561 y(each)i(indi)n(vidual)f (data)i(\002le)h(format)d(that)i(is)h(supported)d(can)h(ha)n(v)o(e)h (up)f(to)h(4)g(anciliary)f(\002les.)31 b(That)515 3661 y(is,)h(for)d(each)h(data)f(\002le,)k(there)c(can)g(be)h(a)g(response,) h(correction,)f(background)c(and)j(auxiliary)515 3760 y(response)d(\(ef)n(\002cienc)o(y\))e(\002le.)46 b(Additionally)25 b(there)h(are)h(table)g(models)f(that)h(read)g(FITS)g(format)515 3860 y(data.)37 b(All)26 b(told,)f(therefore,)e(much)h(duplicated)f (procedural)f(code)i(for)g(reading)f(FITS)h(data)h(can)515 3960 y(be)h(eliminated)f(by)h(use)h(of)f(the)h(greater)e(encapsulation) f(pro)o(vided)g(by)i(CC\002ts.)45 b(XSPEC')-5 b(s)28 b(pri-)515 4059 y(mary)19 b(need)g(is)i(to)f(read)g(FITS)g(\003oating)f (point)g(Binary)h(T)-7 b(ables.)25 b(XSPEC)c(also)f(creates)g (simulated)515 4159 y(data)c(by)h(con)m(v)n(olving)d(users')i(models)h (with)g(detector)f(responses,)g(so)h(it)h(also)f(has)g(a)g(need)f(for)h (writ-)515 4258 y(ing)g(tab)n(ular)h(data.)24 b(Images)17 b(are)h(not)g(used)g(in)g(XSPEC.)h(W)-7 b(e)19 b(ha)n(v)o(e)e(pro)o (vided)f(a)i(support)f(for)g(image)515 4358 y(operations)22 b(which)i(has)g(under)o(gone)c(limited)k(testing)g(compared)e(to)i(the) g(reading)f(interf)o(ace)g(for)515 4458 y(table)d(e)o(xtensions.)p 0 TeXcolorgray 515 4605 a SDict begin H.S end 515 4605 a 0 TeXcolorgray 0 TeXcolorgray 515 4605 a SDict begin H.R end 515 4605 a 515 4605 a SDict begin [ /View [/XYZ H.V] /Dest (new) cvn H.B /DEST pdfmark end 515 4605 a 0 TeXcolorgray 515 4726 a SDict begin H.S end 515 4726 a 515 4726 a SDict begin 12 H.A end 515 4726 a 515 4726 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.2) cvn H.B /DEST pdfmark end 515 4726 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 529 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 10 15 TeXDict begin 10 14 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(4.2)82 b(New)20 b(Data)f(F)n(ormats)1927 b(10)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fq(4.2)90 b(Ne)o(w)20 b(Data)h(Formats)p 0 TeXcolorgray 515 726 a Fx(Ne)n(w)f(formats)f(to)g(be)h(read)f(in)h(XSPEC)h(that)f(are)f (specialized)g(for)h(a)g(particular)e(satellite)j(mission)515 826 y(can)k(be)g(supported)e(almost)j(tri)n(vially)f(by)f(adding)g(ne)n (w)h(classes)i(that)e(read)g(data)g(speci\002ed)g(with)515 925 y(dif)n(ferent)c(FITS)j(format)e(\002les.)35 b(A)23 b(single)h(constructor)d(call)i(specifying)f(the)h(required)f(columns) 515 1025 y(and)i(k)o(e)o(ys)g(is)i(all)f(that)g(is)h(needed)d(to)i (read)f(FITS)h(\002les,)i(rather)d(than)g(a)h(set)h(of)e(indi)n(vidual) f(c\002tsio)515 1124 y(calls.)38 b(The)24 b(library)g(is)h(designed)e (to)i(encourage)d(the)j(\223resource)e(acquisition)g(is)i (initialization\224)515 1224 y(model)f(of)h(resource)f(management;)i (CC\002ts)h(will)f(perform)d(more)h(ef)n(\002ciently)g(if)i(data)f(are) g(read)515 1324 y(on)20 b(construction.)p 0 TeXcolorgray 515 1471 a SDict begin H.S end 515 1471 a 0 TeXcolorgray 0 TeXcolorgray 515 1471 a SDict begin H.R end 515 1471 a 515 1471 a SDict begin [ /View [/XYZ H.V] /Dest (module) cvn H.B /DEST pdfmark end 515 1471 a 0 TeXcolorgray 515 1592 a SDict begin H.S end 515 1592 a 515 1592 a SDict begin 12 H.A end 515 1592 a 515 1592 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.3) cvn H.B /DEST pdfmark end 515 1592 a 0.25 TeXcolorgray 163 x Fq(4.3)90 b(Modularity)p 0 TeXcolorgray 515 1958 a Fx(Third,)24 b(in)g(an)g(object)g(oriented)f (design,)i(it)g(is)g(possible)f(to)g(mak)o(e)g(a)h(program)d(only)h (loosely)h(de-)515 2058 y(pendent)f(on)h(current)g(implementation)e (assumptions.)38 b(In)25 b(XSPEC,)g(data)g(are)g(read)f(as)h(SF)h(and) 515 2158 y(FITS)18 b(format)e(\(of)h(three)g(dif)n(ferent)f(v)n (arieties\))h(and)g(the)h(user)g(interf)o(ace)e(is)j(written)e(in)h (tcl/tk.)25 b(Both)515 2257 y(of)g(these)g(assumptions)g(could)f(be)i (changed)d(o)o(v)o(er)h(the)i(future)e(life)i(of)f(the)g(program.)39 b(Thus)25 b(the)515 2357 y(design)g(of)h(XSPEC,)h(and)f(an)o(y)g (similar)g(program,)g(consists)h(of)f(de\002ning)f(an)h(abstract)g (DataSet)515 2457 y(class)20 b(which)e(has)h(a)h(subclass)f(that)g (uses)h(FITS)f(data.)24 b(The)19 b(virtual)f(functions)g(that)h (support)e(read-)515 2556 y(ing)g(and)g(writing)g(can)h(easily)f(be)h (o)o(v)o(erloaded)d(by)i(alternati)n(v)o(es)f(to)i(FITS.)g(Thus,)f(the) h(class)h(library)515 2656 y(speci\002ed)h(here)f(\002ts)j(in)e(with)g (the)g(need)g(for)g(modularity)e(in)i(design.)515 2804 y SDict begin H.S end 515 2804 a 515 2804 a SDict begin 12 H.A end 515 2804 a 515 2804 a SDict begin [ /View [/XYZ H.V] /Dest (section.5) cvn H.B /DEST pdfmark end 515 2804 a 0.25 TeXcolorgray 179 x Fs(5)107 b(Getting)25 b(Star)r(ted)p 0 TeXcolorgray 0 TeXcolorgray 515 3216 a SDict begin H.S end 515 3216 a 0 TeXcolorgray 0 TeXcolorgray 515 3216 a SDict begin H.R end 515 3216 a 515 3216 a SDict begin [ /View [/XYZ H.V] /Dest (cookbook) cvn H.B /DEST pdfmark end 515 3216 a 0 TeXcolorgray 21 w Fx(The)20 b(program)f (cookbook.cxx,)d(analogous)j(to)h(the)h(cookbook.c)c(program)i (supplied)g(with)i(c\002t-)515 3316 y(sio,)35 b(w)o(as)e(generated)d (to)i(test)h(the)g(correct)e(functioning)e(of)j(the)g(parts)g(of)g(the) g(library)f(and)g(to)515 3415 y(pro)o(vide)18 b(a)i(demonstration)e(of) i(its)h(usage.)515 3562 y(The)d(code)g(for)h(cookbook)d(is)j (reproduced)d(here)j(with)g(commentary)d(as)k(w)o(ork)o(ed)d(e)o (xample)h(of)h(the)515 3662 y(usage)h(of)f(the)i(library)-5 b(.)p 0 TeXcolorgray 1176 3662 a SDict begin H.S end 1176 3662 a 0 TeXcolorgray 0 TeXcolorgray 1176 3662 a SDict begin H.R end 1176 3662 a 1176 3662 a SDict begin [ /View [/XYZ H.V] /Dest (cookbook_main) cvn H.B /DEST pdfmark end 1176 3662 a 0 TeXcolorgray 515 3801 a SDict begin H.S end 515 3801 a 515 3801 a SDict begin 12 H.A end 515 3801 a 515 3801 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.5.1) cvn H.B /DEST pdfmark end 515 3801 a 0.25 TeXcolorgray 146 x Fq(5.1)90 b(Driver)20 b(Pr)o(ogram)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4129 a Fn(//)39 b(The)h(CCfits)f (headers)f(are)i(expected)f(to)g(be)h(installed)e(in)i(a)f (subdirectory)f(of)515 4208 y(//)h(the)h(include)e(path.)515 4365 y(//)h(The)h()e(header)h(file)h(contains)e(all)i(that)f (is)g(necessary)g(to)g(use)h(both)f(the)794 4444 y(CCfits)515 4523 y(//)g(library)g(and)g(the)h(cfitsio)f(library)g(\(for)g(example,) f(it)i(includes)f(fitsio.h\))f(thus)794 4602 y(making)515 4681 y(//)h(all)h(of)f(cfitsio's)g(macro)g(definitions)f(available.)515 4839 y(#ifdef)h(HAVE_CONFIG_H)515 4918 y(#include)f("config.h")515 4996 y(#endif)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 11 16 TeXDict begin 11 15 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(5.1)82 b(Dri)o(v)o(er)20 b(Pr)o(ogram)2021 b(11)p 515 236 2865 4 v 0 TeXcolorgray 515 602 a Fn(//)39 b(this)h(includes)e(12)i(of)f(the)h(CCfits)f(headers)f(and)i(will)f (support)g(all)g(CCfits)794 681 y(operations.)515 760 y(//)g(the)h(installed)e(location)h(of)g(the)h(library)f(headers)f(is)i ($\(ROOT\)/include/CCfits)515 917 y(//)f(to)h(use)f(the)h(library)e (either)h(add)h(-I$\(ROOT\)/include/CCfits)c(or)k(#include)794 996 y()515 1075 y(//)f(in)h(the)f(compilation)f(target.) 515 1233 y(#include)g()515 1391 y(#include)g()674 1469 y(//)i(The)f(library)g(is)g(enclosed)g(in)h(a)f(namespace.)674 1627 y(using)g(namespace)g(CCfits;)515 2022 y(int)g(main\(\);)515 2100 y(int)g(writeImage\(\);)515 2179 y(int)g(writeAscii\(\);)515 2258 y(int)g(writeBinary\(\);)515 2337 y(int)g(copyHDU\(\);)515 2416 y(int)g(selectRows\(\);)515 2495 y(int)g(readHeader\(\);)515 2574 y(int)g(readImage\(\);)515 2653 y(int)g(readTable\(\);)515 2731 y(int)g(readExtendedSyntax\(\);)515 2889 y(int)g(main\(\))515 2968 y({)714 3205 y(FITS::setVerboseMode\(true\);)714 3362 y(try)714 3520 y({)834 3678 y(if)g(\(!writeImage\(\)\))f (std::cerr)g(<<)i(")f(writeImage\(\))g(\\n";)834 3757 y(if)g(\(!writeAscii\(\)\))f(std::cerr)g(<<)i(")f(writeAscii\(\))g (\\n";)834 3836 y(if)g(\(!writeBinary\(\)\))f(std::cerr)g(<<)i(")f (writeBinary\(\))78 b(\\n";)834 3914 y(if)39 b(\(!copyHDU\(\)\))f (std::cerr)h(<<)g(")h(copyHDU\(\))e(\\n";)834 3993 y(if)h (\(!readHeader\(\)\))f(std::cerr)g(<<)i(")f(readHeader\(\))g(\\n";)834 4072 y(if)g(\(!readImage\(\)\))f(std::cerr)g(<<)i(")g(readImage\(\))e (\\n";)834 4151 y(if)h(\(!readTable\(\)\))f(std::cerr)g(<<)i(")g (readTable\(\))e(\\n";)834 4230 y(if)h(\(!readExtendedSyntax\(\)\))e (std::cerr)h(<<)i(")f(readExtendedSyntax\(\))e(\\n";)834 4309 y(if)i(\(!selectRows\(\)\))f(std::cerr)g(<<)i(")f(selectRows\(\))g (\\n";)714 4467 y(})714 4545 y(catch)g(\(FitsException&\))714 4624 y(//)h(will)f(catch)g(all)g(exceptions)g(thrown)g(by)g(CCfits,)g (including)f(errors)714 4703 y(//)i(found)f(by)g(cfitsio)g(\(status)g (!=)g(0\))714 4782 y({)834 4940 y(std::cerr)f(<<)i(")f(Fits)h (Exception)e(Thrown)h(by)h(test)f(function)f(\\n";)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 12 17 TeXDict begin 12 16 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(5.1)82 b(Dri)o(v)o(er)20 b(Pr)o(ogram)2021 b(12)p 515 236 2865 4 v 0 TeXcolorgray 714 602 a Fn(})674 681 y(return)39 b(0;)515 760 y(})515 990 y Fx(The)18 b(simple)g(dri)n(v)o(er)e(program)g(illustrates)j(the)f(setting)g(of)g (v)o(erbose)f(mode)g(for)g(the)h(library)-5 b(,)17 b(which)515 1089 y(mak)o(es)33 b(all)g(internal)f(e)o(xceptions)g(visible)h(to)g (the)g(programmer)-5 b(.)61 b(This)33 b(is)h(primarily)e(for)g(de-)515 1189 y(b)n(ugging)26 b(purposes;)k(e)o(xceptions)c(are)i(in)g(some)g (cases)g(used)g(to)g(transfer)f(control)f(in)i(common)515 1288 y(circumstances)e(\(e.g.)47 b(testing)28 b(whether)f(a)h(\002le)g (should)f(be)h(created)f(or)g(appended)f(to)h(in)h(write)515 1388 y(operations\).)23 b(Most)d(of)g(the)g(e)o(xceptions)f(will)i(not) f(produce)e(a)i(message)h(unless)f(this)h(\003ag)f(is)h(set.)515 1535 y(Nearly)j(all)i(of)f(the)g(e)o(xceptions)e(thro)n(wn)h(by)p 0 0 1 TeXcolorrgb 1844 1536 a SDict begin H.S end 1844 1536 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2056 1479 a SDict begin H.R end 2056 1479 a 2056 1535 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2056 1535 a 0 TeXcolorgray 26 w Fx(are)h(deri)n(v)o (ed)e(from)h(FitsException,)h(which)515 1635 y(is)j(caught)e(by)h (reference)e(in)j(the)f(abo)o(v)o(e)f(e)o(xample.)44 b(This)28 b(includes)e(all)i(nonzero)d(status)j(codes)515 1734 y(returned)19 b(by)i(c\002tsio)h(by)f(the)h(follo)n(wing)e (construct)g(\(recall)h(that)h(in)f(the)p 0 1 0 0 TeXcolorcmyk 2632 1747 a SDict begin H.S end 2632 1747 a 0 1 0 0 TeXcolorcmyk -13 x Fr(cfitsio)48 b(library)p 0 1 0 0 TeXcolorcmyk 3379 1681 a SDict begin H.R end 3379 1681 a 3379 1734 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html) >> /Subtype /Link H.B /ANN pdfmark end 3379 1734 a 0 TeXcolorgray 515 1834 a Fx(nearly)24 b(all)h(functions)e(return)h(a)h(non-zero)e(status)i(code)f(on)h(error) m(,)f(and)g(ha)n(v)o(e)h(a)g(\002nal)g(ar)o(gument)515 1933 y(status)c(of)f(type)f(int\):)p 0 TeXcolorgray 0 TeXcolorgray 555 2143 a Fn(if)39 b(\()h([cfitsio)e (call]\(args,...,&status\)\))f(throw)i(FitsError\(status\);)515 2372 y Fx(FitsError)m(,)27 b(deri)n(v)o(ed)e(from)h(FitsException,)i (uses)f(a)h(c\002tsio)f(library)f(call)i(to)f(con)m(v)o(ert)e(the)i (status)515 2472 y(code)19 b(to)i(a)f(string)g(message.)515 2619 y(The)26 b(fe)n(w)h(e)o(xceptions)f(that)h(are)g(not)f(deri)n(v)o (ed)g(from)g(FitsException)f(indicate)i(f)o(atal)g(conditions)515 2719 y(implying)13 b(b)n(ugs)i(in)h(the)f(library)-5 b(.)22 b(These)15 b(print)f(a)i(message)f(suggesting)f(the)h(user)g (contact)p 0 1 0 0 TeXcolorcmyk 3094 2720 a SDict begin H.S end 3094 2720 a 0 1 0 0 TeXcolorcmyk -1 x Fr(HEASARC)p 0 1 0 0 TeXcolorcmyk 3442 2669 a SDict begin H.R end 3442 2669 a 3442 2719 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (mailto:xanprob@olegacy.gsfc.nasa.gov) >> /Subtype /Link H.B /ANN pdfmark end 3442 2719 a 0 TeXcolorgray 515 2818 a Fx(to)20 b(report)f(the)h(problem.)515 2965 y(Note)i(also)g(the)h(lack)f(of)g(statements)g(for)g(closing)f(\002les) j(in)e(an)o(y)f(of)h(the)h(follo)n(wing)d(routines,)i(The)515 3065 y(destructor)c(\(dtor\))h(for)h(the)g(FITS)g(object)g(does)g(this) h(when)e(it)i(f)o(alls)g(out)f(of)g(scope.)k(A)d(call)515 3212 y(FITS::destro)o(y\(\))d(thro)n(w\(\))515 3358 y(is)j(pro)o(vided) d(for)i(closing)g(\002les)i(e)o(xplicitly;)e(destro)o(y\(\))f(is)j (also)f(responsible)e(for)h(cleaning)f(up)i(the)515 3458 y(FITS)f(object)g(and)f(deallocating)g(its)i(resources.)515 3605 y(When)i(the)g(data)g(are)h(being)e(read)h(instead)g(of)g (written,)h(the)f(user)g(is)i(e)o(xpected)c(to)j(cop)o(y)e(the)i(data) 515 3705 y(into)k(other)f(program)g(v)n(ariables)g([rather)g(than)h (use)h(references)e(to)i(the)f(data)g(contained)f(in)i(the)515 3804 y(FITS)20 b(object])o(.)515 3951 y(The)g(routines)f(in)h(this)h (program)d(test)j(the)f(follo)n(wing)f(functionality:)515 4098 y(writeImage\(\))p 0 0 1 TeXcolorrgb 969 4116 a SDict begin H.S end 969 4116 a 0 0 1 TeXcolorrgb -18 x Fx(Writing)h(Primary)f(Images)h(and) f(Image)h(Extensions)p 0 0 1 TeXcolorrgb 2530 4042 a SDict begin H.R end 2530 4042 a 2530 4098 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (writeimage) cvn H.B /ANN pdfmark end 2530 4098 a 0 TeXcolorgray 515 4245 a Fx(writeAscii\(\))p 0 0 1 TeXcolorrgb 937 4263 a SDict begin H.S end 937 4263 a 0 0 1 TeXcolorrgb -18 x Fx(Creating)f(and)h(Writing)g(to)g (an)g(Ascii)h(T)-7 b(able)21 b(Extension)p 0 0 1 TeXcolorrgb 2579 4189 a SDict begin H.R end 2579 4189 a 2579 4245 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (ascii) cvn H.B /ANN pdfmark end 2579 4245 a 0 TeXcolorgray 515 4392 a Fx(writeBinary\(\))p 0 0 1 TeXcolorrgb 987 4410 a SDict begin H.S end 987 4410 a 0 0 1 TeXcolorrgb -18 x Fx(Creating)f(and)g(Writing)g (to)g(a)h(Binary)e(T)-7 b(able)21 b(Extension)p 0 0 1 TeXcolorrgb 2639 4335 a SDict begin H.R end 2639 4335 a 2639 4392 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (binary) cvn H.B /ANN pdfmark end 2639 4392 a 0 TeXcolorgray 515 4539 a Fx(cop)o(yHDU\(\))p 0 0 1 TeXcolorrgb 931 4557 a SDict begin H.S end 931 4557 a 0 0 1 TeXcolorrgb -18 x Fx(Cop)o(ying)e(an)h(Extension)f(between)g(Files)p 0 0 1 TeXcolorrgb 2148 4482 a SDict begin H.R end 2148 4482 a 2148 4539 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (copy) cvn H.B /ANN pdfmark end 2148 4539 a 0 TeXcolorgray 515 4685 a Fx(selectRo)n(ws\(\))p 0 0 1 TeXcolorrgb 967 4703 a SDict begin H.S end 967 4703 a 0 0 1 TeXcolorrgb -18 x Fx(Selecting)h(T)-7 b(able)20 b(Data)p 0 0 1 TeXcolorrgb 1657 4629 a SDict begin H.R end 1657 4629 a 1657 4685 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (filter) cvn H.B /ANN pdfmark end 1657 4685 a 0 TeXcolorgray 515 4832 a Fx(readHeader\(\))p 0 0 1 TeXcolorrgb 973 4850 a SDict begin H.S end 973 4850 a 0 0 1 TeXcolorrgb -18 x Fx(Reading)g(Header)f (information)f(from)h(a)i(HDU)p 0 0 1 TeXcolorrgb 2364 4776 a SDict begin H.R end 2364 4776 a 2364 4832 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (readhead) cvn H.B /ANN pdfmark end 2364 4832 a 0 TeXcolorgray 515 4979 a Fx(readImage\(\))p 0 0 1 TeXcolorrgb 941 4997 a SDict begin H.S end 941 4997 a 0 0 1 TeXcolorrgb -18 x Fx(Reading)f(an)g(Image)p 0 0 1 TeXcolorrgb 1545 4923 a SDict begin H.R end 1545 4923 a 1545 4979 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (readimage) cvn H.B /ANN pdfmark end 1545 4979 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 13 18 TeXDict begin 13 17 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(6)20 b(Writing)g(Primary)g(Images)g(and)h (Image)f(Extensions)1042 b(13)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(readT)-7 b(able\(\))p 0 0 1 TeXcolorrgb 916 541 a SDict begin H.S end 916 541 a 0 0 1 TeXcolorrgb -18 x Fx(Reading)20 b(a)g(T)-7 b(able)20 b(Extension)p 0 0 1 TeXcolorrgb 1806 467 a SDict begin H.R end 1806 467 a 1806 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (readtable) cvn H.B /ANN pdfmark end 1806 523 a 0 TeXcolorgray 515 670 a Fx(readExtendedSyntax\(\))p 0 0 1 TeXcolorrgb 1278 688 a SDict begin H.S end 1278 688 a 0 0 1 TeXcolorrgb -18 x Fx(Reading)f(with)i (Extended)d(File)j(Name)f(Syntax)p 0 0 1 TeXcolorrgb 2678 614 a SDict begin H.R end 2678 614 a 2678 670 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (readextendedsyntax) cvn H.B /ANN pdfmark end 2678 670 a 0 TeXcolorgray 515 819 a SDict begin H.S end 515 819 a 515 819 a SDict begin 12 H.A end 515 819 a 515 819 a SDict begin [ /View [/XYZ H.V] /Dest (section.6) cvn H.B /DEST pdfmark end 515 819 a 0.25 TeXcolorgray 178 x Fs(6)107 b(Writing)25 b(Primar)q(y)g(Ima) o(g)q(es)f(and)h(Ima)o(g)q(e)f(Extensions)p 0 TeXcolorgray 0 TeXcolorgray 515 1230 a SDict begin H.S end 515 1230 a 0 TeXcolorgray 0 TeXcolorgray 515 1230 a SDict begin H.R end 515 1230 a 515 1230 a SDict begin [ /View [/XYZ H.V] /Dest (writeimage) cvn H.B /DEST pdfmark end 515 1230 a 0 TeXcolorgray 21 w Fx(This)c(section)g(of)g(the)g(code)g (demonstrates)f(creation)g(of)h(images.)25 b(Because)20 b(e)n(v)o(ery)f(\002ts)j(\002le)f(must)515 1330 y(ha)n(v)o(e)28 b(a)i(PHDU)f(element,)i(all)f(the)f(FITS)g(constructors)f(\(ctors\))g (instantiate)h(a)h(PHDU)f(object.)515 1429 y(In)c(the)h(case)f(of)h(a)g (ne)n(w)f(\002le,)i(the)f(def)o(ault)f(is)h(to)g(establish)f(an)h (empty)e(HDU)i(with)g(BITPIX)g(=)f(8)515 1529 y(\(BYTE_IMG\).)h Fm(A)j(current)h(limitation)e(of)g(the)h(code)f(is)h(that)f(the)h(data) f(type)g(of)g(the)h(PHDU)515 1629 y(cannot)22 b(be)g(replaced)f(after)i (the)g(FITS)g(\002le)g(is)g(created.)31 b Fx(Ar)o(guments)20 b(to)j(the)f(FITS)g(ctors)h(allo)n(w)515 1728 y(the)g(speci\002cation)f (of)h(the)g(data)g(type)f(and)g(the)h(number)f(of)g(ax)o(es)h(and)g (their)f(lengths.)33 b(An)23 b(image)515 1828 y(e)o(xtension)28 b(of)h(type)h(\003oat)f(is)i(also)f(written)f(by)h(calls)g(in)g (between)f(the)g(writes)i(to)e(the)h(primary)515 1928 y(header)19 b(demonstrating)f(switch)i(between)f(HDUs)i(during)e (writes.)515 2074 y(Note)c(that)g(in)h(the)f(e)o(xample)f(belo)n(w)h (data)g(of)g(type)g Ft(\003oat)30 b Fx(is)16 b(written)f(to)g(an)h (image)e(of)h(type)g Ft(unsigned)515 2174 y(int,)24 b Fx(demonstrating)d(both)i(implicit)h(type)f(con)m(v)o(ersion)e(and)i (the)g(c\002tsio)h(e)o(xtension)e(to)i(unsigned)515 2274 y(data.)515 2421 y(User)d(k)o(e)o(yw)o(ords)e(can)i(be)g(added)f(to)h (the)g(PHDU)h(after)e(successful)h(construction)e(and)i(these)g(will) 515 2520 y(both)d(be)h(accessible)g(as)g(container)f(contents)g(in)h (the)g(in-memory)d(FITS)j(object)g(as)g(well)h(as)g(being)515 2620 y(written)g(to)g(disk)g(by)g(c\002tsio.)515 2767 y(Images)h(are)i(represented)d(by)i(the)g(standard)g(library)f(v)n (alarray)g(template)h(class)h(which)f(supports)515 2866 y(v)o(ectorized)h(operations)g(on)h(numeric)g(arrays)g(\(e.g.)38 b(taking)24 b(the)g(square)g(root)g(of)h(an)g(array\))e(and)515 2966 y(slicing)d(techniques.)515 3113 y(The)15 b(code)f(belo)n(w)h (also)h(illustrates)f(use)h(of)f(C++)h(standard)e(library)g (algorithms,)h(and)g(the)g(f)o(acilities)515 3212 y(pro)o(vided)i(by)j (the)g(std::v)n(alarray)f(class.)p 0 TeXcolorgray 0 TeXcolorgray 515 3422 a Fn(int)39 b(writeImage\(\))515 3500 y({)674 3658 y(//)h(Create)f(a)g(FITS)h(primary)e(array)i(containing)e(a)i(2-D) f(image)674 3737 y(//)h(declare)e(axis)i(arrays.)674 3816 y(long)f(naxis)159 b(=)119 b(2;)674 3895 y(long)39 b(naxes[2])g(=)h({)f(300,)h(200)f(};)674 4052 y(//)h(declare)e (auto-pointer)h(to)g(FITS)g(at)h(function)f(scope.)g(Ensures)f(no)i (resources)674 4131 y(//)g(leaked)f(if)g(something)g(fails)g(in)g (dynamic)g(allocation.)674 4210 y(std::auto_ptr)e(pFits\(0\);)674 4368 y(try)674 4447 y({)834 4526 y(//)i(overwrite)g(existing)f(file)i (if)f(the)g(file)h(already)f(exists.)834 4683 y(const)g(std::string)f (fileName\("!atestfil.fit"\);)834 4841 y(//)h(Create)g(a)h(new)f(FITS)g (object,)g(specifying)g(the)g(data)g(type)g(and)h(axes)f(for)h(the)794 4920 y(primary)834 4999 y(//)f(image.)g(Simultaneously)f(create)h(the)g (corresponding)f(file.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 14 19 TeXDict begin 14 18 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(6)20 b(Writing)g(Primary)g(Images)g(and)h (Image)f(Extensions)1042 b(14)p 515 236 2865 4 v 0 TeXcolorgray 834 602 a Fn(//)39 b(this)g(image)g(is)h(unsigned)f(short)g(data,)g (demonstrating)f(the)h(cfitsio)794 681 y(extension)834 760 y(//)g(to)h(the)f(FITS)g(standard.)834 917 y(pFits.reset\()f(new)h (FITS\(fileName)f(,)i(USHORT_IMG)e(,)i(naxis)f(,)g(naxes)h(\))f(\);)674 996 y(})674 1075 y(catch)g(\(FITS::CantCreate\))674 1154 y({)913 1233 y(//)h(...)f(or)h(not,)f(as)h(the)f(case)g(may)h(be.)913 1312 y(return)f(-1;)674 1391 y(})674 1548 y(//)h(references)e(for)h (clarity.)674 1706 y(long&)g(vectorLength)f(=)i(naxes[0];)674 1785 y(long&)f(numberOfRows)f(=)i(naxes[1];)674 1864 y(long)f(nelements\(1\);)674 2100 y(//)h(Find)f(the)g(total)g(size)h (of)f(the)h(array.)674 2179 y(//)g(this)f(is)g(a)h(little)f(fancier)g (than)g(necessary)g(\()g(It's)h(only)674 2258 y(//)g(calculating)e (naxes[0])1592 2270 y(*)1632 2258 y(naxes[1]\))f(but)i(it)h (demonstrates)78 b(use)39 b(of)h(the)674 2337 y(//)g(C++)f(standard)g (library)g(accumulate)f(algorithm.)674 2495 y(nelements)h(=)g (std::accumulate\(&naxes[0],&naxes[naxis],1,std:)o(:multip)o(lies)754 2574 y(\(\)\);)674 2731 y(//)h(create)f(a)g(new)h(image)f (extension)f(with)i(a)f(300x300)g(array)g(containing)g(float)g(data.) 674 2889 y(std::vector)e(extAx\(2,300\);)674 2968 y(string)i(newName)g(\("NEW-EXTENSION"\);)674 3047 y(ExtHDU)914 3059 y(*)993 3047 y(imageExt)g(=)g (pFits->addImage\(newName,FLOAT_IMG,extAx\);)674 3205 y(//)h(create)f(a)g(dummy)g(row)h(with)f(a)h(ramp.)f(Create)g(an)g (array)h(and)f(copy)g(the)h(row)f(to)674 3284 y(//)h(row-sized)e (slices.)h([also)g(demonstrates)f(the)i(use)f(of)h(valarray)e(slices].) 674 3362 y(//)i(also)f(demonstrate)f(implicit)h(type)g(conversion)f (when)i(writing)e(to)i(the)f(image:)674 3441 y(//)h(input)f(array)g (will)g(be)h(of)f(type)h(float.)674 3599 y(std::valarray)d (row\(vectorLength\);)674 3678 y(for)j(\(long)f(j)g(=)h(0;)g(j)f(<)h (vectorLength;)e(++j\))h(row[j])g(=)h(j;)674 3757 y(std::valarray) d(array\(nelements\);)674 3836 y(for)j(\(int)f(i)g(=)h(0;)g(i)f(<)h (numberOfRows;)e(++i\))674 3914 y({)834 3993 y (array[std::slice\(vectorLength)1994 4005 y(*)2034 3993 y(static_cast)o(\(i)o(\),vect)o(orLengt)o(h,1\)])c(=)754 4072 y(row)39 b(+)h(i;)674 4151 y(})674 4309 y(//)g(create)f(some)g (data)g(for)h(the)f(image)g(extension.)674 4388 y(long)g(extElements)g (=)g(std::accumulate\(extAx.begin\(\),extAx.end\(\),1,)754 4467 y(std::multiplies\(\)\);)674 4545 y(std::valarray)e (ranData\(extElements\);)674 4624 y(const)i(float)g(PIBY)h (\(M_PI/150.\);)674 4703 y(for)g(\()f(int)h(jj)f(=)h(0)g(;)f(jj)h(<)g (extElements)e(;)h(++jj\))674 4782 y({)993 4861 y(float)g(arg)g(=)h (PIBY)1631 4873 y(*)1671 4861 y(jj;)993 4940 y(ranData[jj])e(=)i (std::cos\(arg\);)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 15 20 TeXDict begin 15 19 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(7)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(an) i(Ascii)g(T)-8 b(able)21 b(Extension)968 b(15)p 515 236 2865 4 v 0 TeXcolorgray 674 523 a Fn(})674 681 y(long)79 b(fpixel\(1\);)674 839 y(//)40 b(write)f(the)g(image)g(extension)g (data:)g(also)g(demonstrates)f(switching)h(between)674 917 y(//)h(HDUs.)674 996 y (imageExt->write\(fpixel,extElements,ranData\);)674 1154 y(//add)f(two)h(keys)f(to)g(the)h(primary)f(header,)f(one)i(long,)f (one)g(complex.)674 1312 y(long)g(exposure\(1500\);)674 1391 y(std::complex)e(omega\(std::cos\(2)2111 1403 y(*)2151 1391 y(M_PI/3.\),std::sin\(2)2911 1403 y(*)2951 1391 y(M_PI/3\)\))o(;)674 1469 y (pFits->pHDU\(\).addKey\("EXPOSURE",)e(exposure,"Total)j(Exposure)g (Time"\);)674 1548 y(pFits->pHDU\(\).addKey\("OMEGA",omega,")d(Complex) j(cube)i(root)f(of)g(1)h("\);)674 1785 y(//)g(The)f(function)g(PHDU&)g (FITS::pHDU\(\))f(returns)h(a)g(reference)g(to)g(the)h(object)794 1864 y(representing)674 1943 y(//)g(the)f(primary)g(HDU;)g (PHDU::write\()f()h(\))h(is)f(then)h(used)f(to)g(write)h(the)f (data.)674 2100 y(pFits->pHDU\(\).write\(fpixel,nelements,array\);)674 2337 y(//)h(PHDU's)f(friend)g(ostream)f(operator.)h(Doesn't)g(print)g (the)g(entire)g(array,)g(just)g(the)674 2416 y(//)h(required)e(&)i (user)f(keywords,)g(and)g(is)h(provided)e(largely)h(for)h(testing)e (purposes)794 2495 y([see)674 2574 y(//)i(readImage\(\))e(for)h(an)h (example)f(of)g(how)h(to)f(output)g(the)h(image)f(array)g(to)g(a)794 2653 y(stream].)674 2810 y(std::cout)g(<<)g(pFits->pHDU\(\))f(<<)i (std::endl;)674 2968 y(return)f(0;)515 3047 y(})515 3185 y SDict begin H.S end 515 3185 a 515 3185 a SDict begin 12 H.A end 515 3185 a 515 3185 a SDict begin [ /View [/XYZ H.V] /Dest (section.7) cvn H.B /DEST pdfmark end 515 3185 a 0.25 TeXcolorgray 189 x Fs(7)107 b(Creating)25 b(and)f(Writing)h(to)f (an)h(Ascii)e(T)-7 b(ab)o(le)25 b(Extension)p 0 TeXcolorgray 0 TeXcolorgray 515 3607 a SDict begin H.S end 515 3607 a 0 TeXcolorgray 0 TeXcolorgray 515 3607 a SDict begin H.R end 515 3607 a 515 3607 a SDict begin [ /View [/XYZ H.V] /Dest (ascii) cvn H.B /DEST pdfmark end 515 3607 a 0 TeXcolorgray 23 w Fx(In)e(this)g(section)g(of)g(the)g(program)e(we) i(create)g(a)g(ne)n(w)g(T)-7 b(able)23 b(e)o(xtension)e(of)i(type)g (AsciiTbl,)g(and)515 3707 y(write)18 b(three)g(columns)f(with)h(6)g(ro) n(ws.)25 b(Then)17 b(we)h(add)g(another)f(cop)o(y)g(of)h(the)g(data)g (tw)o(o)h(ro)n(ws)f(do)n(wn)515 3806 y(\(starting)f(from)g(ro)n(w)h (3\))g(thus)g(o)o(v)o(erwriting)e(v)n(alues)i(and)f(creating)h(ne)n(w)g (ro)n(ws.)24 b(W)-7 b(e)19 b(test)g(the)f(use)h(of)515 3906 y(null)e(v)n(alues,)h(and)f(writing)g(a)h(date)f(string.)24 b(Implicit)17 b(data)h(con)m(v)o(ersion,)d(as)j(illustrated)g(for)f (images)515 4006 y(abo)o(v)o(e,)27 b(is)i(supported.)45 b(Ho)n(we)n(v)o(er)m(,)27 b(writing)g(numeric)f(data)i(as)g(character)e (data,)j(supported)d(by)515 4105 y(c\002tsio,)20 b(is)h Fm(not)g Fx(supported)d(by)p 0 0 1 TeXcolorrgb 1419 4106 a SDict begin H.S end 1419 4106 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1631 4049 a SDict begin H.R end 1631 4049 a 1631 4105 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1631 4105 a 0 TeXcolorgray Fx(.)515 4252 y(Note)26 b(the)g(basic)g(pattern)g (of)p 0 0 1 TeXcolorrgb 1381 4253 a SDict begin H.S end 1381 4253 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1594 4196 a SDict begin H.R end 1594 4196 a 1594 4252 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1594 4252 a 0 TeXcolorgray 26 w Fx(operations:)36 b(the)o(y)25 b(are)h(performed)e(on)i(an)g (object)f(of)h(type)515 4352 y(FITS.)f(Access)h(to)g(HDU)g(e)o (xtension)e(is)j(pro)o(vided)c(by)i(FITS::)36 b(member)24 b(functions)g(that)i(return)515 4451 y(references)d(or)i(pointers)f(to) i(objects)f(representing)e(HDUs.)40 b(Extension)24 b(are)h(ne)n(v)o(er) e(created)i(di-)515 4551 y(rectly)16 b(\(all)g(e)o(xtension)f(ctors)i (are)f(protected\),)f(b)n(ut)i(only)e(through)f(the)j(functions)e (FITS::addT)-7 b(able)515 4651 y(and)22 b(FITS::addImage)e(which)i(add) g(e)o(xtensions)f(to)i(an)f(e)o(xisting)g(FITS)h(object,)f(performing)e (the)515 4750 y(necessary)f(c\002tsio)i(calls.)515 4897 y(The)d(FITS::addT)-7 b(able)16 b(function)h(tak)o(es)h(as)h(one)f(of)g (its)h(last)g(ar)o(guments)d(a)i(HDU)h(T)-7 b(ype)18 b(parameter)m(,)515 4997 y(which)26 b(needs)g(to)g(be)h(AsciiTbl)f(or)g (BinTbl.)44 b(The)26 b(def)o(ault)f(is)j(to)e(create)g(a)h(BinT)-7 b(able)27 b(\(see)f(ne)o(xt)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 16 21 TeXDict begin 16 20 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(7)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(an) i(Ascii)g(T)-8 b(able)21 b(Extension)968 b(16)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(function\).)515 670 y(Similarly)-5 b(,)21 b(access)i(to)g(column)e(data)h(is)h(pro)o (vided)c(through)i(the)h(functions)f Ft(ExtHDU::Column)p Fx(,)515 770 y(which)e(return)g(references)g(to)h(columns)f (speci\002ed)g(by)h(name)f(or)h(inde)o(x)f(number)f(-)i(see)h(the)f (docu-)515 869 y(mentation)f(for)g(the)h(class)h(ExtHDU)f(for)g (details.)515 1016 y(addT)-7 b(able)22 b(returns)g(a)i(pointer)e(to)i (T)-7 b(able,)23 b(which)g(is)i(the)e(abstract)g(immediate)f (superclass)h(of)h(the)515 1116 y(concrete)30 b(classes)j(AsciiT)-7 b(able)32 b(and)f(BinT)-7 b(able,)34 b(whereas)e(addImage)d(returns)i (a)h(pointer)f(to)g(-)515 1215 y(ExtHDU,)25 b(which)f(is)j(the)e (abstract)g(base)h(class)g(of)f(all)h(FITS)g(e)o(xtensions.)39 b(These)25 b(base)g(classes)515 1315 y(implement)i(the)i(public)f (interf)o(ace)g(necessary)g(to)i(a)n(v)n(oid)e(the)h(user)g(of)f(the)h (library)f(needing)f(to)515 1415 y(do)n(wncast)19 b(to)h(a)h(concrete)e (type.)p 0 TeXcolorgray 0 TeXcolorgray 515 1615 a Fn(int)39 b(writeAscii)f(\(\))674 1773 y(//)754 1785 y (*******************************************)o(*******)o(******)o (*******)o(***)674 1851 y(//)i(Create)f(an)g(ASCII)g(Table)g(extension) g(containing)f(3)i(columns)f(and)g(6)h(rows)3344 1863 y(*)674 1930 y(//)754 1942 y (*******************************************)o(*******)o(******)o (*******)o(***)515 2009 y({)674 2088 y(//)g(declare)e(auto-pointer)h (to)g(FITS)g(at)h(function)f(scope.)g(Ensures)f(no)i(resources)674 2167 y(//)g(leaked)f(if)g(something)g(fails)g(in)g(dynamic)g (allocation.)674 2246 y(std::auto_ptr)e(pFits\(0\);)674 2403 y(try)674 2482 y({)834 2719 y(const)i(std::string)f (fileName\("atestfil.fit"\);)834 2877 y(//)h(append)g(the)g(new)h (extension)e(to)i(file)f(created)g(in)h(previous)e(function)h(call.)834 3034 y(//)g(CCfits)g(writing)g(constructor.)834 3192 y(//)g(if)h(this)f(had)g(been)h(a)f(new)h(file,)f(then)g(the)g (following)g(code)g(would)g(create)834 3271 y(//)g(a)h(dummy)f(primary) g(array)g(with)g(BITPIX=8)g(and)g(NAXIS=0.)834 3508 y(pFits.reset\()f (new)h(FITS\(fileName,Write\))e(\);)674 3587 y(})674 3665 y(catch)i(\(CCfits::FITS::CantOpen\))674 3744 y({)913 3823 y(//)h(...)f(or)h(not,)f(as)h(the)f(case)g(may)h(be.)913 3902 y(return)f(-1;)674 3981 y(})674 4139 y(unsigned)g(long)g (rows\(6\);)674 4218 y(string)g(hduName\("PLANETS_ASCII"\);)674 4296 y(std::vector)e(colName\(3,""\);)674 4375 y(std::vector)g(colForm\(3,""\);)674 4454 y (std::vector)g(colUnit\(3,""\);)674 4612 y(/)714 4624 y(*)794 4612 y(define)i(the)g(name,)g(datatype,)g(and)g(physical)g (units)g(for)g(the)h(3)f(columns)3344 4624 y(*)3384 4612 y(/)674 4691 y(colName[0])f(=)i("Planet";)674 4770 y(colName[1])e(=)i ("Diameter";)674 4848 y(colName[2])e(=)i("Density";)674 5006 y(colForm[0])e(=)i("a8";)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 17 22 TeXDict begin 17 21 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(7)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(an) i(Ascii)g(T)-8 b(able)21 b(Extension)968 b(17)p 515 236 2865 4 v 0 TeXcolorgray 674 523 a Fn(colForm[1])38 b(=)i("i6";)674 602 y(colForm[2])e(=)i("f4.2";)674 760 y(colUnit[0])e(=)i("";)674 839 y(colUnit[1])e(=)i("km";)674 917 y(colUnit[2])e(=)i("g/cm^-3";)674 1075 y(std::vector)d(planets\(rows\);)674 1233 y(const)i(char)1112 1245 y(*)1152 1233 y(planet[])g(=)h({"Mercury",)e ("Venus",)h("Earth",)1631 1312 y("Mars","Jupiter","Saturn"};)674 1391 y(const)g(char)1112 1403 y(*)1152 1391 y(mnemoy[])g(=)h({"Many",)e ("Volcanoes",)g("Erupt",)1631 1469 y ("Mulberry","Jam","Sandwiches","Under",)1790 1548 y ("Normal","Pressure"};)674 1706 y(long)h(diameter[])g(=)g({)80 b(4880,)159 b(12112,)238 b(12742,)119 b(6800,)158 b(143000,)754 1785 y(121000};)674 1864 y(float)39 b(density[])79 b(=)39 b({)h(5.1f,)199 b(5.3f,)238 b(5.52f,)119 b(3.94f,)158 b(1.33f,)h(0.69)754 1943 y(f};)674 2100 y(//)40 b(append)f(a)g(new)h (ASCII)f(table)g(to)h(the)f(fits)g(file.)g(Note)h(that)f(the)g(user)674 2179 y(//)h(cannot)f(call)g(the)g(Ascii)g(or)h(Bin)f(Table)g (constructors)g(directly)f(as)i(they)674 2258 y(//)g(are)f(protected.) 674 2416 y(Table)874 2428 y(*)953 2416 y(newTable)g(=)g (pFits->addTable\(hduName,rows,colName,colForm,co)o(lUnit,)754 2495 y(AsciiTbl\);)834 2574 y(size_t)f(j)i(=)g(0;)674 2653 y(for)g(\()f(;)h(j)g(<)f(rows;)g(++j\))h(planets[j])e(=)i (string\(planet[j]\);)674 2810 y(//)g(Table::column\(const)d (std::string&)h(name\))h(returns)g(a)g(reference)g(to)g(a)h(Column)794 2889 y(object)674 3047 y(try)674 3126 y({)834 3284 y (newTable->column\(colName[0]\).write\(planet)o(s,1\);)834 3362 y(newTable->column\(colName[1]\).write\(diamet)o(er,rows)o(,1\);) 834 3441 y(newTable->column\(colName[2]\).write\(densit)o(y,rows,)o (1\);)674 3599 y(})674 3678 y(catch)f(\(FitsException&\))674 3757 y({)873 3836 y(//)h(ExtHDU::column)e(could)h(in)g(principle)g (throw)g(a)h(NoSuchColumn)e(exception,)873 3914 y(//)i(or)f(some)h (other)f(fits)g(error)g(may)h(ensue.)873 3993 y(std::cerr)f(<<)g(")h (Error)f(in)h(writing)f(to)g(columns)g(-)h(check)f(e.g.)g(that)g (columns)794 4072 y(of)g(specified)g(name)g(")1471 4151 y(<<)h(")f(exist)h(in)f(the)g(extension)g(\\n";)674 4309 y(})674 4467 y(//)80 b(FITSUtil::auto_array_ptr)35 b(is)40 b(provided)f(to)g(counter)g(resource)g(leaks)g(that)674 4545 y(//)80 b(may)39 b(arise)g(from)g(C-arrays.)g(It)g(is)h(a)g (std::auto_ptr)d(analog)i(that)g(calls)674 4624 y(//)80 b(delete[])38 b(instead)h(of)h(delete.)674 4782 y (FITSUtil::auto_array_ptr)75 b(pDiameter\(new)38 b(long[rows]\);)674 4861 y(FITSUtil::auto_array_ptr)75 b(pDensity\(new)38 b(float[rows]\);)674 4940 y(long)834 4952 y(*)913 4940 y(Cdiameter)h(=)g(pDiameter.get\(\);)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 18 23 TeXDict begin 18 22 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(7)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(an) i(Ascii)g(T)-8 b(able)21 b(Extension)968 b(18)p 515 236 2865 4 v 0 TeXcolorgray 674 523 a Fn(float)874 535 y(*)993 523 y(Cdensity)39 b(=)g(pDensity.get\(\);)674 681 y(Cdiameter[0])f(=)i (4880;)f(Cdiameter[1])f(=)i(12112;)f(Cdiameter[2])f(=)h(12742;)g (Cdiameter[)754 760 y(3])g(=)h(6800;)674 839 y(Cdiameter[4])e(=)i (143000;)f(Cdiameter[5])f(=)h(121000;)674 996 y(Cdensity[0])f(=)i (5.1f;)79 b(Cdensity[1])38 b(=)i(5.3f;)79 b(Cdensity[2])38 b(=)i(5.52f;)834 1075 y(Cdensity[3])e(=)h(3.94f;)g(Cdensity[4])g(=)g (1.33f;)g(Cdensity[5])f(=)i(0.69;)674 1233 y(//)g(this)f(<<)g(operator) g(outputs)g(everything)f(that)i(has)f(been)g(read.)674 1391 y(std::cout)g(<<)1192 1403 y(*)1232 1391 y(newTable)g(<<)g (std::endl;)674 1548 y(pFits->pHDU\(\).addKey\("NEWVALUE",42,")c(Test)k (of)g(adding)g(keyword)g(to)h(different)794 1627 y(extension"\);)834 1785 y(pFits->pHDU\(\).addKey\("STRING",std::string)o(\(")34 b(Rope)39 b("\),"trailing)f(blank)794 1864 y(test)h(1)h("\);)834 2022 y(pFits->pHDU\(\).addKey\("STRING2",std::strin)o(g\("Cord)o ("\),"tr)o(ailing)33 b(blank)40 b(test)794 2100 y(2)f("\);)674 2179 y(//)h(demonstrate)e(increaing)g(number)h(of)h(rows)f(and)h(null)f (values.)674 2258 y(long)g(ignoreVal\(12112\);)674 2337 y(long)g(nullNumber\(-999\);)674 2416 y(try)674 2495 y({)834 2574 y(//)g(add)g(a)h(TNULLn)f(value)g(to)h(column)f(2.)834 2653 y(newTable->column\(colName[1]\).addNullValue)o(\(nullNu)o (mber\);)834 2731 y(//)g(test)g(that)h(writing)e(new)i(data)f(properly) g(expands)g(the)g(number)g(of)g(rows)834 2810 y(//)g(in)h(both)f(the)g (file]\).write\(planets,rows-3\);)834 2889 y (newTable->column\(colName[2]\).write\(densit)o(y,rows,)o(rows-3)o(\);) 834 2968 y(//)g(test)g(the)h(undefined)e(value)h(functionality.)f (Undefineds)g(are)i(replaced)f(on)834 3047 y(//)g(disk)g(but)h(not)f (in)h(the)f(memory)g(copy.)834 3126 y (newTable->column\(colName[1]\).write\(diamet)o(er,rows)o(,rows-)o (3,&igno)o(reVal\);)674 3205 y(})674 3284 y(catch)g(\(FitsException&\)) 674 3362 y({)993 3441 y(//)g(this)h(time)f(we're)g(going)g(to)h(ignore) f(problems)f(in)i(these)f(operations)674 3599 y(})674 3757 y(//)h(output)f(header)g(information)f(to)h(check)g(that)h (everything)e(we)i(did)f(so)h(far)674 3836 y(//)g(hasn't)f(corrupted)f (the)i(file.)674 3993 y(std::cout)f(<<)g(pFits->pHDU\(\))f(<<)i (std::endl;)674 4230 y(std::vector)d(mnemon\(9\);)674 4309 y(for)j(\()f(j)h(=)g(0;)f(j)h(<)g(9;)f(++j\))g(mnemon[j])g(=)h (string\(mnemoy[j]\);)674 4467 y(//)g(Add)f(a)h(new)f(column)g(of)h (string)f(type)g(to)g(the)h(Table.)674 4545 y(//)g(type,)79 b(columnName,)38 b(width,)h(units.)g([optional)f(-)i(decimals,)e (column)h(number])674 4624 y(//)h(decimals)e(is)i(only)f(relevant)g (for)g(floatingpoint)f(data)h(in)h(ascii)f(columns.)674 4703 y(newTable->addColumn\(Tstring,"Mnemonic",10,")34 b(words)39 b("\);)674 4782 y (newTable->column\("Mnemonic"\).write\(mnemon,1\);)674 4940 y(//)h(write)f(the)g(data)g(string.)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 19 24 TeXDict begin 19 23 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(8)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(a)i (Binary)f(T)-8 b(able)21 b(Extension)945 b(19)p 515 236 2865 4 v 0 TeXcolorgray 674 523 a Fn(newTable->writeDate\(\);)674 681 y(//)40 b(and)f(see)g(if)h(it)g(all)f(worked)g(right.)674 760 y(std::cout)g(<<)1192 772 y(*)1232 760 y(newTable)g(<<)g (std::endl;)674 917 y(return)g(0;)515 996 y(})515 1134 y SDict begin H.S end 515 1134 a 515 1134 a SDict begin 12 H.A end 515 1134 a 515 1134 a SDict begin [ /View [/XYZ H.V] /Dest (section.8) cvn H.B /DEST pdfmark end 515 1134 a 0.25 TeXcolorgray 189 x Fs(8)107 b(Creating)25 b(and)f(Writing)h(to)f (a)h(Binar)q(y)f(T)-7 b(ab)o(le)24 b(Extension)p 0 TeXcolorgray 0 TeXcolorgray 515 1556 a SDict begin H.S end 515 1556 a 0 TeXcolorgray 0 TeXcolorgray 515 1556 a SDict begin H.R end 515 1556 a 515 1556 a SDict begin [ /View [/XYZ H.V] /Dest (binary) cvn H.B /DEST pdfmark end 515 1556 a 0 TeXcolorgray 21 w Fx(The)d(Binary)g(T)-7 b(able)21 b(interf)o(ace)f(is)j(more)d(comple)o(x)f(because)i(there)g(is)h(an)f (additional)f(parameter)m(,)515 1655 y(the)j(v)o(ector)f(size)h(of)g (each)g(`cell')f(in)i(the)f(table,)g(the)g(need)f(to)i(support)d(v)n (ariable)h(width)h(columns,)515 1755 y(and)c(the)i(desirability)e(of)h (supporting)e(the)i(input)f(of)h(data)g(in)h(v)n(arious)e(formats.)515 1902 y(The)d(interf)o(ace)g(supports)f(writing)h(to)h(v)o(ector)e (tables)i(the)g(follo)n(wing)e(data)h(structures:)23 b(C-arrays)16 b(\(-)515 2002 y(T)p Fp(\003)p Fx(\),)g(std::v)o(ector)p Fu(<)p Fx(T)p Fu(>)f Fx(objects,)i(std::v)n(alarray)p Fu(<)p Fx(T)p Fu(>)d Fx(objects,)j(and)g(std::v)o(ector)p Fu(<)p Fx(v)n(alarray)p Fu(<)p Fx(T)p Fu(>)515 2101 y(>)p Fx(.)25 b(The)20 b(last)h(of)f(these)g(is)h(the)f(internal)g (representation)e(of)i(the)g(data.)515 2248 y(The)g(function)e(belo)n (w)i(e)o(x)o(ercises)f(the)h(follo)n(wing)f(functionality:)p 0 TeXcolorgray 652 2474 a(\225)p 0 TeXcolorgray 41 w(Create)i(a)f(BinT) -7 b(able)20 b(e)o(xtension)p 0 TeXcolorgray 652 2638 a(\225)p 0 TeXcolorgray 41 w(Write)h(v)o(ector)e(ro)n(ws)h(to)g(the)h (table)p 0 TeXcolorgray 652 2803 a(\225)p 0 TeXcolorgray 41 w(Insert)f(table)g(ro)n(ws)p 0 TeXcolorgray 652 2967 a(\225)p 0 TeXcolorgray 41 w(Write)h(comple)o(x)e(data)h(to)g(both)f (scalar)i(and)e(v)o(ector)g(columns.)p 0 TeXcolorgray 652 3132 a(\225)p 0 TeXcolorgray 41 w(Insert)h(T)-7 b(able)20 b(columns)p 0 TeXcolorgray 652 3296 a(\225)p 0 TeXcolorgray 41 w(Delete)h(T)-7 b(able)20 b(ro)n(ws)p 0 TeXcolorgray 652 3460 a(\225)p 0 TeXcolorgray 41 w(Write)h(HISTORY)g(and)e(COMMENT)h (cards)g(to)h(the)f(T)-7 b(able)p 0 TeXcolorgray 0 TeXcolorgray 515 3665 a Fn(int)39 b(writeBinary)f(\(\))674 3823 y(//)754 3835 y(*******************************************)o(*******)o(******)o (*******)o(******)674 3902 y(//)i(Create)f(a)g(BINARY)g(table)g (extension)g(and)g(write)g(and)h(manipulate)e(vector)h(rows)674 3981 y(//)754 3993 y(*******************************************)o (*******)o(******)o(*******)o(******)515 4060 y({)674 4139 y(std::auto_ptr)e(pFits\(0\);)674 4296 y(try)674 4375 y({)834 4533 y(const)i(std::string)f(fileName\("atestfil.fit"\);) 834 4612 y(pFits.reset\()g(new)h(FITS\(fileName,Write\))e(\);)674 4691 y(})674 4770 y(catch)i(\(CCfits::FITS::CantOpen\))674 4848 y({)913 4927 y(return)g(-1;)674 5006 y(})p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 20 25 TeXDict begin 20 24 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.20) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(8)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(a)i (Binary)f(T)-8 b(able)21 b(Extension)945 b(20)p 515 236 2865 4 v 0 TeXcolorgray 674 681 a Fn(unsigned)39 b(long)g(rows\(3\);) 674 760 y(string)g(hduName\("TABLE_BINARY"\);)674 839 y(std::vector)e(colName\(7,""\);)674 917 y(std::vector) g(colForm\(7,""\);)674 996 y(std::vector)g(colUnit\(7,""\);)674 1233 y(colName[0])h(=)i("numbers";)674 1312 y(colName[1])e(=)i ("sequences";)674 1391 y(colName[2])e(=)i("powers";)674 1469 y(colName[3])e(=)i("big-integers";)674 1548 y(colName[4])e(=)i ("dcomplex-roots";)674 1627 y(colName[5])e(=)i("fcomplex-roots";)674 1706 y(colName[6])e(=)i("scalar-complex";)674 1864 y(colForm[0])e(=)i ("8A";)674 1943 y(colForm[1])e(=)i("20J";)674 2022 y(colForm[2])e(=)i ("20D";)674 2100 y(colForm[3])e(=)i("20V";)674 2179 y(colForm[4])e(=)i ("20M";)674 2258 y(colForm[5])e(=)i("20C";)674 2337 y(colForm[6])e(=)i ("1M";)674 2495 y(colUnit[0])e(=)i("magnets";)674 2574 y(colUnit[1])e(=)i("bulbs";)674 2653 y(colUnit[2])e(=)i("batteries";) 674 2731 y(colUnit[3])e(=)i("mulberries";)674 2810 y(colUnit[4])e(=)i ("";)674 2889 y(colUnit[5])e(=)i("";)674 2968 y(colUnit[6])e(=)i("pico) f(boo";)674 3126 y(std::vector)e(numbers\(rows\);)674 3284 y(const)i(string)g(num\("NUMBER-"\);)674 3362 y(for)h(\(size_t)e (j)i(=)g(0;)f(j)h(<)g(rows;)f(++j\))674 3441 y({)515 3520 y(#ifdef)g(HAVE_STRSTREAM)834 3599 y(std::ostrstream)e(pStr;)515 3678 y(#else)834 3757 y(std::ostringstream)g(pStr;)515 3836 y(#endif)834 3914 y(pStr)i(<<)g(num)h(<<)f(j+1;)834 3993 y(numbers[j])f(=)i(string\(pStr.str\(\)\);)674 4072 y(})674 4230 y(const)f(size_t)g(OFFSET\(20\);)674 4388 y(//)h(write)f(operations)f(take)h(in)h(data)f(as)h(valarray,)e (vector)g(,)i(and)674 4467 y(//)g(vector)d(>,)i(and)h(T) 1870 4479 y(*)1949 4467 y(C-arrays.)f(Create)g(arrays)g(to)g(exercise)g (the)g(C++)674 4545 y(//)h(containers.)e(Check)h(complex)g(I/O)g(for)h (both)f(float)g(and)g(double)g(complex)g(types.)674 4703 y(std::valarray)e(sequence\(60\);)674 4782 y(std::vector)g (sequenceVector\(60\);)674 4861 y(std::vector)e(>) 40 b(sequenceVV\(3\);)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 21 26 TeXDict begin 21 25 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.21) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(8)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(a)i (Binary)f(T)-8 b(able)21 b(Extension)945 b(21)p 515 236 2865 4 v 0 TeXcolorgray 674 602 a Fn(for)40 b(\(size_t)e(j)i(=)g(0;)f (j)h(<)g(rows;)f(++j\))674 681 y({)834 839 y(sequence[OFFSET)1434 851 y(*)1474 839 y(j])e(=)i(1)h(+)g(j;)834 917 y(sequence[OFFSET)1434 929 y(*)1474 917 y(j+1])c(=)k(1)g(+)g(j;)834 996 y (sequenceVector[OFFSET)1674 1008 y(*)1714 996 y(j])c(=)k (sequence[OFFSET)2510 1008 y(*)2550 996 y(j];)834 1075 y(sequenceVector[OFFSET)1674 1087 y(*)1714 1075 y(j+1])c(=)j (sequence[OFFSET)2589 1087 y(*)2629 1075 y(j+1];)834 1154 y(//)g(generate)g(Fibonacci)f(numbers.)834 1233 y(for)h(\(size_t)g(i)g(=)h(2;)g(i)f(<)h(OFFSET;)f(++i\))834 1312 y({)1152 1391 y(size_t)g(elt)h(\(OFFSET)1871 1403 y(*)1911 1391 y(j)e(+i\);)1152 1469 y(sequence[elt])g(=)i (sequence[elt-1])e(+)h(sequence[elt)f(-)i(2];)1152 1548 y(sequenceVector[elt])d(=)j(sequence[elt])e(;)834 1627 y(})834 1706 y(sequenceVV[j].resize\(OFFSET\);)834 1785 y(sequenceVV[j])f(=)j(sequence[std::slice\(OFFSET)2511 1797 y(*)2551 1785 y(j,OFFSET,1\)];)674 1943 y(})674 2179 y(std::valarray)i(unsignedData\(60\);)674 2258 y(unsigned)g(long)g(base)g(\(1)h(<<)f(31\);)674 2337 y(std::valarray)e(powers\(60\);)674 2416 y(std::vector)g(powerVector\(60\);)674 2495 y (std::vector)e(>)40 b(powerVV\(3\);)674 2574 y(std::valarray)35 b(>)40 b(croots\(60\);)674 2653 y(std::valarray)35 b(>)40 b(fcroots\(60\);)674 2731 y(std::vector)35 b(>)40 b (fcroots_vector\(60\);)674 2810 y (std::vector)33 b(>)40 b(>)g(fcrootv\(3\);)674 2968 y(//)g(create)f(complex)f(data)i(as)f (60th)h(roots)f(of)g(unity.)674 3047 y(double)g(PIBY)g(=)h(M_PI/30.;) 674 3205 y(for)g(\(size_t)e(j)i(=)g(0;)f(j)h(<)g(rows;)f(++j\))674 3284 y({)834 3362 y(for)g(\(size_t)g(i)g(=)h(0;)g(i)f(<)h(OFFSET;)f (++i\))834 3441 y({)1152 3520 y(size_t)g(elt)h(\(OFFSET)1871 3532 y(*)1911 3520 y(j+i\);)1152 3599 y(unsignedData[elt])e(=)h (sequence[elt];)1152 3678 y(croots[elt])g(=)g (std::complex\(std::cos\(PIBY)3070 3690 y(*)3110 3678 y(elt\),std::s)o(in\()754 3757 y(PIBY)914 3769 y(*)954 3757 y(elt\)\);)1152 3836 y(fcroots[elt])f(=)i (std::complex\(croots[elt].real\(\),croots)o([)754 3914 y(elt].imag\(\)\);)1152 3993 y(double)f(x)h(=)g(i+1;)1152 4072 y(powers[elt])f(=)g(pow\(x,j+1\);)1152 4151 y(powerVector[elt])f (=)i(powers[elt];)834 4230 y(})834 4309 y(powerVV[j].resize\(OFFSET\);) 834 4388 y(powerVV[j])e(=)i(powers[std::slice\(OFFSET)2312 4400 y(*)2352 4388 y(j,OFFSET,1\)];)674 4467 y(})674 4624 y(FITSUtil::fill\(fcroots_vector,fcroots[std::sl)o(ice\(0,2)o (0,1\)]\))o(;)674 4782 y(unsignedData)e(+=)i(base;)674 4861 y(//)g(syntax)f(identical)f(to)i(Binary)f(Table)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 22 27 TeXDict begin 22 26 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.22) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(8)20 b(Cr)o(eating)f(and)h(Writing)h(to)e(a)i (Binary)f(T)-8 b(able)21 b(Extension)945 b(22)p 515 236 2865 4 v 0 TeXcolorgray 674 523 a Fn(Table)874 535 y(*)953 523 y(newTable)39 b(=)g (pFits->addTable\(hduName,rows,colName,colForm,co)o(lUnit\);)674 681 y(//)h(numbers)e(is)i(a)g(scalar)f(column)674 839 y(newTable->column\(colName[0]\).write\(numbers,1\))o(;)674 996 y(//)h(write)f(valarrays)f(to)i(vector)f(column:)g(note)g (signature)f(change)674 1075 y (newTable->column\(colName[1]\).write\(sequence,r)o(ows,1\);)674 1154 y(newTable->column\(colName[2]\).write\(powers,row)o(s,1\);)674 1233 y(newTable->column\(colName[3]\).write\(unsignedDa)o(ta,rows)o (,1\);)674 1312 y(newTable->column\(colName[4]\).write\(croots,row)o (s,1\);)674 1391 y(newTable->column\(colName[5]\).write\(fcroots,ro)o (ws,3\);)674 1469 y(newTable->column\(colName[6]\).write\(fcroots_ve)o (ctor,1\))o(;)674 1548 y(//)i(write)f(vectors)g(to)g(column:)g(note)g (signature)g(change)674 1706 y (newTable->column\(colName[1]\).write\(sequenceVe)o(ctor,ro)o(ws,4\);) 674 1785 y(newTable->column\(colName[2]\).write\(powerVecto)o(r,rows,)o (4\);)674 1943 y(std::cout)g(<<)1192 1955 y(*)1232 1943 y(newTable)g(<<)g(std::endl;)674 2100 y(for)h(\(size_t)e(j)i(=)g(0;)f (j)h(<)g(3)f(;)80 b(++j\))674 2179 y({)993 2258 y (fcrootv[j].resize\(20\);)993 2337 y(fcrootv[j])38 b(=)i (fcroots[std::slice\(20)2351 2349 y(*)2391 2337 y(j,20,1\)];)674 2416 y(})674 2574 y(//)g(write)f(vector)e(object)i(to)h (column.)674 2731 y(newTable->column\(colName[1]\).writeArrays\(sequ)o (enceVV,)o(7\);)674 2810 y (newTable->column\(colName[2]\).writeArrays\(powe)o(rVV,7\);)674 3126 y(//)g(create)f(a)g(new)h(vector)f(column)g(in)g(the)h(Table)674 3362 y(newTable->addColumn\(Tfloat,"powerSeq",20,"non)o(e"\);)674 3520 y(//)g(add)f(data)g(entries)g(to)h(it.)674 3678 y(newTable->column\("powerSeq"\).writeArrays\(powe)o(rVV,1\);)674 3757 y(newTable->column\("powerSeq"\).write\(powerVecto)o(r,rows,)o (4\);)674 3836 y(newTable->column\("dcomplex-roots"\).write\(croo)o (ts,rows)o(,4\);)674 3914 y (newTable->column\("powerSeq"\).write\(sequenceVe)o(ctor,ro)o(ws,7\);) 674 4151 y(std::cout)f(<<)1192 4163 y(*)1232 4151 y(newTable)g(<<)g (std::endl;)674 4309 y(//)h(delete)f(one)g(of)h(the)f(original)g (columns.)674 4624 y(newTable->deleteColumn\(colName[2]\);)674 4861 y(//)h(add)f(a)h(new)f(set)h(of)f(rows)g(starting)g(after)g(row)h (3.)f(So)h(we'll)f(have)g(14)h(with)674 4940 y(//)g(rows)f(4,5,6,7,8)f (blank)p 0 TeXcolorgray 515 5156 V 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 23 28 TeXDict begin 23 27 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.23) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(9)20 b(Copying)g(an)g(Extension)g(between)h (Files)1441 b(23)p 515 236 2865 4 v 0 TeXcolorgray 674 602 a Fn(newTable->insertRows\(3,5\);)674 760 y(//)40 b(now,)f(in)g(the)h(new)f(column,)g(write)g(3)h(rows)f (\(sequenceVV.size\(\))e(=)j(3\).)f(This)674 839 y(//)h(will)f(place)g (data)g(in)h(rows)f(3,4,5)g(of)h(this)f(column,overwriting)e(them.)674 996 y(newTable->column\("powerSeq"\).writeArrays\(sequ)o(enceVV,)o (3\);)674 1075 y(newTable->column\("fcomplex-roots"\).writeArray)o (s\(fcroo)o(tv,3\);)674 1233 y(//)j(delete)f(3)g(rows)h(starting)e (with)i(row)f(2.)g(A)h(Table::)f(method,)g(so)g(the)h(same)674 1312 y(//)g(code)f(is)g(called)g(for)h(all)f(Table)g(objects.)g(We)h (should)f(now)g(have)g(11)h(rows.)674 1469 y (newTable->deleteRows\(2,3\);)674 1627 y(//add)f(a)h(history)f(string.) g(This)g(function)f(call)i(is)f(in)h(HDU::)f(so)g(is)h(identical)674 1706 y(//for)f(all)h(HDUs)674 1864 y(string)f(hist\("This)f(file)i(was) f(created)g(for)g(testing)g(CCfits)g(write)g(functionality"\))754 1943 y(;)674 2022 y(hist)g(+=)h(")g(it)f(serves)g(no)h(other)f(useful)g (purpose.)f(This)i(particular)e(part)h(of)h(the)794 2100 y(file)f(was)g(";)674 2179 y(hist)g(+=)h(")g(constructed)e(to)h(test)h (the)f(writeHistory\(\))f(and)h(writeComment\(\))794 2258 y(functionality")e(;)674 2495 y(newTable->writeHistory\(hist\);) 674 2653 y(//)j(add)f(a)h(comment)f(string.)f(Use)i(std::string)e (method)h(to)h(change)e(the)i(text)f(in)h(the)794 2731 y(message)674 2810 y(//)g(and)f(write)g(the)h(previous)e(junk)i(as)f(a) h(comment.)674 2968 y(hist.insert\(0,)e(")i(COMMENT)e(TEST)i("\);)674 3126 y(newTable->writeComment\(hist\);)674 3284 y(//)g(...)f(print)g (the)h(result.)674 3441 y(std::cout)f(<<)1192 3453 y(*)1232 3441 y(newTable)g(<<)g(std::endl;)674 3599 y(return)g(0;)515 3678 y(})515 3816 y SDict begin H.S end 515 3816 a 515 3816 a SDict begin 12 H.A end 515 3816 a 515 3816 a SDict begin [ /View [/XYZ H.V] /Dest (section.9) cvn H.B /DEST pdfmark end 515 3816 a 0.25 TeXcolorgray 189 x Fs(9)107 b(Cop)o(ying)24 b(an)g(Extension)g(between)h(Files)p 0 TeXcolorgray 0 TeXcolorgray 515 4238 a SDict begin H.S end 515 4238 a 0 TeXcolorgray 0 TeXcolorgray 515 4238 a SDict begin H.R end 515 4238 a 515 4238 a SDict begin [ /View [/XYZ H.V] /Dest (copy) cvn H.B /DEST pdfmark end 515 4238 a 0 TeXcolorgray 27 w Fx(Cop)o(ying)h(e)o(xtensions)g (from)g(one)g(\002ts)i(\002le)f(to)h(another)d(is)j(v)o(ery)e (straightforw)o(ard.)42 b(A)28 b(compli-)515 4338 y(cation)d(arises,)j (ho)n(we)n(v)o(er)m(,)d(because)p 0 0 1 TeXcolorrgb 1597 4339 a SDict begin H.S end 1597 4339 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1810 4281 a SDict begin H.R end 1810 4281 a 1810 4338 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1810 4338 a 0 TeXcolorgray 26 w Fx(requires)g(e)n(v)o(ery)g(FITS)h (object)f(to)i(correspond)c(to)j(a)515 4437 y(conforming)20 b(FITS)j(\002le)h(once)e(constructed.)32 b(Thus)23 b(we)h(pro)o(vide)d (a)i(custom)g(constructor)e(which)515 4537 y(copies)d(the)h(primary)e (HDU)i(of)g(a)g(\223source")f(FITS)h(\002le)g(into)g(a)g(ne)n(w)f (\002le.)26 b(Subsequent)17 b(e)o(xtensions)515 4637 y(can)j(be)g(copied)f(by)h(name)f(or)h(e)o(xtension)f(number)f(as)j (illustrated)f(belo)n(w)-5 b(.)515 4783 y(Note)20 b(that)g(the)g (simple)h(call)p 0 TeXcolorgray 0 TeXcolorgray 515 4993 a Fn(FITS::FITS\(const)37 b(std::string&)h(filename\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 24 29 TeXDict begin 24 28 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.24) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(10)20 b(Selecting)f(T)-8 b(able)22 b(Data)1950 b(24)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(Reads)21 b(the)f(headers)g(for)f(all)i(of)f(the)h(e)o (xtensions)e(in)i(the)f(\002le,)h(so)g(that)f(after)g(the)g(FITS)h (object)f(cor)n(-)515 623 y(responding)f(to)i Ft(in\002le)g Fx(in)h(the)f(follo)n(wing)f(code)h(is)h(instantiated,)f(all)h(e)o (xtensions)e(are)i(recognized)515 722 y([)o(read)e(calls)h(are)f(also)h (pro)o(vided)c(to)k(read)e(only)h(speci\002c)g(HDUs)h(-)f(see)h(belo)n (w])n(.)515 869 y(In)j(the)h(e)o(xample)e(code)h(belo)n(w)-5 b(,)24 b(the)h(\002le)g(outFile)f(is)i(written)e(straight)g(to)h(disk.) 38 b(Since)25 b(the)f(code)515 969 y(ne)n(v)o(er)e(requests)g(that)h (the)h(HDUs)f(being)g(written)g(to)g(that)g(\002le)h(are)f(read,)g(the) g(user)g(needs)g(to)g(add)515 1068 y(statements)d(to)g(do)g(this)h (after)f(the)g(cop)o(y)f(is)i(complete.)p 0 TeXcolorgray 0 TeXcolorgray 515 1277 a Fn(int)39 b(copyHDU\(\))515 1356 y({)674 1435 y(//)754 1447 y (*******************************************)o(*******)o(******)o (*******)o(***)674 1514 y(//)h(copy)f(the)g(1st)h(and)f(3rd)h(HDUs)f (from)g(the)g(input)h(file)f(to)g(a)h(new)f(FITS)h(file)674 1593 y(//)754 1605 y(*******************************************)o (*******)o(******)o(*******)o(***)674 1829 y(const)f(string)g (inFileName\("atestfil.fit"\);)674 1908 y(const)g(string)g (outFileName\("btestfil.fit"\);)674 2066 y(int)h(status\(0\);)674 2224 y(status)f(=)h(0;)674 2381 y(remove\(outFileName.c_str\(\)\);)275 b(//)39 b(Delete)g(old)h(file)f(if)h(it)f(already)g(exists)674 2539 y(//)h(open)f(the)g(existing)g(FITS)g(file)674 2618 y(FITS)g(inFile\(inFileName\);)674 2776 y(//)h(custom)f(constructor)f (FITS::FITS\(const)f(string&,)i(const)g(FITS&\))g(for)674 2855 y(//)h(this)f(particular)f(task.)674 3012 y(FITS)h (outFile\(outFileName,inFile\);)674 3170 y(//)h(copy)f(extension)f(by)i (number...)674 3249 y(outFile.copy\(inFile.extension\(2\)\);)674 3407 y(//)g(copy)f(extension)f(by)i(name...)674 3486 y(outFile.copy\(inFile.extension\("TABLE_BINARY"\))o(\);)634 3643 y(return)f(0;)555 3801 y(})515 3939 y SDict begin H.S end 515 3939 a 515 3939 a SDict begin 12 H.A end 515 3939 a 515 3939 a SDict begin [ /View [/XYZ H.V] /Dest (section.10) cvn H.B /DEST pdfmark end 515 3939 a 0.25 TeXcolorgray 189 x Fs(10)107 b(Selecting)24 b(T)-7 b(ab)o(le)25 b(Data)p 0 TeXcolorgray 0 TeXcolorgray 515 4361 a SDict begin H.S end 515 4361 a 0 TeXcolorgray 0 TeXcolorgray 515 4361 a SDict begin H.R end 515 4361 a 515 4361 a SDict begin [ /View [/XYZ H.V] /Dest (filter) cvn H.B /DEST pdfmark end 515 4361 a 0 TeXcolorgray 30 w Fx(This)30 b(function)e (demonstrates)h(the)g(operation)f(of)i(\002ltering)f(a)h(table)g(by)f (selecting)h(ro)n(ws)f(that)515 4461 y(satisfy)16 b(a)h(condition)e (and)g(writing)h(them)g(to)g(a)h(ne)n(w)f(\002le,)h(or)f(o)o(v)o (erwriting)e(a)j(table)f(with)h(the)f(\002ltered)515 4560 y(data.)23 b(A)17 b(third)f(mode,)g(where)g(a)h(\002ltered)f (dataset)h(is)g(appended)d(to)j(the)f(\002le)h(containing)e(the)h (source)515 4660 y(data,)k(will)g(be)h(a)n(v)n(ailable)e(shortly)-5 b(,)19 b(b)n(ut)h(is)h(currently)e(not)h(supported)e(by)i(c\002tsio.) 515 4807 y(The)32 b(e)o(xpression)e(syntax)i(for)f(the)h(conditions)f (that)h(may)g(be)g(applied)f(to)i(table)f(data)g(are)g(de-)515 4907 y(scribed)21 b(in)h(the)p 0 1 0 0 TeXcolorcmyk 988 4908 a SDict begin H.S end 988 4908 a 0 1 0 0 TeXcolorcmyk -1 x Fr(cfitsio)48 b(manual.)p 0 1 0 0 TeXcolorcmyk 1735 4854 a SDict begin H.R end 1735 4854 a 1735 4907 a SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype /URI /URI (http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html) >> /Subtype /Link H.B /ANN pdfmark end 1735 4907 a 0 TeXcolorgray 22 w Fx(In)22 b(the)g(e)o(xample)e(belo)n(w)-5 b(,)21 b(we)h(illustrate)g (\002ltering)f(with)515 5006 y(a)f(boolean)f(e)o(xpression)g(in)m(v)n (olving)f(one)h(of)h(the)g(columns.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 25 30 TeXDict begin 25 29 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.25) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(11)20 b(Reading)f(Header)h(inf)n(ormation)f (fr)o(om)h(a)g(HDU)1193 b(25)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(The)22 b(tw)o(o)h(\003ags)f(at)h(the)g(end)f(of)g(the)g (call)h(to)g(FITS::\002lter)g(are)f(an)g(`o)o(v)o(erwrite')e(\003ag)j (-)f(which)g(only)515 623 y(has)d(meaning)e(if)j(the)f(inFile)g(and)f (outFile)h(are)g(the)g(same,)g(and)f(a)i(')l(read')d(\003ag.)25 b(o)o(v)o(erwrite)17 b(def)o(aults)515 722 y(to)k(true.)29 b(The)21 b(second)f(\003ag)i(is)g(a)g(')l(read')e(\003ag)i(which)f(def) o(aults)g(to)g(f)o(alse.)30 b(When)21 b(set)h(true)f(the)h(user)515 822 y(has)e(immediate)f(access)i(to)g(the)f(\002ltered)g(data.)515 969 y(\(Also)g(see)h(the)f(section)g("Reading)f(with)i(Extended)d(File) j(Name)f(Syntax"\))p 0 TeXcolorgray 0 TeXcolorgray 515 1178 a Fn(int)39 b(selectRows\(\))555 1257 y({)873 1336 y(const)g(string)g(inFile\("atestfil.fit"\);)873 1415 y(const)g(string)g(outFile\("btestfil.fit"\);)873 1493 y(const)g(string)g(newFile\("ctestfil.fit"\);)873 1572 y(remove\(newFile.c_str\(\)\);)873 1730 y(//)h(test)f(1:)h(write)f(to)g (a)h(new)g(file)873 1809 y(std::auto_ptr)d(pInfile\(new)i (FITS\(inFile,Write,string\(")754 1888 y(PLANETS_ASCII"\)\)\);)873 1967 y(FITS)1033 1979 y(*)1112 1967 y(infile\(pInfile.get\(\)\);)873 2046 y(std::auto_ptr)e(pNewfile\(new)h(FITS\(newFile,Write\)\);) 873 2124 y(ExtHDU&)h(source)g(=)h (infile->extension\("PLANETS_ASCII"\);)873 2203 y(const)f(string)g (expression\("DENSITY)e(>)j(3.0"\);)873 2440 y(Table&)f(sink1)g(=)h (pNewfile->filter\(expression,source,false,true)o(\);)873 2676 y(std::cout)f(<<)g(sink1)h(<<)f(std::endl;)873 2834 y(//)h(test)f(2:)h(write)f(a)h(new)f(HDU)g(to)h(the)f(current)g(file,)g (overwrite)g(false,)g(read)794 2913 y(true.)873 2992 y(//)h(AS)f(OF)h(7/2/01)f(does)g(not)h(work)f(because)g(of)g(a)h(bug)f (in)h(cfitsio,)f(but)g(does)794 3071 y(not)873 3150 y(//)h(crash,)f (simply)g(writes)g(a)h(new)f(header)g(to)g(the)h(file)f(without)g(also) g(writing)794 3229 y(the)873 3307 y(//)h(selected)f(data.)873 3386 y(Table&)g(sink2)g(=)h (infile->filter\(expression,source,false,true\);)873 3544 y(std::cout)f(<<)g(sink2)h(<<)f(std::endl;)873 3702 y(//)h(reset)f(the)g(source)g(file)h(back)f(to)g(the)h(extension)e(in)i (question.)873 3781 y(source)f(=)h (infile->extension\("PLANETS_ASCII"\);)873 3938 y(//)g(test)f(3:)h (overwrite)e(the)i(current)e(HDU)i(with)f(filtered)g(data.)873 4096 y(Table&)g(sink3)g(=)h (infile->filter\(expression,source,true,true\);)873 4254 y(std::cout)f(<<)g(sink3)h(<<)f(std::endl;)873 4491 y(return)g(0;)555 4569 y(})515 4707 y SDict begin H.S end 515 4707 a 515 4707 a SDict begin 12 H.A end 515 4707 a 515 4707 a SDict begin [ /View [/XYZ H.V] /Dest (section.11) cvn H.B /DEST pdfmark end 515 4707 a 0.25 TeXcolorgray 190 x Fs(11)107 b(Reading)24 b(Header)h(inf)n(ormation)g(fr)n(om)h(a)e(HDU)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 26 31 TeXDict begin 26 30 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.26) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(12)20 b(Reading)f(an)i(Image)2031 b(26)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a SDict begin H.S end 515 523 a 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.R end 515 523 a 515 523 a SDict begin [ /View [/XYZ H.V] /Dest (readhead) cvn H.B /DEST pdfmark end 515 523 a 0 TeXcolorgray 27 w Fx(This)26 b(function)f(demonstrates)g(selecting)i(one)f(HDU)g(from)g(the)g (\002le,)j(reading)c(the)h(header)g(in-)515 623 y(formation)i(and)h (printing)f(out)i(the)f(k)o(e)o(ys)h(that)g(ha)n(v)o(e)f(been)g(read)g (and)h(the)f(descriptions)g(of)h(the)515 722 y(columns.)515 869 y(The)20 b(readData)g(\003ag)h(is)h(by)f(def)o(ault)f(f)o(alse)h (\(see)g(belo)n(w)g(for)f(the)h(alternati)n(v)o(e)f(case\),)g(which)h (means)515 969 y(that)f(the)g(data)g(in)h(the)f(column)f(is)i(not)f (read.)p 0 TeXcolorgray 0 TeXcolorgray 515 1156 a Fn(int)39 b(readHeader\(\))555 1235 y({)873 1471 y(const)g(string)g (SPECTRUM\("SPECTRUM"\);)873 1629 y(//)h(read)f(a)h(particular)e(HDU)i (within)f(the)g(file.)g(This)g(call)h(reads)f(just)g(the)794 1708 y(header)873 1787 y(//)h(information)e(from)h(SPECTRUM)873 1945 y(std::auto_ptr)e(pInfile\(new)i (FITS\("file1.pha",Read,SPECTRUM\)\);)873 2102 y(//)h(define)f(a)h (reference)e(for)i(clarity.)e(\(std::auto_ptr::get)f(returns)i(a)794 2181 y(pointer)873 2339 y(ExtHDU&)g(table)g(=)h (pInfile->extension\(SPECTRUM\);)873 2497 y(//)g(read)f(all)h(the)f (keywords,)g(excluding)f(those)h(associated)f(with)i(columns.)873 2654 y(table.readAllKeys\(\);)873 2812 y(//)g(print)f(the)g(result.)873 3049 y(std::cout)g(<<)g(table)h(<<)f(std::endl;)834 3285 y(return)f(0;)555 3364 y(})515 3498 y SDict begin H.S end 515 3498 a 515 3498 a SDict begin 12 H.A end 515 3498 a 515 3498 a SDict begin [ /View [/XYZ H.V] /Dest (section.12) cvn H.B /DEST pdfmark end 515 3498 a 0.25 TeXcolorgray 190 x Fs(12)107 b(Reading)24 b(an)h(Ima)o(g)q(e)p 0 TeXcolorgray 0 TeXcolorgray 515 3921 a SDict begin H.S end 515 3921 a 0 TeXcolorgray 0 TeXcolorgray 515 3921 a SDict begin H.R end 515 3921 a 515 3921 a SDict begin [ /View [/XYZ H.V] /Dest (readimage) cvn H.B /DEST pdfmark end 515 3921 a 0 TeXcolorgray 25 w Fx(Image)f(reading)g(calls)i(are)f(made)f(v)o (ery)g(simple:)35 b(the)25 b(FITS)g(object)g(is)h(created)e(with)h(the) g(read-)515 4020 y(DataFlag)20 b(set)h(to)f(true,)g(and)f(reading)g(is) i(done)e(on)h(construction.)j(The)d(follo)n(wing)f(call)515 4167 y(image.read\(contents\))515 4314 y(calls)515 4461 y(PHDU::read\(std::v)n(alarray)p Fu(<)p Fx(S)p Fu(>)p Fx(&)d(image\).)515 4608 y(This)h(copies)g(the)g(entire)g(image)g(from) f(the)h(FITS)g(object)g(into)g(the)g(std::v)n(alarray)f(object)h (contents,)515 4707 y(sizing)22 b(it)i(as)f(necessary)-5 b(.)31 b(PHDU::read\(\))21 b(and)h(ExtHDU::read\(\))f([)o(for)h(image)g (e)o(xtensions])g(tak)o(e)515 4807 y(a)f(range)e(of)i(ar)o(guments)d (that)j(support)f(\(a\))g(reading)f(the)i(entire)f(image)g(-)h(as)h(in) e(this)i(e)o(xample;)d(\(b\))515 4907 y(sections)j(of)f(an)h(image)f (starting)g(from)g(a)h(gi)n(v)o(en)f(pix)o(el;)h(\(c\))f(rectangular)f (subsets.)30 b(See)22 b(the)g(class)515 5006 y(references)d(for)g(PHDU) i(and)e(ExtHDU)h(for)g(details.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 27 32 TeXDict begin 27 31 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.27) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(13)20 b(Reading)f(a)i(T)-8 b(able)21 b(Extension)1732 b(27)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 555 523 a Fn(int)39 b(readImage\(\))555 602 y({)834 681 y(std::auto_ptr)e (pInfile\(new)h(FITS\("atestfil.fit",Read,true\)\);)834 839 y(PHDU&)h(image)g(=)g(pInfile->pHDU\(\);)834 996 y(std::valarray)79 b(contents;)834 1154 y(//)39 b(read)g(all)h(user-specifed,)e(coordinate,)g(and)h(checksum)g (keys)g(in)h(the)f(image)834 1233 y(image.readAllKeys\(\);)834 1391 y(image.read\(contents\);)834 1548 y(//)g(this)g(doesn't)g(print)g (the)h(data,)f(just)g(header)g(info.)834 1627 y(std::cout)f(<<)i(image) f(<<)g(std::endl;)834 1785 y(long)g(ax1\(image.axis\(0\)\);)834 1864 y(long)g(ax2\(image.axis\(1\)\);)834 2022 y(for)g(\(long)g(j)h(=)f (0;)h(j)g(<)f(ax2;)h(j+=10\))834 2100 y({)1152 2179 y (std::ostream_iterator)c(c\(std::cout,"\\t"\);)1152 2258 y(std::copy\(&contents[j)1992 2270 y(*)2032 2258 y(ax1],&contents[\(j+1\))2832 2270 y(*)2872 2258 y(ax1)o(-1],c\);)1152 2337 y(std::cout)j(<<)g('\\n';)834 2416 y(})834 2574 y(std::cout)f(<<)i(std::endl;)834 2653 y(return)e(0;)555 2731 y(})515 2869 y SDict begin H.S end 515 2869 a 515 2869 a SDict begin 12 H.A end 515 2869 a 515 2869 a SDict begin [ /View [/XYZ H.V] /Dest (section.13) cvn H.B /DEST pdfmark end 515 2869 a 0.25 TeXcolorgray 190 x Fs(13)107 b(Reading)24 b(a)h(T)-7 b(ab)o(le)24 b(Extension)p 0 TeXcolorgray 0 TeXcolorgray 515 3292 a SDict begin H.S end 515 3292 a 0 TeXcolorgray 0 TeXcolorgray 515 3292 a SDict begin H.R end 515 3292 a 515 3292 a SDict begin [ /View [/XYZ H.V] /Dest (readtable) cvn H.B /DEST pdfmark end 515 3292 a 0 TeXcolorgray 25 w Fx(Reading)g(table)h(data)f(is)i(similarly)e (straightforw)o(ard)e(\(unsurprisingly)-5 b(,)22 b(because)i(this)i (applica-)515 3391 y(tion)20 b(is)h(e)o(xactly)e(what)p 0 0 1 TeXcolorrgb 1182 3392 a SDict begin H.S end 1182 3392 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1395 3335 a SDict begin H.R end 1395 3335 a 1395 3391 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1395 3391 a 0 TeXcolorgray 20 w Fx(w)o(as)i (designed)e(to)i(do)e(easily)i(in)f(the)g(\002rst)h(place\).)515 3538 y(The)g(tw)o(o)g(e)o(xtensions)g(are)g(read)g(on)g(construction,)e (including)h(all)i(the)f(column)f(data)h([readData-)515 3638 y(Flag)f(==)h(true])e(and)h(then)f(printed.)515 3764 y(Note)30 b(that)g(if)g(the)g(data)f(are)h(read)f(as)i(part)e(of)h (the)g(construction,)g(then)p 0 0 1 TeXcolorrgb 2676 3765 a SDict begin H.S end 2676 3765 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2889 3708 a SDict begin H.R end 2889 3708 a 2889 3764 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2889 3764 a 0 TeXcolorgray 30 w Fx(uses)g(the)g(ro)n(w-)515 3843 y(optimization)23 b(techniques)g(describe)h(in)h(chapter)f(13)h (of)f(the)h(c\002tsio)g(manual;)i(a)e(chunk)e(of)i(data)515 3922 y(equal)c(to)i(the)f(size)g(of)g(the)g(a)n(v)n(ailable)g(b)n(uf)n (fer)f(space)h(is)h(read)e(from)h(contiguous)e(disk)i(blocks)f(and)515 4001 y(transferred)c(to)i(memory)e(storage,)h(as)h(opposed)e(to)i(each) g(column)e(being)h(read)g(in)h(turn.)24 b(Thus)19 b(the)515 4079 y(most)h(ef)n(\002cient)g(w)o(ay)g(of)g(reading)f(\002les)i(is)g (to)f(acquire)f(the)i(data)f(on)f(construction.)p 0 TeXcolorgray 0 TeXcolorgray 555 4272 a Fn(int)39 b(readTable\(\))555 4351 y({)834 4430 y(//)g(read)g(a)h(table)f(and)h(explicitly)e(read)h (selected)g(columns.)f(To)i(read)f(instead)794 4509 y(all)g(the)834 4587 y(//)g(data)g(on)h(construction,)e(set)h(the)h(last)f(argument)g (of)g(the)g(FITS)h(constructor)834 4666 y(//)f(call)g(to)h('true'.)f (This)g(functionality)f(was)h(tested)g(in)h(the)f(last)g(release.)834 4745 y(std::vector)e(hdus\(2\);)834 4824 y(hdus[0])h(=)i ("PLANETS_ASCII";)834 4903 y(hdus[1])e(=)i("TABLE_BINARY";)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 28 33 TeXDict begin 28 32 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.28) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(14)20 b(Reading)f(with)i(Extended)g(File)f (Name)g(Syntax)1198 b(28)p 515 236 2865 4 v 0 TeXcolorgray 834 602 a Fn(std::auto_ptr)37 b(pInfile\(new)h (FITS\("atestfil.fit",Read,hdus,false\)\);)834 760 y(ExtHDU&)g(table)h (=)h(pInfile->extension\(hdus[1]\);)834 1075 y(std::vector)e(<)h (valarray)g()h(>)g(pp;)834 1154 y (table.column\("powerSeq"\).readArrays\()34 b(pp,)39 b(1,3)h(\);)834 1312 y(std::vector)e(<)h(valarray)g ()e(>)j(>)f(cc;)834 1391 y (table.column\("dcomplex-roots"\).readArrays)o(\()34 b(cc,)40 b(1,3)f(\);)834 1548 y(std::valarray)e(<)j (std::complex)d(>)j(ff;)834 1627 y (table.column\("fcomplex-roots"\).read\()34 b(ff,)39 b(4)h(\);)834 1785 y(std::cout)e(<<)i(pInfile->extension\(hdus[0]\))35 b(<<)40 b(std::endl;)834 1943 y(std::cout)e(<<)i (pInfile->extension\(hdus[1]\))35 b(<<)40 b(std::endl;)834 2100 y(return)e(0;)555 2179 y(})515 2316 y SDict begin H.S end 515 2316 a 515 2316 a SDict begin 12 H.A end 515 2316 a 515 2316 a SDict begin [ /View [/XYZ H.V] /Dest (section.14) cvn H.B /DEST pdfmark end 515 2316 a 0.25 TeXcolorgray 189 x Fs(14)107 b(Reading)24 b(with)g(Extended)h(File)e(Name)i(Syntax)p 0 TeXcolorgray 0 TeXcolorgray 515 2738 a SDict begin H.S end 515 2738 a 0 TeXcolorgray 0 TeXcolorgray 515 2738 a SDict begin H.R end 515 2738 a 515 2738 a SDict begin [ /View [/XYZ H.V] /Dest (readextendedsyntax) cvn H.B /DEST pdfmark end 515 2738 a 0 TeXcolorgray 19 w Fx(It)19 b(is)g(also)g(possible)f (to)h(apply)e(e)o(xtended)g(\002le)i(name)f(syntax)g(\(as)h(described)e (in)i(chapter)e(10)h(of)h(the)515 2837 y(c\002tsio)i(manual\))f(when)h (reading)e(data.)28 b(The)20 b(function)g(belo)n(w)g(sho)n(ws)h(a)h (typical)e(e)o(xample)g(using)515 2937 y(the)g(basic)p 0 0 1 TeXcolorrgb 828 2938 a SDict begin H.S end 828 2938 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::FITS)p 0 0 1 TeXcolorrgb 1257 2881 a SDict begin H.R end 1257 2881 a 1257 2937 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1257 2937 a 0 TeXcolorgray 21 w Fx(constructor)-5 b(.)515 3084 y(The)23 b(e)o(xtended)e(syntax)h (is)j(entered)d(as)i(part)e(of)h(the)h(\002le)g(name)e(string.)34 b(In)23 b(this)g(case)h(it)g(speci\002es)515 3183 y(an)c(HDU)g(and)g(a) h(ro)n(w)f(selection)f(criterion)g(dependent)f(upon)h(the)h(v)n(alues)g (in)h(the)f(column)f(named)515 3283 y("Density)-5 b(.")18 b(An)o(y)g(read)h(operations)f(performed)e(on)j(this)h(HDU)g(will)g (only)e(see)i(ro)n(ws)f(which)g(meet)515 3383 y(the)i("Density)f Fu(>)h Fx(5.2")f(condition.)25 b(Also)d(the)e(current)g(header)g (position)g(in)h(the)f(\002le)i(is)g(automati-)515 3482 y(cally)e(placed)f(at)i(the)f(speci\002ed)g(HDU)h(upon)e(construction)f (of)i(the)g(FITS)g(object.)515 3608 y(Extended)28 b(\002le)j(name)f (syntax)g(can)g(also)h(be)f(used)g(with)h(the)f(FITS)h(constructors)e (which)h(tak)o(e)515 3687 y(speci\002c)18 b(HDU)g(names)g(or)f(indices) h(as)g(ar)o(guments.)23 b(Ho)n(we)n(v)o(er)16 b(if)i(the)g(e)o(xtended) e(syntax)h(speci\002es)515 3766 y(an)e(HDU,)h(that)g(HDU)g(must)g(also) g(be)g(among)e(those)h(speci\002ed)h(as)g(a)g(FITS)g(constructor)e(ar)o (gument,)515 3845 y(otherwise)19 b(a)p 0 0 1 TeXcolorrgb 916 3863 a SDict begin H.S end 916 3863 a 0 0 1 TeXcolorrgb -18 x Fx (CC\002ts::FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 2189 3789 a SDict begin H.R end 2189 3789 a 2189 3845 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 2189 3845 a 0 TeXcolorgray 21 w Fx(e)o(xception)f(is)j(thro)n(wn.)j(F)o(or)c(e)o(xample:)p 0 TeXcolorgray 0 TeXcolorgray 515 4029 a Fn(FITS)39 b(fits\(new)g (FITS\("myFile.fit[HDU_A]",Read,string\("HDU_)o(A"\)\)\);)33 b(//)40 b(OK)515 4108 y(FITS)f(fits\(new)g (FITS\("myFile.fit[HDU_B]",Read,string\("HDU_)o(A"\)\)\);)33 b(//)40 b(Error)515 4313 y Fx(\(Note)19 b(-)i(The)f(e)o(xtended)e (\002le)j(name)e(feature)g(which)h(allo)n(ws)g(the)h(opening)d(of)i(a)g (particular)f(image)515 4413 y(located)g(in)i(the)f(ro)n(w)g(of)f(a)i (table)f(remains)g(unsupported)d(in)p 0 0 1 TeXcolorrgb 2260 4414 a SDict begin H.S end 2260 4414 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2473 4357 a SDict begin H.R end 2473 4357 a 2473 4413 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2473 4413 a 0 TeXcolorgray Fx(.\))p 0 TeXcolorgray 0 TeXcolorgray 555 4612 a Fn(int)39 b(readExtendedSyntax\(\))555 4691 y({)674 4770 y(//)h(Current)e(extension)h(will)g(be)h(set)f(to)h (PLANETS_ASCII)e(after)h(construction:)674 4848 y(std::auto_ptr)e (pInfile\(new)h(FITS\("btestfil.fit[PLANETS_ASCII][Density)c(>)794 4927 y(5.2]"\)\);)674 5006 y(std::cout)39 b(<<)g("\\nCurrent)g (extension:)f(")p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 29 34 TeXDict begin 29 33 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.29) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(15)20 b(What')m(s)f(Pr)o(esent,)h(What')m(s)g (Missing,)h(and)g(Calling)f(CFITSIO)725 b(29)p 515 236 2865 4 v 0 TeXcolorgray 834 523 a Fn(<<)39 b (pInfile->currentExtensionName\(\))c(<<)40 b(std::endl;)674 681 y(Column&)f(col)g(=)h (pInfile->currentExtension\(\).column\("Density")o(\);)674 760 y(std::vector)d(densities;)674 917 y(//)j(nRows)f(should)g (only)g(include)g(rows)g(with)g(density)g(column)g(vals)g(>)h(5.2.)674 996 y(const)f(int)h(nRows)f(=)g(col.rows\(\);)674 1075 y(col.read\(densities,)e(1,)j(nRows\);)674 1154 y(for)g(\(int)f(i=0;)g (i)i Fx(ImageExt)p Fu(<)p Fx(T)p Fu(>)p Fx(])l(,)i(pro)o(vide)c(multiple)i(o)o(v)o (erloaded)d(v)o(er)n(-)515 3949 y(sions)k(of)g(read)g(and)g(write)h (functions.)j(The)c(Column)f(class,)j(instances)e(of)g(which)g(can)g (be)g(held)g(in)515 4049 y(T)-7 b(able)20 b(instances)h([with)g (subclasses)g(AsciiT)-7 b(able)21 b(and)f(BinT)-7 b(able])20 b(has)h(also)g(an)g(e)o(xtensi)n(v)o(e)e(set)j(of)515 4148 y(read/write)d(operations.)515 4295 y(A)26 b(special)g (constructor)f(is)i(pro)o(vided)c(which)j(creates)g(a)g(ne)n(w)g (\002le)h(with)f(the)g(Primary)f(HDU)i(of)515 4395 y(a)g(source)g (\002le.)47 b(A)28 b(FITS::cop)o(y\(const)d(HDU&\))i(function)f(copies) h(HDUs)h(from)e(one)h(\002le)h(into)515 4494 y(another)-5 b(.)26 b(Support)19 b(for)i(\002ltering)f(table)h(ro)n(ws)g(by)f(e)o (xpression)g(is)i(pro)o(vided)c(by)j(a)g(FITS::\002lter\()g(...)515 4594 y(\))j(call)19 b(which)f(may)f(be)i(used)e(to)i(create)f(a)g(ne)n (w)g(\002ltered)g(\002le)h(or)f(o)o(v)o(erwrite)e(an)i(e)o(xisting)g (HDU)g(\(see)515 4694 y(c\002tsio)i(manual)g(section)g(5.6.4\).)515 4841 y(Functions)28 b(are)h(pro)o(vided)e(for)i(adding)f(and)h (deleting)f(columns,)i(and)f(inserting)g(and)g(deleting)515 4940 y(ro)n(ws)20 b(in)g(tables.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 30 35 TeXDict begin 30 34 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.30) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(15.1)81 b(What')m(s)20 b(Not)g(Pr)o(esent) 1860 b(30)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(HDU)25 b(objects)g(also)h(ha)n(v)o(e)e(functions)g(to)i(implement)e (writing)g(of)h(history)-5 b(,)25 b(comment)f(and)h(date)515 623 y(k)o(e)o(ys.)515 770 y(Extended)e(\002le)j(name)f(syntax)f (\(chapter)g(10)h(of)f(the)i(c\002tsio)f(manual\))f(is)i(supported)e (in)h(general,)515 869 y(though)16 b(not)j(the)f(feature)g(which)g (allo)n(ws)g(the)h(opening)d(of)j(a)g(particular)e(image)h(stored)g(in) g(the)h(ro)n(w)515 969 y(of)h(a)g(table.)p 0 TeXcolorgray 845 969 a SDict begin H.S end 845 969 a 0 TeXcolorgray 0 TeXcolorgray 845 969 a SDict begin H.R end 845 969 a 845 969 a SDict begin [ /View [/XYZ H.V] /Dest (missing_nothere) cvn H.B /DEST pdfmark end 845 969 a 0 TeXcolorgray 515 1084 a SDict begin H.S end 515 1084 a 515 1084 a SDict begin 12 H.A end 515 1084 a 515 1084 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.15.1) cvn H.B /DEST pdfmark end 515 1084 a 0.25 TeXcolorgray 163 x Fq(15.1)89 b(What')l(s)22 b(Not)f(Present)p 0 TeXcolorgray 515 1450 a Fx(The)f(coordinate)e (library)h(manipulations)f([c\002tsio)i(manual)g(chapter)f(7])h(are)g (not)g(supported.)515 1597 y(The)i(iterator)g(w)o(ork)g(functions)f([)o (c\002tsio)i(manual)f(chapter)f(6])h(are)h(not)f(supported.)30 b(Man)o(y)21 b(of)i(the)515 1696 y(functions)18 b(pro)o(vided)f(are)j (easier)g(to)g(implement)f(using)g(the)h(properties)e(of)i(the)g (standard)e(library)-5 b(,)515 1796 y(since)23 b(the)g(standard)e (library)h(containers)g(either)g(allo)n(w)h(v)o(ectorized)e(operations) g(\(in)i(the)g(case)g(of)515 1896 y(v)n(alarrays\))f(or)h(standard)g (library)f(algorithms)g(that)i(tak)o(e)g(iterators)f(or)g(pointers.)34 b(In)24 b(some)f(w)o(ays)515 1995 y(the)32 b(\002ts_iterate_data)f (function)f(pro)o(vide)g(an)i(alternati)n(v)o(e,)i(approach)c(to)i(the) g(same)h(need)e(for)515 2095 y(encapsulation)18 b(addressed)h(by)p 0 0 1 TeXcolorrgb 1444 2096 a SDict begin H.S end 1444 2096 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1656 2039 a SDict begin H.R end 1656 2039 a 1656 2095 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1656 2095 a 0 TeXcolorgray Fx(.)515 2242 y(The)h(hierarchical)e(grouping)g(routines)h(are)h(not)g (supported.)515 2389 y(Explicit)f(opening)e(of)i(in-memory)e(data)j (sets)g(as)g(described)e(in)i(Chapter)f(9)g(of)h(the)f(manual)g(is)h Ft(not)515 2488 y Fx(supported)e(since)i(none)f(of)h(the)h(FITS)f (constructors)f(call)h(the)g(appropriate)e(c\002tsio)j(primiti)n(v)o (es.)p 0 TeXcolorgray 3308 2488 a SDict begin H.S end 3308 2488 a 0 TeXcolorgray 0 TeXcolorgray 3308 2488 a SDict begin H.R end 3308 2488 a 3308 2488 a SDict begin [ /View [/XYZ H.V] /Dest (missing_callcfitsio) cvn H.B /DEST pdfmark end 3308 2488 a 0 TeXcolorgray 515 2621 a SDict begin H.S end 515 2621 a 515 2621 a SDict begin 12 H.A end 515 2621 a 515 2621 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.15.2) cvn H.B /DEST pdfmark end 515 2621 a 0.25 TeXcolorgray 146 x Fq(15.2)89 b(Calling)22 b(CFITSIO)p 0 TeXcolorgray 515 2970 a Fx(T)-7 b(o)27 b(gain)g(an)o(y)f(functionality)g(currently)f (missing)j(in)p 0 0 1 TeXcolorrgb 2104 2971 a SDict begin H.S end 2104 2971 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2317 2913 a SDict begin H.R end 2317 2913 a 2317 2970 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2317 2970 a 0 TeXcolorgray Fx(,)h(it)f(is)h(possible)e(of)g(course)g(to)g(call)515 3069 y(the)21 b(underlying)e(CFITSIO)i(library)f(functions)g(directly) -5 b(.)27 b(The)p 0 0 1 TeXcolorrgb 2378 3070 a SDict begin H.S end 2378 3070 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2591 3013 a SDict begin H.R end 2591 3013 a 2591 3069 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2591 3069 a 0 TeXcolorgray 21 w Fx(FITS)22 b(and)f(HDU)g(classes)515 3169 y(both)26 b(ha)n(v)o(e)h(the)h(public)e(member)g(function)g(\002tsPointer\(\),)i (which)f(returns)g(the)g(\002ts\002le)i(pointer)515 3268 y(required)18 b(in)j(CFITSIO)g(function)e(calls.)26 b(One)20 b(should)g(use)h(caution)e(when)h(doing)f(this)i(ho)n(we)n(v)o(er)m(,) 515 3368 y(since)h(an)o(y)f(I/O)h(changes)f(made)h(this)g(w)o(ay)h (will)f(NOT)h(be)f(mirrored)e(in)i(the)p 0 0 1 TeXcolorrgb 2748 3369 a SDict begin H.S end 2748 3369 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2960 3312 a SDict begin H.R end 2960 3312 a 2960 3368 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2960 3368 a 0 TeXcolorgray 23 w Fx(FITS)g(object)515 3468 y(\(nor)e(its)i(component)d(objects\))i(associated)g(with)h(the)g (\002le.)29 b(Therefore)19 b(once)i(a)h(FITS)f(object)g(has)515 3567 y(been)15 b(bypassed)g(this)i(w)o(ay)-5 b(,)17 b(it)f(is)i(safest) e(to)h(just)f(not)g(use)h(that)f(object)g(again,)f(and)h(instead)g (continue)515 3667 y(calling)k(CFITSIO)h(directly)f(or)g(instantiate)h (a)g(ne)n(w)f(FITS)h(object)f(that)h(will)h(pick)e(up)g(the)h(current) 515 3767 y(\002le)g(state.)515 3892 y SDict begin H.S end 515 3892 a 515 3892 a SDict begin 12 H.A end 515 3892 a 515 3892 a SDict begin [ /View [/XYZ H.V] /Dest (section.16) cvn H.B /DEST pdfmark end 515 3892 a 0.25 TeXcolorgray 195 x Fs(16)107 b(Pre)o(vious)25 b(Release)f(Notes)p 0 TeXcolorgray 0 TeXcolorgray 515 4320 a SDict begin H.S end 515 4320 a 0 TeXcolorgray 0 TeXcolorgray 515 4320 a SDict begin H.R end 515 4320 a 515 4320 a SDict begin [ /View [/XYZ H.V] /Dest (releases) cvn H.B /DEST pdfmark end 515 4320 a 0 TeXcolorgray 20 w Fx(Changes)c(for)p 0 0 1 TeXcolorrgb 960 4321 a SDict begin H.S end 960 4321 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1172 4264 a SDict begin H.R end 1172 4264 a 1172 4320 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1172 4320 a 0 TeXcolorgray 21 w Fx(2.1)f(release)i (No)o(v)e(2008)p 0 TeXcolorgray 652 4504 a(\225)p 0 TeXcolorgray 41 w(Modi\002ed)c(se)n(v)o(eral)f(FITS)i(constructors)d(and)i (FITS::open)f(function)f(to)j(allo)n(w)f(proper)e(han-)722 4604 y(dling)20 b(of)g(CFITSIO)g Fy(extended)g(\002lename)h(syntax)p Fx(.)p 0 TeXcolorgray 652 4755 a(\225)p 0 TeXcolorgray 41 w(Extended)e(\002lename)g(syntax)h(e)o(xample)f(added)g(to)h (cookbook.)p 0 TeXcolorgray 652 4907 a(\225)p 0 TeXcolorgray 41 w(Fix)28 b(made)e(to)h(FITS::read)f(function)g(for)g(case)h(of)g (missing)g(EXTVER)g(k)o(e)o(yw)o(ord)e(when)722 5006 y(searching)19 b(for)h(HDU)g(with)h(e)o(xtv)o(er)d Fu(>)j Fx(1.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 31 36 TeXDict begin 31 35 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.31) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(16)20 b(Pr)o(e)o(vious)f(Release)h(Notes)1863 b(31)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(Remo)o(v)o(ed)15 b(inclusion)h(of)h(the)g(internal-only)d(CFITSIO)j(\002tsio2.h)g (\002le)g(from)f(Column.cxx.)722 623 y(LONGLONG)k(limits)h (de\002nitions)e(are)i(no)n(w)e(found)g(in)h(\002tsio.h.)515 831 y(Changes)f(for)p 0 0 1 TeXcolorrgb 939 832 a SDict begin H.S end 939 832 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1151 774 a SDict begin H.R end 1151 774 a 1151 831 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1151 831 a 0 TeXcolorgray 21 w Fx(2.0)h(release)g(Feb)g(2008)f(Enhancements)f(to)p 0 0 1 TeXcolorrgb 2470 832 a SDict begin H.S end 2470 832 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2682 774 a SDict begin H.R end 2682 774 a 2682 831 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2682 831 a 0 TeXcolorgray Fx(:)p 0 TeXcolorgray 652 1039 a(\225)p 0 TeXcolorgray 41 w Fy(Checksum)29 b(Capability:)40 b Fx(4)28 b(checksum)f(related)g(functions)g(ha)n(v)o (e)g(been)h(added)e(to)j(the)722 1138 y(HDU)d(class,)h(which)e(no)n(w)g (allo)n(ws)h(users)f(to)h(set)g(and)f(v)o(erify)f(checksums)g(directly) h(from)722 1238 y(inside)p 0 0 1 TeXcolorrgb 941 1239 a SDict begin H.S end 941 1239 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1154 1181 a SDict begin H.R end 1154 1181 a 1154 1238 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1154 1238 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 652 1401 a(\225)p 0 TeXcolorgray 41 w Fy(Capturing)18 b(Err)o(or)h(Messages:)24 b Fx(The)19 b(FitsException)e(base)i(class)g(no)n(w)f(stores)h(its)h (output)722 1501 y(error)e(message,)h(and)g(it)h(can)f(be)g(retrie)n(v) o(ed)f(from)g(an)o(y)h(of)g(the)g(e)o(xception)e(subclass)j(objects)722 1600 y(with)h(a)f(call)h(to)f(the)g(ne)n(w)g (FitsException::message\(\))e(function.)p 0 TeXcolorgray 652 1764 a(\225)p 0 TeXcolorgray 41 w Fy(Impr)o(o)o(v)o(ed)d(K)n(eyw)o (ord)g(Handling:)22 b Fx(Ne)n(w)15 b(functions)f(cop)o(yAllK)n(e)o(ys,) h(k)o(e)o(yw)o(ordCate)o(gories,)722 1863 y(and)k(a)h(second)f(addK)n (e)o(y)f(function)g(ha)n(v)o(e)h(been)g(added)f(to)i(the)f(HDU)h (class.)26 b(The)19 b(K)n(e)o(yw)o(ord)722 1963 y(class)30 b(no)n(w)f(of)n(fers)f(a)i(public)e(setV)-9 b(alue)29 b(function)f(to)h(modify)f(an)h(e)o(xisting)f(k)o(e)o(yw)o(ord.)50 b(-)722 2063 y(Also)29 b(the)f(class)g(member)f(documentation)e(for)i (k)o(e)o(yw)o(ord)f(related)i(functions)e(has)i(been)722 2162 y(upgraded)18 b(and)i(e)o(xpanded.)p 0 TeXcolorgray 652 2326 a(\225)p 0 TeXcolorgray 41 w Fy(Image)j(Scaling:)30 b Fx(In)22 b(the)h(HDU)g(class)g(\(for)f(instances)h(of)f(its)i(PHDU)f (and)f(image)g(ExtH-)722 2425 y(DU)k(subclasses\),)h(scale)f(and)f (zero)g(set)h(functions)e(can)h(no)n(w)g(write)h(BSCALE)g(and)f(BZ-)722 2525 y(ERO)i(k)o(e)o(yw)o(ords)e(to)h(the)h(\002le.)44 b(A)27 b(ne)n(w)f(suppressScaling)f(function)f(has)j(been)e(added)g(to) 722 2624 y(temporarily)16 b(turn)h(of)n(f)g(scaling.)24 b(The)17 b(ImageExt)p Fu(<)p Fx(T)p Fu(>)e Fx(class)k(has)f(also)g (been)f(added)g(to)h(the)722 2724 y(documentation.)p 0 TeXcolorgray 652 2887 a(\225)p 0 TeXcolorgray 41 w Fy(Miscellaneous)e(New)g(Functions:)p Fx(T)-7 b(able::getRo)n (wsize\(\))13 b(\(submitted)h(by)h(P)o(atrik)f(Jonsson\),)722 2987 y(Fits::\002tsPointer\(\),)20 b(Column::parent\(\).)515 3195 y(Bug)g(Fix)o(es:)p 0 TeXcolorgray 652 3403 a(\225)p 0 TeXcolorgray 41 w(FITS)f(constructor)e(in)i(Write)h(mode)e(caused)g (a)h(se)o(gmentation)e(f)o(ault)i(when)f(used)h(on)f(read-)722 3503 y(only)i(\002les.)26 b(\(Reported)18 b(by)i(Gerard)f(Zins\))p 0 TeXcolorgray 652 3666 a(\225)p 0 TeXcolorgray 41 w(Column)31 b(write)g(functions)f(were)i(not)f(turning)f(of)n(f)g(NULL)i(checking)d (e)n(v)o(en)i(when)g(the)722 3766 y(nulv)n(al)20 b(pointer)e(w)o(as)k (set)e(to)h(0.)k(\(Reported)19 b(by)g(Gerard)h(Zins\))p 0 TeXcolorgray 652 3929 a(\225)p 0 TeXcolorgray 41 w(F)o(or)27 b(the)g(FITS)g(constructor)e(which)i(tak)o(es)g(an)g(e)o(xisting)f (FITS)h(object)g(as)g(an)g(ar)o(gument,)722 4029 y(when)j(gi)n(v)o(en)f (the)i(\002lename)f(of)g(an)g(e)o(xisting)g(\002le)h(\(and)f(without)g (the)g('!')56 b(speci\002er\),)32 b(it)722 4128 y(places)g(a)g(ne)n(w)g (primary)e(HDU)i(in)g(the)g(\002rst)g(e)o(xtension.)58 b(It)32 b(shouldn')o(t)e(allo)n(w)h(a)h(write)722 4228 y(operation)19 b(at)h(all)h(in)f(this)h(case.)26 b(\(Reported)18 b(by)i(Andy)f(Beardmore\))p 0 TeXcolorgray 652 4391 a(\225)p 0 TeXcolorgray 41 w(Some)e(additional)e(#include)g(statements)i(are)g (needed)e(for)i(compilation)e(on)h(a)h(test)h(v)o(ersion)722 4491 y(of)i(g++4.3)f(\(Reported)g(by)g(Aurelien)h(Jarno\))515 4699 y(Backw)o(ards)g(Compatibility)f(Issues:)p 0 TeXcolorgray 652 4907 a(\225)p 0 TeXcolorgray 41 w(The)25 b(follo)n(wing)f (documented)e(public)i(access)i(member)e(functions)f(ha)n(v)o(e)i(no)n (w)f(been)h(re-)722 5006 y(mo)o(v)o(ed)30 b(or)h(made)f(protected/pri)n (v)n(ate.)55 b(As)32 b(these)g(functions)d(were)i(either)g(ne)n(v)o(er) f(fully)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 32 37 TeXDict begin 32 36 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.32) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(16)20 b(Pr)o(e)o(vious)f(Release)h(Notes)1863 b(32)p 515 236 2865 4 v 0 TeXcolorgray 722 523 a Fx(implemented)24 b(or)i(could)f(not)g(successfully)g(be)h(used)f(from)g(e)o(xternal)g (code,)h(it)g(is)h(hoped)722 623 y(that)17 b(these)h(remo)o(v)n(als)d (will)j(not)f(break)f(an)o(y)g(pre-e)o(xisting)f(code:)23 b(FITS::clone,)17 b(HDU::set-)722 722 y(K)n(e)o(yW)-7 b(ord,)19 b(the)h(HDU::bitpix)g(set)h(function,)d(the)i(K)n(e)o(yw)o (ord)f(class)i(constructors.)515 914 y(Changes)e(for)p 0 0 1 TeXcolorrgb 939 915 a SDict begin H.S end 939 915 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1151 858 a SDict begin H.R end 1151 858 a 1151 914 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1151 914 a 0 TeXcolorgray 21 w Fx(1.8)h(release)g (10/07.)p 0 TeXcolorgray 652 1105 a(\225)p 0 TeXcolorgray 41 w(Fix)o(es)h(made)f(to)g(b)n(ugs)h(in)f(Column)g(write)h(and)e (writeArrays)h(functions)f(which)h(were)g(pre-)722 1205 y(v)o(enting)c(the)i(writing)e(of)i(v)n(ariable-width)d(columns.)23 b(Also)17 b(no)n(w)g(allo)n(ws)h(writing)f(to)h(\002x)o(ed-)722 1305 y(width)i(columns)f(with)i(arrays)e(that)i(are)f(shorter)f(than)h (the)g(\002x)o(ed)f(width.)p 0 TeXcolorgray 652 1460 a(\225)p 0 TeXcolorgray 41 w(The)24 b(HDU::readAllK)n(e)o(ys\(\))e (function)g(will)j(no)f(longer)e(thro)n(w)i(if)g(it)h(is)g(unable)e(to) h(read)f(a)722 1560 y(particular)h(k)o(e)o(yw)o(ord.)38 b(Instead)25 b(it)h(will)g(skip)f(it)h(and)e(mo)o(v)o(e)g(to)i(the)f (ne)o(xt)f(k)o(e)o(yw)o(ord.)38 b(This)722 1659 y(w)o(as)21 b(done)e(primarily)g(to)i(pre)n(v)o(ent)d(it)j(from)e(tripping)g(on)h (unde\002ned)e(k)o(e)o(yw)o(ords.)515 1851 y(Changes)h(for)p 0 0 1 TeXcolorrgb 939 1852 a SDict begin H.S end 939 1852 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1151 1794 a SDict begin H.R end 1151 1794 a 1151 1851 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1151 1851 a 0 TeXcolorgray 21 w Fx(1.7)h(release)g (6/07.)k(Fix)o(es)c(for)g(the)g(follo)n(wing)f(b)n(ugs:)p 0 TeXcolorgray 652 2042 a(\225)p 0 TeXcolorgray 41 w(The)26 b(FITS::cop)o(y)e(function)g(merely)h(wrote)g(the)h(copied)e(HDU)i(to)g (the)g(\002le,)h(b)n(ut)f(did)f(not)722 2142 y(allo)n(w)20 b(it)h(to)g(be)f(accessed)g(for)g(further)e(modi\002cations)h(within)p 0 0 1 TeXcolorrgb 2558 2143 a SDict begin H.S end 2558 2143 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2770 2086 a SDict begin H.R end 2770 2086 a 2770 2142 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2770 2142 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 652 2297 a(\225)p 0 TeXcolorgray 41 w(When)e(reading)e (compressed)g(images,)p 0 0 1 TeXcolorrgb 1887 2298 a SDict begin H.S end 1887 2298 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2099 2241 a SDict begin H.R end 2099 2241 a 2099 2297 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2099 2297 a 0 TeXcolorgray 18 w Fx(should)g(use)i(the)g(ZBITPIX)f(and)h (ZNAXIS)722 2397 y(k)o(e)o(yw)o(ords)g(rather)h(than)f(BITPIX)i(and)f (NAXIS.)g(\(Fix)g(is)h(based)f(on)g(a)h(patch)f(submitted)f(by)722 2496 y(P)o(atrik)j(Jonsson.\))p 0 TeXcolorgray 652 2652 a(\225)p 0 TeXcolorgray 41 w(The)28 b(BSCALE)h(k)o(e)o(yw)o(ord)d(w)o (as)i(being)f(ignored)f(if)i(the)g(BZERO)h(k)o(e)o(yw)o(ord)d(didn')o (t)g(also)722 2751 y(e)o(xist.)p 0 TeXcolorgray 652 2906 a(\225)p 0 TeXcolorgray 41 w(Cases)32 b(of)f(out-of-scope)d(usage)i(of) g(std::string')-5 b(s)31 b(c_str\(\))f(pointers,)i(could)e(potentially) 722 3006 y(cause)20 b(crash.)25 b(\(Fix)20 b(submitted)g(by)f(Jeremy)h (Sanders.\))515 3198 y(Changes)f(for)p 0 0 1 TeXcolorrgb 939 3199 a SDict begin H.S end 939 3199 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1151 3141 a SDict begin H.R end 1151 3141 a 1151 3198 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1151 3198 a 0 TeXcolorgray 21 w Fx(1.6)h(release)g(11/06)p 0 TeXcolorgray 652 3389 a(\225)p 0 TeXcolorgray 41 w(Added)28 b(capbility)f(to)h(write)h(compressed)e(images,)j(including)c(6)i(ne)n (w)h(wrapper)d(public)722 3489 y(functions)19 b(in)h(FITS)h(class.)p 0 TeXcolorgray 652 3644 a(\225)p 0 TeXcolorgray 41 w(In)28 b(FITS::addImage,)f(corrected)f(the)i(logic)f(which)h(checks)f(for)g(a) h(pre-e)o(xisting)e(image)722 3744 y(e)o(xtension)19 b(with)h(the)h(same)f(v)o(ersion)f(number)-5 b(.)p 0 TeXcolorgray 652 3899 a(\225)p 0 TeXcolorgray 41 w(CFITSIO)28 b(3.02)e(renamed)f(\002ts\002le)j(struct)f(member)f(rice_nbits)g(to)i (noise_nbits.)44 b(Made)722 3998 y(corresponding)17 b(change)h(in)j (cop)o(yFitsPtr)e(function)g(in)h(FITSUtil.cxx.)k(As)c(it)h(stands,)f (this)722 4098 y(mak)o(es)g(this)h(v)o(ersion)e(of)p 0 0 1 TeXcolorrgb 1449 4099 a SDict begin H.S end 1449 4099 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1661 4042 a SDict begin H.R end 1661 4042 a 1661 4098 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1661 4098 a 0 TeXcolorgray 21 w Fx(incompatible)f (with)j(earlier)e(v)o(ersions)h(of)g(CFITSIO)p 0 TeXcolorgray 652 4253 a(\225)p 0 TeXcolorgray 41 w(In)p 0 0 1 TeXcolorrgb 824 4254 a SDict begin H.S end 824 4254 a 0 0 1 TeXcolorrgb -1 x Fx(FITS.h)p 0 0 1 TeXcolorrgb 1057 4197 a SDict begin H.R end 1057 4197 a 1057 4253 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (FITS_8h_source) cvn H.B /ANN pdfmark end 1057 4253 a 0 TeXcolorgray 32 w Fx(de\002nition,)34 b(remo)o(v)o(ed)29 b(both)i(friend)g(declarations)f(of)i(HDUCreator)f(Mak)o(e)722 4353 y(functions.)52 b(It)30 b(seems)g(neither)e(function)g(needs)h(to) h(be)g(a)g(friend,)g(and)f(one)g(of)g(them)h(is)722 4453 y(actually)20 b(pri)n(v)n(ate.)k(Some)19 b(compilers)g(don')o(t)g(allo) n(w)h(this)h(\(report)d(came)i(from)f(MS)i(V)-5 b(isual-)722 4552 y(C++)21 b(user\).)p 0 TeXcolorgray 652 4707 a(\225)p 0 TeXcolorgray 41 w(Bug)j(\002x)h(in)f(Mak)o(e)g(function)e(of)i (HDUCreator)-5 b(.cxx.)36 b(When)24 b(creating)f(a)h(ne)n(w)g(ImageExt) 722 4807 y(\(and)18 b(not)h(the)g(primary\),)e(it)i(w)o(as)h(only)e (passing)g(the)h(v)o(ersion)f(number)f(along)h(for)g(\003oat)h(and)722 4907 y(double)i(types.)32 b(This)22 b(causes)h(problems)e(when)h(there) g(is)h(more)f(than)g(1)g(image)g(e)o(xtension)722 5006 y(with)f(the)f(same)g(name,)g(and)f(it)i(needs)f(the)g(v)o(ersion)f (number)f(to)j(distinguish)e(them.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 33 38 TeXDict begin 33 37 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.33) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(17)20 b(T)-8 b(odo)20 b(List)2342 b(33)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(A)21 b(couple)f(of)g(b)n(ug)g (\002x)o(es)h(to)f(the)h(\002rst/last/stride)g(v)o(ersion)e(of)i(PHDU)g (read)f(image)g(subset.)722 623 y(It)g(w)o(as)g(not)f(passing)f(the)h (proper)f(parameters)g(to)h(\002ts_read_subset,)f(and)g(w)o(as)i(not)f (al)o(w)o(ays)722 722 y(correctly)g(resizing)h(the)g(internal)f (m_image)g(array)-5 b(.)515 867 y SDict begin H.S end 515 867 a 515 867 a SDict begin 12 H.A end 515 867 a 515 867 a SDict begin [ /View [/XYZ H.V] /Dest (section.17) cvn H.B /DEST pdfmark end 515 867 a 0.25 TeXcolorgray 179 x Fs(17)107 b(T)-7 b(odo)25 b(List)p 0 TeXcolorgray 0 TeXcolorgray 515 1279 a SDict begin H.S end 515 1279 a 0 TeXcolorgray 0 TeXcolorgray 515 1279 a SDict begin H.R end 515 1279 a 515 1279 a SDict begin [ /View [/XYZ H.V] /Dest (todo) cvn H.B /DEST pdfmark end 515 1279 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1454 a SDict begin H.S end 515 1454 a 0 TeXcolorgray 0 TeXcolorgray 515 1454 a SDict begin H.R end 515 1454 a 515 1454 a SDict begin [ /View [/XYZ H.V] /Dest (todo__todo000001) cvn H.B /DEST pdfmark end 515 1454 a 0 TeXcolorgray Fy(Member)p 0 0 1 TeXcolorrgb 844 1455 a SDict begin H.S end 844 1455 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::AsciiT)-8 b(able::AsciiT)g(able)p 0 0 1 TeXcolorrgb 1922 1397 a SDict begin H.R end 1922 1397 a 1922 1454 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a56e7f260511c4a4ee08c84d00c624913) cvn H.B /ANN pdfmark end 1922 1454 a 0 TeXcolorgray 26 w Fy(\(FITSBase)25 b Fp(\003)p Fy(p,)h(const)f(String)g(&hduName,)639 1554 y(int)18 b(r)o(o)o(ws,)f(const)g(std::v)o(ector)p Fu(<)e Fy(String)i Fu(>)h Fy(&columnName=std::v)o(ector)p Fu(<)c Fy(String)j Fu(>)p Fy(\(\),)639 1654 y(const)k(std::v)o(ector)p Fu(<)d Fy(String)j Fu(>)g Fy(&columnFmt=std::v)o(ector)p Fu(<)d Fy(String)j Fu(>)p Fy(\(\),)f(const)g(std-)639 1753 y(::v)o(ector)p Fu(<)e Fy(String)i Fu(>)h Fy(&columnUnit=std::v)o (ector)p Fu(<)d Fy(String)i Fu(>)p Fy(\(\),)f(int)i(v)o(ersion=1\))p 0 TeXcolorgray 639 1874 a Fx({enforce)e(equal)g(dimensions)g(for)h (arrays)f(input)h(to)g(AsciiT)-7 b(able,)20 b(BinT)-7 b(able)21 b(writing)e(ctor})p 0 TeXcolorgray 0 TeXcolorgray 515 2016 a SDict begin H.S end 515 2016 a 0 TeXcolorgray 0 TeXcolorgray 515 2016 a SDict begin H.R end 515 2016 a 515 2016 a SDict begin [ /View [/XYZ H.V] /Dest (todo__todo000003) cvn H.B /DEST pdfmark end 515 2016 a 0 TeXcolorgray Fy(Member)p 0 0 1 TeXcolorrgb 875 2033 a SDict begin H.S end 875 2033 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITS::addImage)p 0 0 1 TeXcolorrgb 1751 1959 a SDict begin H.R end 1751 1959 a 1751 2016 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_afe53063dd05cf44654a311e5d17d4da8) cvn H.B /ANN pdfmark end 1751 2016 a 0 TeXcolorgray 55 w Fy(\(const)55 b(String)g(&hduName,)64 b(int)55 b(bpix,)64 b(std-)639 2116 y(::v)o(ector)p Fu(<)18 b Fy(long)i Fu(>)h Fy(&naxes,)f(int)g(v)o(ersion=1\))p 0 TeXcolorgray 639 2237 a Fx(Add)g(a)h(function)d(for)i(replacing)e (the)j(primary)d(image)p 0 TeXcolorgray 0 TeXcolorgray 515 2379 a SDict begin H.S end 515 2379 a 0 TeXcolorgray 0 TeXcolorgray 515 2379 a SDict begin H.R end 515 2379 a 515 2379 a SDict begin [ /View [/XYZ H.V] /Dest (todo__todo000002) cvn H.B /DEST pdfmark end 515 2379 a 0 TeXcolorgray Fy(Member)p 0 0 1 TeXcolorrgb 870 2380 a SDict begin H.S end 870 2380 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::FITS::addT)-8 b(able)p 0 0 1 TeXcolorrgb 1720 2322 a SDict begin H.R end 1720 2322 a 1720 2379 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) cvn H.B /ANN pdfmark end 1720 2379 a 0 TeXcolorgray 51 w Fy(\(const)50 b(String)g(&hduName,)58 b(int)50 b(r)o(o)o(ws,)58 b(const)639 2479 y(std::v)o(ector)p Fu(<)39 b Fy(String)i Fu(>)f Fy(&columnName=std::v)o(ector)p Fu(<)f Fy(String)i Fu(>)p Fy(\(\),)j(const)d(std-)639 2578 y(::v)o(ector)p Fu(<)19 b Fy(String)h Fu(>)h Fy(&columnFmt=std::v) o(ector)p Fu(<)d Fy(String)i Fu(>)p Fy(\(\),)g(const)h(std::v)o(ector)p Fu(<)639 2678 y Fy(String)31 b Fu(>)f Fy(&columnUnit=std::v)o(ector)p Fu(<)f Fy(String)i Fu(>)p Fy(\(\),)h(HduT)-6 b(ype)31 b(type=BinaryTbl,)639 2777 y(int)21 b(v)o(ersion=1\))p 0 TeXcolorgray 639 2896 a Fx(the)26 b(code)f(should)g(one)h(day)f (check)g(that)h(the)g(v)o(ersion)e(k)o(e)o(yw)o(ord)g(is)j(higher)e (than)g(an)o(y)g(other)639 2996 y(v)o(ersions)19 b(already)h(added)f (to)h(the)g(FITS)h(object)e(\(although)f(c\002tsio)j(doesn')o(t)e(do)g (this)i(either\).)p 0 TeXcolorgray 0 TeXcolorgray 515 3141 a SDict begin H.S end 515 3141 a 0 TeXcolorgray 0 TeXcolorgray 515 3141 a SDict begin H.R end 515 3141 a 515 3141 a SDict begin [ /View [/XYZ H.V] /Dest (todo__todo000006) cvn H.B /DEST pdfmark end 515 3141 a 0 TeXcolorgray Fy(Class)p 0 0 1 TeXcolorrgb 725 3142 a SDict begin H.S end 725 3142 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::PHDU)p 0 0 1 TeXcolorrgb 1241 3084 a SDict begin H.R end 1241 3084 a 1241 3141 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1241 3141 a 0 TeXcolorgray 0 TeXcolorgray 639 3253 a Fx(Implement)e(functions)g(that)h(allo)n(w)g (replacement)e(of)i(the)h(primary)d(image)515 3398 y SDict begin H.S end 515 3398 a 515 3398 a SDict begin 12 H.A end 515 3398 a 515 3398 a SDict begin [ /View [/XYZ H.V] /Dest (section.18) cvn H.B /DEST pdfmark end 515 3398 a 0.25 TeXcolorgray 179 x Fs(18)107 b(Module)25 b(Inde)o(x)p 0 TeXcolorgray 515 3665 a SDict begin H.S end 515 3665 a 515 3665 a SDict begin 12 H.A end 515 3665 a 515 3665 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.18.1) cvn H.B /DEST pdfmark end 515 3665 a 0.25 TeXcolorgray 162 x Fq(18.1)89 b(Modules)p 0 TeXcolorgray 515 4030 a Fx(Here)20 b(is)h(a)g(list)g(of)f (all)h(modules:)p 0 TeXcolorgray 0 TeXcolorgray 633 4212 a Fy(FITS)g(Exceptions)p 0 0 1 TeXcolorrgb 3296 4213 a SDict begin H.S end 3296 4213 a 0 0 1 TeXcolorrgb -1 x Fy(39)p 0 0 1 TeXcolorrgb 3379 4155 a SDict begin H.R end 3379 4155 a 3379 4212 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.22.1) cvn H.B /ANN pdfmark end 3379 4212 a 0 TeXcolorgray 515 4356 a SDict begin H.S end 515 4356 a 515 4356 a SDict begin 12 H.A end 515 4356 a 515 4356 a SDict begin [ /View [/XYZ H.V] /Dest (section.19) cvn H.B /DEST pdfmark end 515 4356 a 0.25 TeXcolorgray 180 x Fs(19)107 b(Namespace)25 b(Inde)o(x)p 0 TeXcolorgray 515 4645 a SDict begin H.S end 515 4645 a 515 4645 a SDict begin 12 H.A end 515 4645 a 515 4645 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.19.1) cvn H.B /DEST pdfmark end 515 4645 a 0.25 TeXcolorgray 140 x Fq(19.1)89 b(Namespace)21 b(List)p 0 TeXcolorgray 515 4988 a Fx(Here)f(is)h(a)g(list)g(of)f(all)h(documented)c (namespaces)i(with)i(brief)e(descriptions:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 34 39 TeXDict begin 34 38 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.34) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(20)20 b(Hierar)o(chical)e(Index)2008 b(34)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 524 a SDict begin H.S end 633 524 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts)p 0 0 1 TeXcolorrgb 859 466 a SDict begin H.R end 859 466 a 859 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 859 523 a 0 TeXcolorgray 757 623 a Fy(Namespace)20 b(enclosing)h(all)p 0 0 1 TeXcolorrgb 1636 624 a SDict begin H.S end 1636 624 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts)p 0 0 1 TeXcolorrgb 1862 565 a SDict begin H.R end 1862 565 a 1862 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1862 623 a 0 TeXcolorgray 21 w Fy(classes)g(and)f(globals)g(de\002nitions)p 0 0 1 TeXcolorrgb 3296 624 a SDict begin H.S end 3296 624 a 0 0 1 TeXcolorrgb -1 x Fy(40)p 0 0 1 TeXcolorrgb 3379 565 a SDict begin H.R end 3379 565 a 3379 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.23.1) cvn H.B /ANN pdfmark end 3379 623 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 806 a SDict begin H.S end 633 806 a 0 0 1 TeXcolorrgb -1 x Fy(FITSUtil)p 0 0 1 TeXcolorrgb 951 748 a SDict begin H.R end 951 748 a 951 805 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceFITSUtil) cvn H.B /ANN pdfmark end 951 805 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 757 906 a SDict begin H.S end 757 906 a 0 0 1 TeXcolorrgb -1 x Fy(FITSUtil)p 0 0 1 TeXcolorrgb 1076 848 a SDict begin H.R end 1076 848 a 1076 905 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceFITSUtil) cvn H.B /ANN pdfmark end 1076 905 a 0 TeXcolorgray 15 w Fy(is)d(a)e(namespace)g (containing)f(functions)i(used)g(inter)o(nally)f(by)p 0 0 1 TeXcolorrgb 2997 906 a SDict begin H.S end 2997 906 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts)p 0 0 1 TeXcolorrgb 3223 848 a SDict begin H.R end 3223 848 a 3223 905 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3223 905 a 0 TeXcolorgray Fy(,)757 1005 y(b)n(ut)21 b(which)g(might)g(be)f(of)g(use)h(f)n(or)f(other)g (applications)p 0 0 1 TeXcolorrgb 3296 1005 a SDict begin H.S end 3296 1005 a 0 0 1 TeXcolorrgb Fy(42)p 0 0 1 TeXcolorrgb 3379 947 a SDict begin H.R end 3379 947 a 3379 1005 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.23.2) cvn H.B /ANN pdfmark end 3379 1005 a 0 TeXcolorgray 515 1152 a SDict begin H.S end 515 1152 a 515 1152 a SDict begin 12 H.A end 515 1152 a 515 1152 a SDict begin [ /View [/XYZ H.V] /Dest (section.20) cvn H.B /DEST pdfmark end 515 1152 a 0.25 TeXcolorgray 180 x Fs(20)107 b(Hierar)n(c)o(hical)25 b(Inde)o(x)p 0 TeXcolorgray 515 1420 a SDict begin H.S end 515 1420 a 515 1420 a SDict begin 12 H.A end 515 1420 a 515 1420 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.20.1) cvn H.B /DEST pdfmark end 515 1420 a 0.25 TeXcolorgray 161 x Fq(20.1)89 b(Class)21 b(Hierar)o(c)o(h)o(y)p 0 TeXcolorgray 515 1784 a Fx(This)f(inheritance)f(list)i(is)g(sorted)f (roughly)-5 b(,)17 b(b)n(ut)j(not)g(completely)-5 b(,)18 b(alphabetically:)p 0 TeXcolorgray 0 TeXcolorgray 633 1967 a Fy(CC\002ts::Column)p 0 0 1 TeXcolorrgb 3296 1968 a SDict begin H.S end 3296 1968 a 0 0 1 TeXcolorrgb -1 x Fy(50)p 0 0 1 TeXcolorrgb 3379 1910 a SDict begin H.R end 3379 1910 a 3379 1967 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.3) cvn H.B /ANN pdfmark end 3379 1967 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2150 a Fy(CC\002ts::FITS)p 0 0 1 TeXcolorrgb 3296 2151 a SDict begin H.S end 3296 2151 a 0 0 1 TeXcolorrgb -1 x Fy(84)p 0 0 1 TeXcolorrgb 3379 2092 a SDict begin H.R end 3379 2092 a 3379 2150 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.14) cvn H.B /ANN pdfmark end 3379 2150 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2332 a Fy(CC\002ts::FitsException)p 0 0 1 TeXcolorrgb 3254 2333 a SDict begin H.S end 3254 2333 a 0 0 1 TeXcolorrgb -1 x Fy(103)p 0 0 1 TeXcolorrgb 3379 2275 a SDict begin H.R end 3379 2275 a 3379 2332 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.20) cvn H.B /ANN pdfmark end 3379 2332 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 2515 a Fy(CC\002ts::Column::Insuf\002cientElements)p 0 0 1 TeXcolorrgb 3296 2516 a SDict begin H.S end 3296 2516 a 0 0 1 TeXcolorrgb -1 x Fy(65)p 0 0 1 TeXcolorrgb 3379 2458 a SDict begin H.R end 3379 2458 a 3379 2515 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.4) cvn H.B /ANN pdfmark end 3379 2515 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 2698 a Fy(CC\002ts::Column::In)m(v)o(alidDataT)-6 b(ype)p 0 0 1 TeXcolorrgb 3296 2699 a SDict begin H.S end 3296 2699 a 0 0 1 TeXcolorrgb -1 x Fy(66)p 0 0 1 TeXcolorrgb 3379 2640 a SDict begin H.R end 3379 2640 a 3379 2698 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.5) cvn H.B /ANN pdfmark end 3379 2698 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 2880 a Fy(CC\002ts::Column::In)m(v)o (alidNumberOfRo)o(ws)p 0 0 1 TeXcolorrgb 3296 2881 a SDict begin H.S end 3296 2881 a 0 0 1 TeXcolorrgb -1 x Fy(67)p 0 0 1 TeXcolorrgb 3379 2823 a SDict begin H.R end 3379 2823 a 3379 2880 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.6) cvn H.B /ANN pdfmark end 3379 2880 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3063 a Fy(CC\002ts::Column::In)m(v)o (alidRo)o(wNumber)p 0 0 1 TeXcolorrgb 3296 3064 a SDict begin H.S end 3296 3064 a 0 0 1 TeXcolorrgb -1 x Fy(68)p 0 0 1 TeXcolorrgb 3379 3006 a SDict begin H.R end 3379 3006 a 3379 3063 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.7) cvn H.B /ANN pdfmark end 3379 3063 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3246 a Fy(CC\002ts::Column::In)m(v)o (alidRo)o(wP)o(arameter)p 0 0 1 TeXcolorrgb 3296 3247 a SDict begin H.S end 3296 3247 a 0 0 1 TeXcolorrgb -1 x Fy(69)p 0 0 1 TeXcolorrgb 3379 3188 a SDict begin H.R end 3379 3188 a 3379 3246 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.8) cvn H.B /ANN pdfmark end 3379 3246 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3428 a Fy(CC\002ts::Column::NoNullV)e (alue)p 0 0 1 TeXcolorrgb 3296 3429 a SDict begin H.S end 3296 3429 a 0 0 1 TeXcolorrgb -1 x Fy(70)p 0 0 1 TeXcolorrgb 3379 3371 a SDict begin H.R end 3379 3371 a 3379 3428 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.9) cvn H.B /ANN pdfmark end 3379 3428 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3611 a Fy(CC\002ts::Column::RangeErr) o(or)p 0 0 1 TeXcolorrgb 3296 3611 a SDict begin H.S end 3296 3611 a 0 0 1 TeXcolorrgb Fy(71)p 0 0 1 TeXcolorrgb 3379 3554 a SDict begin H.R end 3379 3554 a 3379 3611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.10) cvn H.B /ANN pdfmark end 3379 3611 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3793 a Fy(CC\002ts::Column::Wr)o(ongColumnT)i(ype)p 0 0 1 TeXcolorrgb 3296 3793 a SDict begin H.S end 3296 3793 a 0 0 1 TeXcolorrgb Fy(72)p 0 0 1 TeXcolorrgb 3379 3736 a SDict begin H.R end 3379 3736 a 3379 3793 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.11) cvn H.B /ANN pdfmark end 3379 3793 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3976 a Fy(CC\002ts::ExtHDU::Wr)o(ongExtensionT)g(ype)p 0 0 1 TeXcolorrgb 3296 3977 a SDict begin H.S end 3296 3977 a 0 0 1 TeXcolorrgb -1 x Fy(83)p 0 0 1 TeXcolorrgb 3379 3919 a SDict begin H.R end 3379 3919 a 3379 3976 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.13) cvn H.B /ANN pdfmark end 3379 3976 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 4159 a Fy(CC\002ts::FITS::CantCr)o(eate)p 0 0 1 TeXcolorrgb 3296 4160 a SDict begin H.S end 3296 4160 a 0 0 1 TeXcolorrgb -1 x Fy(98)p 0 0 1 TeXcolorrgb 3379 4102 a SDict begin H.R end 3379 4102 a 3379 4159 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.15) cvn H.B /ANN pdfmark end 3379 4159 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 4341 a Fy(CC\002ts::FITS::CantOpen)p 0 0 1 TeXcolorrgb 3296 4342 a SDict begin H.S end 3296 4342 a 0 0 1 TeXcolorrgb -1 x Fy(99)p 0 0 1 TeXcolorrgb 3379 4284 a SDict begin H.R end 3379 4284 a 3379 4341 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.16) cvn H.B /ANN pdfmark end 3379 4341 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 4524 a Fy(CC\002ts::FITS::NoSuchHDU)p 0 0 1 TeXcolorrgb 3254 4525 a SDict begin H.S end 3254 4525 a 0 0 1 TeXcolorrgb -1 x Fy(100)p 0 0 1 TeXcolorrgb 3379 4467 a SDict begin H.R end 3379 4467 a 3379 4524 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.17) cvn H.B /ANN pdfmark end 3379 4524 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 4707 a Fy(CC\002ts::FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 3254 4708 a SDict begin H.S end 3254 4708 a 0 0 1 TeXcolorrgb -1 x Fy(101)p 0 0 1 TeXcolorrgb 3379 4649 a SDict begin H.R end 3379 4649 a 3379 4707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.18) cvn H.B /ANN pdfmark end 3379 4707 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 4889 a Fy(CC\002ts::FitsErr)o(or)p 0 0 1 TeXcolorrgb 3254 4890 a SDict begin H.S end 3254 4890 a 0 0 1 TeXcolorrgb -1 x Fy(102)p 0 0 1 TeXcolorrgb 3379 4832 a SDict begin H.R end 3379 4832 a 3379 4889 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.19) cvn H.B /ANN pdfmark end 3379 4889 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 35 40 TeXDict begin 35 39 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.35) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(20.1)81 b(Class)21 b(Hierar)o(ch)o(y)1979 b(35)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 523 a(CC\002ts::FITSUtil::Unr)o(ecognizedT)-6 b(ype)p 0 0 1 TeXcolorrgb 3254 523 a SDict begin H.S end 3254 523 a 0 0 1 TeXcolorrgb Fy(112)p 0 0 1 TeXcolorrgb 3379 466 a SDict begin H.R end 3379 466 a 3379 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.31) cvn H.B /ANN pdfmark end 3379 523 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 706 a Fy(CC\002ts::HDU::In)m(v)o(alidExtensionT)g (ype)p 0 0 1 TeXcolorrgb 3254 706 a SDict begin H.S end 3254 706 a 0 0 1 TeXcolorrgb Fy(121)p 0 0 1 TeXcolorrgb 3379 648 a SDict begin H.R end 3379 648 a 3379 706 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.33) cvn H.B /ANN pdfmark end 3379 706 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 888 a Fy(CC\002ts::HDU::In)m(v)o(alidImageDataT)g (ype)p 0 0 1 TeXcolorrgb 3254 888 a SDict begin H.S end 3254 888 a 0 0 1 TeXcolorrgb Fy(122)p 0 0 1 TeXcolorrgb 3379 831 a SDict begin H.R end 3379 831 a 3379 888 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.34) cvn H.B /ANN pdfmark end 3379 888 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 1071 a Fy(CC\002ts::HDU::NoNullV)e(alue)p 0 0 1 TeXcolorrgb 3254 1072 a SDict begin H.S end 3254 1072 a 0 0 1 TeXcolorrgb -1 x Fy(123)p 0 0 1 TeXcolorrgb 3379 1014 a SDict begin H.R end 3379 1014 a 3379 1071 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.35) cvn H.B /ANN pdfmark end 3379 1071 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 1254 a Fy(CC\002ts::HDU::NoSuchK)n(eyw)o(ord)p 0 0 1 TeXcolorrgb 3254 1255 a SDict begin H.S end 3254 1255 a 0 0 1 TeXcolorrgb -1 x Fy(125)p 0 0 1 TeXcolorrgb 3379 1196 a SDict begin H.R end 3379 1196 a 3379 1254 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.36) cvn H.B /ANN pdfmark end 3379 1254 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 1436 a Fy(CC\002ts::T)g(able::NoSuchColumn)p 0 0 1 TeXcolorrgb 3254 1436 a SDict begin H.S end 3254 1436 a 0 0 1 TeXcolorrgb Fy(144)p 0 0 1 TeXcolorrgb 3379 1379 a SDict begin H.R end 3379 1379 a 3379 1436 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.41) cvn H.B /ANN pdfmark end 3379 1436 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 1619 a Fy(CC\002ts::FitsF)n(atal)p 0 0 1 TeXcolorrgb 3254 1620 a SDict begin H.S end 3254 1620 a 0 0 1 TeXcolorrgb -1 x Fy(105)p 0 0 1 TeXcolorrgb 3379 1562 a SDict begin H.R end 3379 1562 a 3379 1619 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.21) cvn H.B /ANN pdfmark end 3379 1619 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 1802 a Fy(CC\002ts::FITSUtil::auto_array_ptr)p Fu(<)15 b Fy(X)20 b Fu(>)p 0 0 1 TeXcolorrgb 3254 1803 a SDict begin H.S end 3254 1803 a 0 0 1 TeXcolorrgb -1 x Fy(106)p 0 0 1 TeXcolorrgb 3379 1744 a SDict begin H.R end 3379 1744 a 3379 1802 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.22) cvn H.B /ANN pdfmark end 3379 1802 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 1984 a Fy (CC\002ts::FITSUtil::CAarray)p Fu(<)d Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 3254 1985 a SDict begin H.S end 3254 1985 a 0 0 1 TeXcolorrgb -1 x Fy(108)p 0 0 1 TeXcolorrgb 3379 1927 a SDict begin H.R end 3379 1927 a 3379 1984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.23) cvn H.B /ANN pdfmark end 3379 1984 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2167 a Fy(CC\002ts::FITSUtil::CVAarray)p Fu(<)c Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 3254 2168 a SDict begin H.S end 3254 2168 a 0 0 1 TeXcolorrgb -1 x Fy(108)p 0 0 1 TeXcolorrgb 3379 2110 a SDict begin H.R end 3379 2110 a 3379 2167 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.24) cvn H.B /ANN pdfmark end 3379 2167 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2350 a Fy(CC\002ts::FITSUtil::CV)-8 b(array)p Fu(<)17 b Fy(T)22 b Fu(>)p 0 0 1 TeXcolorrgb 3254 2351 a SDict begin H.S end 3254 2351 a 0 0 1 TeXcolorrgb -1 x Fy(109)p 0 0 1 TeXcolorrgb 3379 2292 a SDict begin H.R end 3379 2292 a 3379 2350 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.25) cvn H.B /ANN pdfmark end 3379 2350 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2532 a Fy(CC\002ts::FITSUtil::MatchName)p Fu(<)c Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 3254 2533 a SDict begin H.S end 3254 2533 a 0 0 1 TeXcolorrgb -1 x Fy(109)p 0 0 1 TeXcolorrgb 3379 2475 a SDict begin H.R end 3379 2475 a 3379 2532 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.26) cvn H.B /ANN pdfmark end 3379 2532 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2715 a Fy (CC\002ts::FITSUtil::MatchNum)p Fu(<)e Fy(T)i Fu(>)p 0 0 1 TeXcolorrgb 3254 2716 a SDict begin H.S end 3254 2716 a 0 0 1 TeXcolorrgb -1 x Fy(110)p 0 0 1 TeXcolorrgb 3379 2658 a SDict begin H.R end 3379 2658 a 3379 2715 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.27) cvn H.B /ANN pdfmark end 3379 2715 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 2897 a Fy(CC\002ts::FITSUtil::MatchPtrName)p Fu(<)c Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 3254 2898 a SDict begin H.S end 3254 2898 a 0 0 1 TeXcolorrgb -1 x Fy(110)p 0 0 1 TeXcolorrgb 3379 2840 a SDict begin H.R end 3379 2840 a 3379 2897 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.28) cvn H.B /ANN pdfmark end 3379 2897 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 3080 a Fy (CC\002ts::FITSUtil::MatchPtrNum)p Fu(<)d Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 3254 3080 a SDict begin H.S end 3254 3080 a 0 0 1 TeXcolorrgb Fy(111)p 0 0 1 TeXcolorrgb 3379 3023 a SDict begin H.R end 3379 3023 a 3379 3080 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.29) cvn H.B /ANN pdfmark end 3379 3080 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 3263 a Fy(CC\002ts::FITSUtil::MatchT)-6 b(ype)p Fu(<)18 b Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 3254 3263 a SDict begin H.S end 3254 3263 a 0 0 1 TeXcolorrgb Fy(111)p 0 0 1 TeXcolorrgb 3379 3206 a SDict begin H.R end 3379 3206 a 3379 3263 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.30) cvn H.B /ANN pdfmark end 3379 3263 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 3445 a Fy(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 3254 3445 a SDict begin H.S end 3254 3445 a 0 0 1 TeXcolorrgb Fy(112)p 0 0 1 TeXcolorrgb 3379 3388 a SDict begin H.R end 3379 3388 a 3379 3445 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.32) cvn H.B /ANN pdfmark end 3379 3445 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 3628 a Fy(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 3296 3628 a SDict begin H.S end 3296 3628 a 0 0 1 TeXcolorrgb Fy(74)p 0 0 1 TeXcolorrgb 3379 3571 a SDict begin H.R end 3379 3571 a 3379 3628 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.12) cvn H.B /ANN pdfmark end 3379 3628 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 869 3811 a Fy(CC\002ts::ImageExt)p Fu(<)d Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 3254 3812 a SDict begin H.S end 3254 3812 a 0 0 1 TeXcolorrgb -1 x Fy(126)p 0 0 1 TeXcolorrgb 3379 3754 a SDict begin H.R end 3379 3754 a 3379 3811 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.37) cvn H.B /ANN pdfmark end 3379 3811 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 869 3993 a Fy(CC\002ts::T)-8 b(able)p 0 0 1 TeXcolorrgb 3254 3994 a SDict begin H.S end 3254 3994 a 0 0 1 TeXcolorrgb -1 x Fy(138)p 0 0 1 TeXcolorrgb 3379 3936 a SDict begin H.R end 3379 3936 a 3379 3993 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.40) cvn H.B /ANN pdfmark end 3379 3993 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 987 4176 a Fy(CC\002ts::AsciiT)g(able)p 0 0 1 TeXcolorrgb 3296 4176 a SDict begin H.S end 3296 4176 a 0 0 1 TeXcolorrgb Fy(42)p 0 0 1 TeXcolorrgb 3379 4119 a SDict begin H.R end 3379 4119 a 3379 4176 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.1) cvn H.B /ANN pdfmark end 3379 4176 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 987 4359 a Fy(CC\002ts::BinT)g(able)p 0 0 1 TeXcolorrgb 3296 4360 a SDict begin H.S end 3296 4360 a 0 0 1 TeXcolorrgb -1 x Fy(46)p 0 0 1 TeXcolorrgb 3379 4301 a SDict begin H.R end 3379 4301 a 3379 4359 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.2) cvn H.B /ANN pdfmark end 3379 4359 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 751 4541 a Fy(CC\002ts::PHDU)p 0 0 1 TeXcolorrgb 3254 4542 a SDict begin H.S end 3254 4542 a 0 0 1 TeXcolorrgb -1 x Fy(131)p 0 0 1 TeXcolorrgb 3379 4484 a SDict begin H.R end 3379 4484 a 3379 4541 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.39) cvn H.B /ANN pdfmark end 3379 4541 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 633 4724 a Fy(CC\002ts::K)n(eyw)o(ord)p 0 0 1 TeXcolorrgb 3254 4725 a SDict begin H.S end 3254 4725 a 0 0 1 TeXcolorrgb -1 x Fy(128)p 0 0 1 TeXcolorrgb 3379 4667 a SDict begin H.R end 3379 4667 a 3379 4724 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.38) cvn H.B /ANN pdfmark end 3379 4724 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 36 41 TeXDict begin 36 40 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.36) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(21)20 b(Class)g(Index)2265 b(36)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (section.21) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fs(21)107 b(Class)24 b(Inde)o(x)p 0 TeXcolorgray 515 611 a SDict begin H.S end 515 611 a 515 611 a SDict begin 12 H.A end 515 611 a 515 611 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.21.1) cvn H.B /DEST pdfmark end 515 611 a 0.25 TeXcolorgray 161 x Fq(21.1)89 b(Class)21 b(List)p 0 TeXcolorgray 515 975 a Fx(Here)f(are)g(the)g(classes,)h(structs,)f (unions)g(and)f(interf)o(aces)h(with)g(brief)g(descriptions:)p 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1159 a SDict begin H.S end 633 1159 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::AsciiT)-8 b(able)p 0 0 1 TeXcolorrgb 1285 1101 a SDict begin H.R end 1285 1101 a 1285 1158 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1285 1158 a 0 TeXcolorgray 757 1258 a Fy(Class)21 b(Repr)o(esenting)f(Ascii)p 0 0 1 TeXcolorrgb 1653 1259 a SDict begin H.S end 1653 1259 a 0 0 1 TeXcolorrgb -1 x Fy(T)-8 b(able)p 0 0 1 TeXcolorrgb 1848 1200 a SDict begin H.R end 1848 1200 a 1848 1258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1848 1258 a 0 TeXcolorgray 21 w Fy(Extensions)p 0 0 1 TeXcolorrgb 3296 1258 a SDict begin H.S end 3296 1258 a 0 0 1 TeXcolorrgb Fy(42)p 0 0 1 TeXcolorrgb 3379 1200 a SDict begin H.R end 3379 1200 a 3379 1258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.1) cvn H.B /ANN pdfmark end 3379 1258 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1441 a SDict begin H.S end 633 1441 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::BinT)g(able)p 0 0 1 TeXcolorrgb 1234 1383 a SDict begin H.R end 1234 1383 a 1234 1440 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1234 1440 a 0 TeXcolorgray 757 1540 a Fy(Class)19 b(Repr)o(esenting)f(Binary)p 0 0 1 TeXcolorrgb 1716 1541 a SDict begin H.S end 1716 1541 a 0 0 1 TeXcolorrgb -1 x Fy(T)-8 b(able)p 0 0 1 TeXcolorrgb 1912 1483 a SDict begin H.R end 1912 1483 a 1912 1540 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1912 1540 a 0 TeXcolorgray 19 w Fy(Extensions.)24 b(Contains)18 b(columns)h(with)757 1640 y(scalar)h(or)g(v)o(ector)g(r)o (o)o(w)f(entries)p 0 0 1 TeXcolorrgb 3296 1641 a SDict begin H.S end 3296 1641 a 0 0 1 TeXcolorrgb -1 x Fy(46)p 0 0 1 TeXcolorrgb 3379 1582 a SDict begin H.R end 3379 1582 a 3379 1640 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.2) cvn H.B /ANN pdfmark end 3379 1640 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1823 a SDict begin H.S end 633 1823 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::Column)p 0 0 1 TeXcolorrgb 1200 1765 a SDict begin H.R end 1200 1765 a 1200 1822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1200 1822 a 0 TeXcolorgray 757 1922 a Fy(Abstract)h(base)h(class)f(f)n (or)p 0 0 1 TeXcolorrgb 1576 1923 a SDict begin H.S end 1576 1923 a 0 0 1 TeXcolorrgb -1 x Fy(Column)p 0 0 1 TeXcolorrgb 1862 1865 a SDict begin H.R end 1862 1865 a 1862 1922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1862 1922 a 0 TeXcolorgray 21 w Fy(objects)p 0 0 1 TeXcolorrgb 3296 1923 a SDict begin H.S end 3296 1923 a 0 0 1 TeXcolorrgb -1 x Fy(50)p 0 0 1 TeXcolorrgb 3379 1865 a SDict begin H.R end 3379 1865 a 3379 1922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.3) cvn H.B /ANN pdfmark end 3379 1922 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2105 a SDict begin H.S end 633 2105 a 0 0 1 TeXcolorrgb -1 x Fy (CC\002ts::Column::Insuf\002cientElements)p 0 0 1 TeXcolorrgb 1984 2047 a SDict begin H.R end 1984 2047 a 1984 2104 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InsufficientElements) cvn H.B /ANN pdfmark end 1984 2104 a 0 TeXcolorgray 757 2204 a Fy(Exception)30 b(thr)o(o)o(wn)e(if)i(the)g(data)f(supplied) h(f)n(or)f(a)h(write)f(operation)f(is)j(less)757 2304 y(than)21 b(declar)o(ed)p 0 0 1 TeXcolorrgb 3296 2305 a SDict begin H.S end 3296 2305 a 0 0 1 TeXcolorrgb -1 x Fy(65)p 0 0 1 TeXcolorrgb 3379 2247 a SDict begin H.R end 3379 2247 a 3379 2304 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.4) cvn H.B /ANN pdfmark end 3379 2304 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2503 a SDict begin H.S end 633 2503 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::Column::In)m(v)o (alidDataT)-6 b(ype)p 0 0 1 TeXcolorrgb 1849 2429 a SDict begin H.R end 1849 2429 a 1849 2486 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidDataType) cvn H.B /ANN pdfmark end 1849 2486 a 0 TeXcolorgray 757 2586 a Fy(Exception)20 b(thr)o(o)o(wn)g(f)n(or)g(in)m(v)o(alid)g(data)f (type)h(inputs)p 0 0 1 TeXcolorrgb 3296 2587 a SDict begin H.S end 3296 2587 a 0 0 1 TeXcolorrgb -1 x Fy(66)p 0 0 1 TeXcolorrgb 3379 2529 a SDict begin H.R end 3379 2529 a 3379 2586 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.5) cvn H.B /ANN pdfmark end 3379 2586 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2770 a SDict begin H.S end 633 2770 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::Column::In)m(v)o (alidNumberOfRo)o(ws)p 0 0 1 TeXcolorrgb 2085 2711 a SDict begin H.R end 2085 2711 a 2085 2769 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidNumberOfRows) cvn H.B /ANN pdfmark end 2085 2769 a 0 TeXcolorgray 757 2868 a Fy(Exception)i(thr)o(o)o(wn)f(if)g(user)i(enters)e(a)h (non-positi)o(v)o(e)f(number)h(f)n(or)f(the)h(num-)757 2968 y(ber)f(of)f(r)o(o)o(ws)g(to)g(write)p 0 0 1 TeXcolorrgb 3296 2969 a SDict begin H.S end 3296 2969 a 0 0 1 TeXcolorrgb -1 x Fy(67)p 0 0 1 TeXcolorrgb 3379 2911 a SDict begin H.R end 3379 2911 a 3379 2968 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.6) cvn H.B /ANN pdfmark end 3379 2968 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3152 a SDict begin H.S end 633 3152 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::Column::In)m(v)o(alidRo)o(wNumber)p 0 0 1 TeXcolorrgb 1961 3093 a SDict begin H.R end 1961 3093 a 1961 3151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidRowNumber) cvn H.B /ANN pdfmark end 1961 3151 a 0 TeXcolorgray 757 3250 a Fy(Exception)26 b(thr)o(o)o(wn)g(on)h(attempting)e(to)h(r)o(ead)g(a)g(r)o(o)o(w)g (number)h(bey)n(ond)g(the)757 3350 y(end)21 b(of)f(a)g(table)p 0 0 1 TeXcolorrgb 3296 3351 a SDict begin H.S end 3296 3351 a 0 0 1 TeXcolorrgb -1 x Fy(68)p 0 0 1 TeXcolorrgb 3379 3293 a SDict begin H.R end 3379 3293 a 3379 3350 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.7) cvn H.B /ANN pdfmark end 3379 3350 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3533 a SDict begin H.S end 633 3533 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::Column::In)m(v)o(alidRo)o(wP)o (arameter)p 0 0 1 TeXcolorrgb 2043 3475 a SDict begin H.R end 2043 3475 a 2043 3532 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidRowParameter) cvn H.B /ANN pdfmark end 2043 3532 a 0 TeXcolorgray 757 3632 a Fy(Exception)g(thr)o (o)o(wn)g(on)g(incorr)o(ect)f(r)o(o)o(w)h(writing)g(r)o(equest)p 0 0 1 TeXcolorrgb 3296 3633 a SDict begin H.S end 3296 3633 a 0 0 1 TeXcolorrgb -1 x Fy(69)p 0 0 1 TeXcolorrgb 3379 3575 a SDict begin H.R end 3379 3575 a 3379 3632 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.8) cvn H.B /ANN pdfmark end 3379 3632 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3816 a SDict begin H.S end 633 3816 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::Column::NoNullV)-8 b(alue)p 0 0 1 TeXcolorrgb 1709 3758 a SDict begin H.R end 1709 3758 a 1709 3815 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1NoNullValue) cvn H.B /ANN pdfmark end 1709 3815 a 0 TeXcolorgray 757 3914 a Fy(Exception)29 b(thr)o(o)o(wn)g(if)g(a)h(null)g(v)o(alue)f(is)h(speci\002ed)g(without) f(support)h(fr)o(om)757 4014 y(existing)20 b(column)h(header)p 0 0 1 TeXcolorrgb 3296 4015 a SDict begin H.S end 3296 4015 a 0 0 1 TeXcolorrgb -1 x Fy(70)p 0 0 1 TeXcolorrgb 3379 3957 a SDict begin H.R end 3379 3957 a 3379 4014 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.9) cvn H.B /ANN pdfmark end 3379 4014 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4213 a SDict begin H.S end 633 4213 a 0 0 1 TeXcolorrgb -16 x Fy(CC\002ts::Column::RangeErr)o(or)p 0 0 1 TeXcolorrgb 1687 4139 a SDict begin H.R end 1687 4139 a 1687 4197 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1RangeError) cvn H.B /ANN pdfmark end 1687 4197 a 0 TeXcolorgray 757 4296 a Fy(Exception)f(to)g(be)h(thr)o(o) o(wn)f(f)n(or)g(inputs)h(that)f(cause)h(range)f(err)o(ors)f(in)i (column)757 4396 y(r)o(ead)f(operations)p 0 0 1 TeXcolorrgb 3296 4396 a SDict begin H.S end 3296 4396 a 0 0 1 TeXcolorrgb Fy(71)p 0 0 1 TeXcolorrgb 3379 4339 a SDict begin H.R end 3379 4339 a 3379 4396 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.10) cvn H.B /ANN pdfmark end 3379 4396 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4595 a SDict begin H.S end 633 4595 a 0 0 1 TeXcolorrgb -16 x Fy(CC\002ts::Column::Wr)o(ongColumnT)-6 b(ype)p 0 0 1 TeXcolorrgb 1963 4521 a SDict begin H.R end 1963 4521 a 1963 4579 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1WrongColumnType) cvn H.B /ANN pdfmark end 1963 4579 a 0 TeXcolorgray 757 4678 a Fy(Exception)22 b(thr)o(o)o(wn)g(on)g (attempting)f(to)h(access)h(a)f(scalar)g(column)g(as)h(v)o(ector)757 4778 y(data)p 0 0 1 TeXcolorrgb 3296 4778 a SDict begin H.S end 3296 4778 a 0 0 1 TeXcolorrgb Fy(72)p 0 0 1 TeXcolorrgb 3379 4721 a SDict begin H.R end 3379 4721 a 3379 4778 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.11) cvn H.B /ANN pdfmark end 3379 4778 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 37 42 TeXDict begin 37 41 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.37) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(21.1)81 b(Class)21 b(List)2205 b(37)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 524 a SDict begin H.S end 633 524 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1223 466 a SDict begin H.R end 1223 466 a 1223 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1223 523 a 0 TeXcolorgray 757 623 a Fy(Base)28 b(class)f(f)n(or)f(all)p 0 0 1 TeXcolorrgb 1390 624 a SDict begin H.S end 1390 624 a 0 0 1 TeXcolorrgb -1 x Fy(FITS)p 0 0 1 TeXcolorrgb 1575 565 a SDict begin H.R end 1575 565 a 1575 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1575 623 a 0 TeXcolorgray 27 w Fy(extension)g(HDUs,)j(i.e.)45 b(Image)26 b(Extensions)h(and)757 722 y(T)-8 b(ables)p 0 0 1 TeXcolorrgb 3296 722 a SDict begin H.S end 3296 722 a 0 0 1 TeXcolorrgb Fy(74)p 0 0 1 TeXcolorrgb 3379 665 a SDict begin H.R end 3379 665 a 3379 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.12) cvn H.B /ANN pdfmark end 3379 722 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 922 a SDict begin H.S end 633 922 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::ExtHDU::Wr)o(ongExtensionT)i(ype)p 0 0 1 TeXcolorrgb 2050 848 a SDict begin H.R end 2050 848 a 2050 905 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 2050 905 a 0 TeXcolorgray 757 1005 a Fy(Exception)20 b(to)g(be)h(thr)o(o)o (wn)f(on)g(unmatched)h(extension)e(types)p 0 0 1 TeXcolorrgb 3296 1006 a SDict begin H.S end 3296 1006 a 0 0 1 TeXcolorrgb -1 x Fy(83)p 0 0 1 TeXcolorrgb 3379 947 a SDict begin H.R end 3379 947 a 3379 1005 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.13) cvn H.B /ANN pdfmark end 3379 1005 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1188 a SDict begin H.S end 633 1188 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::FITS)p 0 0 1 TeXcolorrgb 1099 1130 a SDict begin H.R end 1099 1130 a 1099 1187 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1099 1187 a 0 TeXcolorgray 757 1287 a Fy(Memory)h(object)g(r)o(epr)o(esentation)e(of)i(a)g(disk)p 0 0 1 TeXcolorrgb 2175 1288 a SDict begin H.S end 2175 1288 a 0 0 1 TeXcolorrgb -1 x Fy(FITS)p 0 0 1 TeXcolorrgb 2359 1230 a SDict begin H.R end 2359 1230 a 2359 1287 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2359 1287 a 0 TeXcolorgray 21 w Fy(\002le)p 0 0 1 TeXcolorrgb 3296 1288 a SDict begin H.S end 3296 1288 a 0 0 1 TeXcolorrgb -1 x Fy(84)p 0 0 1 TeXcolorrgb 3379 1230 a SDict begin H.R end 3379 1230 a 3379 1287 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.14) cvn H.B /ANN pdfmark end 3379 1287 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1470 a SDict begin H.S end 633 1470 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::FITS::CantCr)o(eate)p 0 0 1 TeXcolorrgb 1567 1412 a SDict begin H.R end 1567 1412 a 1567 1469 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /ANN pdfmark end 1567 1469 a 0 TeXcolorgray 757 1569 a Fy(Thr)o(o)o(wn)h(on)f(failur)o (e)g(to)g(cr)o(eate)e(new)j(\002le)p 0 0 1 TeXcolorrgb 3296 1570 a SDict begin H.S end 3296 1570 a 0 0 1 TeXcolorrgb -1 x Fy(98)p 0 0 1 TeXcolorrgb 3379 1512 a SDict begin H.R end 3379 1512 a 3379 1569 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.15) cvn H.B /ANN pdfmark end 3379 1569 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1769 a SDict begin H.S end 633 1769 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITS::CantOpen)p 0 0 1 TeXcolorrgb 1523 1695 a SDict begin H.R end 1523 1695 a 1523 1752 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1CantOpen) cvn H.B /ANN pdfmark end 1523 1752 a 0 TeXcolorgray 757 1851 a Fy(Thr)o(o)o(wn)g(on)f(failur)o(e)g(to)g(open)g(existing)g (\002le)p 0 0 1 TeXcolorrgb 3296 1852 a SDict begin H.S end 3296 1852 a 0 0 1 TeXcolorrgb -1 x Fy(99)p 0 0 1 TeXcolorrgb 3379 1794 a SDict begin H.R end 3379 1794 a 3379 1851 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.16) cvn H.B /ANN pdfmark end 3379 1851 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2035 a SDict begin H.S end 633 2035 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::FITS::NoSuchHDU)p 0 0 1 TeXcolorrgb 1615 1977 a SDict begin H.R end 1615 1977 a 1615 2034 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /ANN pdfmark end 1615 2034 a 0 TeXcolorgray 757 2134 a Fy(Exception)g(thr)o(o)o(wn)g(by) p 0 0 1 TeXcolorrgb 1518 2135 a SDict begin H.S end 1518 2135 a 0 0 1 TeXcolorrgb -1 x Fy(HDU)p 0 0 1 TeXcolorrgb 1703 2076 a SDict begin H.R end 1703 2076 a 1703 2134 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1703 2134 a 0 TeXcolorgray 21 w Fy(r)o(etrie)o(v)o(al)e (methods)p 0 0 1 TeXcolorrgb 3254 2135 a SDict begin H.S end 3254 2135 a 0 0 1 TeXcolorrgb -1 x Fy(100)p 0 0 1 TeXcolorrgb 3379 2076 a SDict begin H.R end 3379 2076 a 3379 2134 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.17) cvn H.B /ANN pdfmark end 3379 2134 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2333 a SDict begin H.S end 633 2333 a 0 0 1 TeXcolorrgb -17 x Fy (CC\002ts::FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 2021 2259 a SDict begin H.R end 2021 2259 a 2021 2316 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 2021 2316 a 0 TeXcolorgray 757 2416 a Fy(Thr)o(o)o(wn)f(f)n(or)e(unsupported)i(operations,)f(such) h(as)f(attempted)f(to)h(select)g(r)o(o)o(ws)757 2516 y(fr)o(om)k(an)g(image)g(extension)p 0 0 1 TeXcolorrgb 3254 2517 a SDict begin H.S end 3254 2517 a 0 0 1 TeXcolorrgb -1 x Fy(101)p 0 0 1 TeXcolorrgb 3379 2458 a SDict begin H.R end 3379 2458 a 3379 2516 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.18) cvn H.B /ANN pdfmark end 3379 2516 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2699 a SDict begin H.S end 633 2699 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::FitsErr)o(or)p 0 0 1 TeXcolorrgb 1254 2641 a SDict begin H.R end 1254 2641 a 1254 2698 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1254 2698 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 757 2799 a SDict begin H.S end 757 2799 a 0 0 1 TeXcolorrgb -1 x Fy(FitsErr)o(or)p 0 0 1 TeXcolorrgb 1097 2741 a SDict begin H.R end 1097 2741 a 1097 2798 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1097 2798 a 0 TeXcolorgray 21 w Fy(is)h(the)f(exception)g(thr)o(o)o(wn)g(by)g(non-zer)o(o)f (c\002tsio)h(status)g(codes)p 0 0 1 TeXcolorrgb 3254 2799 a SDict begin H.S end 3254 2799 a 0 0 1 TeXcolorrgb -1 x Fy(102)p 0 0 1 TeXcolorrgb 3379 2741 a SDict begin H.R end 3379 2741 a 3379 2798 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.19) cvn H.B /ANN pdfmark end 3379 2798 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2997 a SDict begin H.S end 633 2997 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FitsException)p 0 0 1 TeXcolorrgb 1403 2923 a SDict begin H.R end 1403 2923 a 1403 2980 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1403 2980 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 757 3097 a SDict begin H.S end 757 3097 a 0 0 1 TeXcolorrgb -17 x Fy(FitsException)p 0 0 1 TeXcolorrgb 1246 3023 a SDict begin H.R end 1246 3023 a 1246 3080 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1246 3080 a 0 TeXcolorgray 30 w Fy(is)30 b(the)f(base)g(class)h(f)n(or)e(all)i(exceptions)e(thr)o (o)o(wn)h(by)g(this)g(li-)757 3180 y(brary)p 0 0 1 TeXcolorrgb 3254 3181 a SDict begin H.S end 3254 3181 a 0 0 1 TeXcolorrgb -1 x Fy(103)p 0 0 1 TeXcolorrgb 3379 3123 a SDict begin H.R end 3379 3123 a 3379 3180 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.20) cvn H.B /ANN pdfmark end 3379 3180 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3363 a SDict begin H.S end 633 3363 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::FitsF)n(atal)p 0 0 1 TeXcolorrgb 1230 3305 a SDict begin H.R end 1230 3305 a 1230 3362 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsFatal) cvn H.B /ANN pdfmark end 1230 3362 a 0 TeXcolorgray 757 3462 a Fy([potential])20 b(base)i(class)g(f)n(or)f(exceptions)g(to) g(be)h(thr)o(o)o(wn)f(on)h(inter)o(nal)f(library)757 3562 y(err)o(or)p 0 0 1 TeXcolorrgb 3254 3563 a SDict begin H.S end 3254 3563 a 0 0 1 TeXcolorrgb -1 x Fy(105)p 0 0 1 TeXcolorrgb 3379 3504 a SDict begin H.R end 3379 3504 a 3379 3562 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.21) cvn H.B /ANN pdfmark end 3379 3562 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3761 a SDict begin H.S end 633 3761 a 0 0 1 TeXcolorrgb -17 x Fy (CC\002ts::FITSUtil::auto_array_ptr)p Fu(<)15 b Fy(X)20 b Fu(>)p 0 0 1 TeXcolorrgb 2067 3687 a SDict begin H.R end 2067 3687 a 2067 3744 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr) cvn H.B /ANN pdfmark end 2067 3744 a 0 TeXcolorgray 757 3844 a Fy(A)25 b(class)f(that)g(mimics)h(the)f(std::)33 b(library)23 b(auto_ptr)g(class,)i(b)n(ut)g(w)o(orks)f(with)757 3944 y(arrays)p 0 0 1 TeXcolorrgb 3254 3945 a SDict begin H.S end 3254 3945 a 0 0 1 TeXcolorrgb -1 x Fy(106)p 0 0 1 TeXcolorrgb 3379 3886 a SDict begin H.R end 3379 3886 a 3379 3944 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.22) cvn H.B /ANN pdfmark end 3379 3944 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4143 a SDict begin H.S end 633 4143 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITSUtil::CAarray)p Fu(<)17 b Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 1832 4069 a SDict begin H.R end 1832 4069 a 1832 4126 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CAarray) cvn H.B /ANN pdfmark end 1832 4126 a 0 TeXcolorgray 757 4226 a Fy(Function)g(object)g(r)o(etur)o(ning)f(C)i(array)e(fr)o(om)g (a)h(v)o(alarray)-6 b(.)26 b(see)p 0 0 1 TeXcolorrgb 2731 4243 a SDict begin H.S end 2731 4243 a 0 0 1 TeXcolorrgb -17 x Fy(CV)-8 b(array)p 0 0 1 TeXcolorrgb 3042 4169 a SDict begin H.R end 3042 4169 a 3042 4226 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 3042 4226 a 0 TeXcolorgray 21 w Fy(f)n(or)757 4325 y(details)p 0 0 1 TeXcolorrgb 3254 4326 a SDict begin H.S end 3254 4326 a 0 0 1 TeXcolorrgb -1 x Fy(108)p 0 0 1 TeXcolorrgb 3379 4268 a SDict begin H.R end 3379 4268 a 3379 4325 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.23) cvn H.B /ANN pdfmark end 3379 4325 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4525 a SDict begin H.S end 633 4525 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITSUtil::CVAarray)p Fu(<)17 b Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 1892 4451 a SDict begin H.R end 1892 4451 a 1892 4508 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVAarray) cvn H.B /ANN pdfmark end 1892 4508 a 0 TeXcolorgray 757 4608 a Fy(Function)29 b(object)e(r)o(etur)o(ning)h(C)h(array)e(fr)o(om) g(a)i(v)o(ector)e(of)h(v)o(alarrays.)48 b(see)p 0 0 1 TeXcolorrgb 757 4724 a SDict begin H.S end 757 4724 a 0 0 1 TeXcolorrgb -17 x Fy(CV)-8 b(array)p 0 0 1 TeXcolorrgb 1068 4650 a SDict begin H.R end 1068 4650 a 1068 4707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 1068 4707 a 0 TeXcolorgray 21 w Fy(f)n(or)19 b(details)p 0 0 1 TeXcolorrgb 3254 4708 a SDict begin H.S end 3254 4708 a 0 0 1 TeXcolorrgb -1 x Fy(108)p 0 0 1 TeXcolorrgb 3379 4650 a SDict begin H.R end 3379 4650 a 3379 4707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.24) cvn H.B /ANN pdfmark end 3379 4707 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 38 43 TeXDict begin 38 42 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.38) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(21.1)81 b(Class)21 b(List)2205 b(38)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 540 a SDict begin H.S end 633 540 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITSUtil::CV)-8 b(array)p Fu(<)17 b Fy(T)22 b Fu(>)p 0 0 1 TeXcolorrgb 1824 466 a SDict begin H.R end 1824 466 a 1824 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 1824 523 a 0 TeXcolorgray 757 623 a Fy(Function)k(object)f(class)h(f)n(or)f(r)o(etur)o(ning)f(C)i (arrays)f(fr)o(om)g(standard)g(library)757 722 y(objects)20 b(used)h(in)g(the)p 0 0 1 TeXcolorrgb 1431 723 a SDict begin H.S end 1431 723 a 0 0 1 TeXcolorrgb -1 x Fy(FITS)p 0 0 1 TeXcolorrgb 1615 665 a SDict begin H.R end 1615 665 a 1615 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1615 722 a 0 TeXcolorgray 21 w Fy(library)f(implementation)p 0 0 1 TeXcolorrgb 3254 723 a SDict begin H.S end 3254 723 a 0 0 1 TeXcolorrgb -1 x Fy(109)p 0 0 1 TeXcolorrgb 3379 665 a SDict begin H.R end 3379 665 a 3379 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.25) cvn H.B /ANN pdfmark end 3379 722 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 908 a SDict begin H.S end 633 908 a 0 0 1 TeXcolorrgb -3 x Fy(CC\002ts::FITSUtil::MatchName)p Fu(<)e Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 1952 848 a SDict begin H.R end 1952 848 a 1952 905 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchName) cvn H.B /ANN pdfmark end 1952 905 a 0 TeXcolorgray 757 1005 a Fy(Pr)o(edicate)h(f)n(or)g(classes)i (that)f(ha)n(v)o(e)f(a)h(name)h(attrib)n(ute;)f(match)g(input)h(string) 757 1104 y(with)d(instance)f(name)p 0 0 1 TeXcolorrgb 3254 1105 a SDict begin H.S end 3254 1105 a 0 0 1 TeXcolorrgb -1 x Fy(109)p 0 0 1 TeXcolorrgb 3379 1047 a SDict begin H.R end 3379 1047 a 3379 1104 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.26) cvn H.B /ANN pdfmark end 3379 1104 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1290 a SDict begin H.S end 633 1290 a 0 0 1 TeXcolorrgb -3 x Fy(CC\002ts::FITSUtil::MatchNum)p Fu(<)f Fy(T)i Fu(>)p 0 0 1 TeXcolorrgb 1919 1230 a SDict begin H.R end 1919 1230 a 1919 1287 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchNum) cvn H.B /ANN pdfmark end 1919 1287 a 0 TeXcolorgray 757 1386 a Fy(Pr)o(edicate)e(f)n(or)g (classes)i(that)e(ha)n(v)o(e)h(an)g(index)g(attrib)n(ute;)f(match)h (input)h(index)757 1486 y(with)g(instance)f(v)o(alue)p 0 0 1 TeXcolorrgb 3254 1487 a SDict begin H.S end 3254 1487 a 0 0 1 TeXcolorrgb -1 x Fy(110)p 0 0 1 TeXcolorrgb 3379 1429 a SDict begin H.R end 3379 1429 a 3379 1486 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.27) cvn H.B /ANN pdfmark end 3379 1486 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1672 a SDict begin H.S end 633 1672 a 0 0 1 TeXcolorrgb -3 x Fy(CC\002ts::FITSUtil::MatchPtrName)p Fu(<)d Fy(T)k Fu(>)p 0 0 1 TeXcolorrgb 2067 1612 a SDict begin H.R end 2067 1612 a 2067 1669 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchPtrName) cvn H.B /ANN pdfmark end 2067 1669 a 0 TeXcolorgray 757 1768 a Fy(As)g(f)n(or)p 0 0 1 TeXcolorrgb 995 1769 a SDict begin H.S end 995 1769 a 0 0 1 TeXcolorrgb -1 x Fy(MatchName)p 0 0 1 TeXcolorrgb 1433 1711 a SDict begin H.R end 1433 1711 a 1433 1768 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchName) cvn H.B /ANN pdfmark end 1433 1768 a 0 TeXcolorgray Fy(,)g(only)f(with)g(the)h(input)g(class)f(a)h(pointer)p 0 0 1 TeXcolorrgb 3254 1769 a SDict begin H.S end 3254 1769 a 0 0 1 TeXcolorrgb -1 x Fy(110)p 0 0 1 TeXcolorrgb 3379 1711 a SDict begin H.R end 3379 1711 a 3379 1768 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.28) cvn H.B /ANN pdfmark end 3379 1768 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 1954 a SDict begin H.S end 633 1954 a 0 0 1 TeXcolorrgb -3 x Fy(CC\002ts::FITSUtil::MatchPtrNum)p Fu(<)d Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 2035 1894 a SDict begin H.R end 2035 1894 a 2035 1951 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchPtrNum) cvn H.B /ANN pdfmark end 2035 1951 a 0 TeXcolorgray 757 2051 a Fy(As)g(f)n(or)p 0 0 1 TeXcolorrgb 995 2052 a SDict begin H.S end 995 2052 a 0 0 1 TeXcolorrgb -1 x Fy(MatchNum)p 0 0 1 TeXcolorrgb 1401 1993 a SDict begin H.R end 1401 1993 a 1401 2051 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchNum) cvn H.B /ANN pdfmark end 1401 2051 a 0 TeXcolorgray Fy(,)f(only)g(with)h(the)f(input)h(class)g(a)f(pointer)p 0 0 1 TeXcolorrgb 3254 2051 a SDict begin H.S end 3254 2051 a 0 0 1 TeXcolorrgb Fy(111)p 0 0 1 TeXcolorrgb 3379 1993 a SDict begin H.R end 3379 1993 a 3379 2051 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.29) cvn H.B /ANN pdfmark end 3379 2051 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2250 a SDict begin H.S end 633 2250 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITSUtil::MatchT)-6 b(ype)p Fu(<)18 b Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 1918 2176 a SDict begin H.R end 1918 2176 a 1918 2233 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchType) cvn H.B /ANN pdfmark end 1918 2233 a 0 TeXcolorgray 757 2333 a Fy(Function)28 b(object)e(that)h(r)o(etur)o(ns)g(the)p 0 0 1 TeXcolorrgb 1946 2334 a SDict begin H.S end 1946 2334 a 0 0 1 TeXcolorrgb -1 x Fy(FITS)p 0 0 1 TeXcolorrgb 2130 2276 a SDict begin H.R end 2130 2276 a 2130 2333 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2130 2333 a 0 TeXcolorgray 28 w Fy(V)-8 b(alueT)i(ype)28 b(corr)o(esponding)e(to)757 2433 y(an)21 b(input)g(intrinsic)g(type)p 0 0 1 TeXcolorrgb 3254 2433 a SDict begin H.S end 3254 2433 a 0 0 1 TeXcolorrgb Fy(111)p 0 0 1 TeXcolorrgb 3379 2375 a SDict begin H.R end 3379 2375 a 3379 2433 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.30) cvn H.B /ANN pdfmark end 3379 2433 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2632 a SDict begin H.S end 633 2632 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::FITSUtil::Unr)o(ecognizedT)-6 b(ype)p 0 0 1 TeXcolorrgb 1949 2558 a SDict begin H.R end 1949 2558 a 1949 2615 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1UnrecognizedType) cvn H.B /ANN pdfmark end 1949 2615 a 0 TeXcolorgray 757 2715 a Fy(Exception)29 b(thr)o(o)o(wn)f(by)p 0 0 1 TeXcolorrgb 1544 2732 a SDict begin H.S end 1544 2732 a 0 0 1 TeXcolorrgb -17 x Fy(MatchT)-6 b(ype)p 0 0 1 TeXcolorrgb 1949 2658 a SDict begin H.R end 1949 2658 a 1949 2715 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchType) cvn H.B /ANN pdfmark end 1949 2715 a 0 TeXcolorgray 29 w Fy(if)29 b(it)g(encounters)g(data)f(type)h (incom-)757 2814 y(patible)21 b(with)f(c\002tsio)p 0 0 1 TeXcolorrgb 3254 2814 a SDict begin H.S end 3254 2814 a 0 0 1 TeXcolorrgb Fy(112)p 0 0 1 TeXcolorrgb 3379 2757 a SDict begin H.R end 3379 2757 a 3379 2814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.31) cvn H.B /ANN pdfmark end 3379 2814 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 2998 a SDict begin H.S end 633 2998 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1099 2940 a SDict begin H.R end 1099 2940 a 1099 2997 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1099 2997 a 0 TeXcolorgray 757 3097 a Fy(Base)h(class)g(f)n(or)f(all)p 0 0 1 TeXcolorrgb 1364 3098 a SDict begin H.S end 1364 3098 a 0 0 1 TeXcolorrgb -1 x Fy(HDU)p 0 0 1 TeXcolorrgb 1549 3040 a SDict begin H.R end 1549 3040 a 1549 3097 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1549 3097 a 0 TeXcolorgray 20 w Fy([Header)m(-Data)e(Unit])i(objects)p 0 0 1 TeXcolorrgb 3254 3097 a SDict begin H.S end 3254 3097 a 0 0 1 TeXcolorrgb Fy(112)p 0 0 1 TeXcolorrgb 3379 3040 a SDict begin H.R end 3379 3040 a 3379 3097 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.32) cvn H.B /ANN pdfmark end 3379 3097 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3296 a SDict begin H.S end 633 3296 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::HDU::In)m(v)o(alidExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1928 3222 a SDict begin H.R end 1928 3222 a 1928 3279 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidExtensionType) cvn H.B /ANN pdfmark end 1928 3279 a 0 TeXcolorgray 757 3379 a Fy(Exception)25 b(to)g(be)h(thr)o(o)o(wn)f(if)g(user)h(r)o(equests)f(extension)g(type)g (that)g(can)g(not)757 3479 y(be)c(understood)f(as)p 0 0 1 TeXcolorrgb 1378 3495 a SDict begin H.S end 1378 3495 a 0 0 1 TeXcolorrgb -16 x Fy(ImageExt)p 0 0 1 TeXcolorrgb 1724 3421 a SDict begin H.R end 1724 3421 a 1724 3479 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 1724 3479 a 0 TeXcolorgray Fy(,)p 0 0 1 TeXcolorrgb 1765 3480 a SDict begin H.S end 1765 3480 a 0 0 1 TeXcolorrgb -1 x Fy(AsciiT)-8 b(able)p 0 0 1 TeXcolorrgb 2136 3421 a SDict begin H.R end 2136 3421 a 2136 3479 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 2136 3479 a 0 TeXcolorgray 21 w Fy(or)p 0 0 1 TeXcolorrgb 2256 3480 a SDict begin H.S end 2256 3480 a 0 0 1 TeXcolorrgb -1 x Fy(BinT)g(able)p 0 0 1 TeXcolorrgb 2576 3421 a SDict begin H.R end 2576 3421 a 2576 3479 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 2576 3479 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 3254 3479 a SDict begin H.S end 3254 3479 a 0 0 1 TeXcolorrgb Fy(121)p 0 0 1 TeXcolorrgb 3379 3421 a SDict begin H.R end 3379 3421 a 3379 3479 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.33) cvn H.B /ANN pdfmark end 3379 3479 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 3678 a SDict begin H.S end 633 3678 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::HDU::In)m(v)o(alidImageDataT)i(ype)p 0 0 1 TeXcolorrgb 1969 3604 a SDict begin H.R end 1969 3604 a 1969 3661 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidImageDataType) cvn H.B /ANN pdfmark end 1969 3661 a 0 TeXcolorgray 757 3761 a Fy(Exception)22 b(to)g(be)g(thr)o(o)o(wn)g(if)g(user)h(r)o(equests)f(cr)o(eation)f(of)g (an)i(image)e(of)h(type)757 3861 y(not)e(supported)h(by)f(c\002tsio)p 0 0 1 TeXcolorrgb 3254 3861 a SDict begin H.S end 3254 3861 a 0 0 1 TeXcolorrgb Fy(122)p 0 0 1 TeXcolorrgb 3379 3803 a SDict begin H.R end 3379 3803 a 3379 3861 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.34) cvn H.B /ANN pdfmark end 3379 3861 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4044 a SDict begin H.S end 633 4044 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::HDU::NoNullV)-8 b(alue)p 0 0 1 TeXcolorrgb 1608 3986 a SDict begin H.R end 1608 3986 a 1608 4043 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoNullValue) cvn H.B /ANN pdfmark end 1608 4043 a 0 TeXcolorgray 757 4143 a Fy(Exception)20 b(to)g(be)h(thr)o(o)o(wn)f(on)g(seek)h(err)o (ors)f(f)n(or)f(k)o(eyw)o(ords)p 0 0 1 TeXcolorrgb 3254 4144 a SDict begin H.S end 3254 4144 a 0 0 1 TeXcolorrgb -1 x Fy(123)p 0 0 1 TeXcolorrgb 3379 4086 a SDict begin H.R end 3379 4086 a 3379 4143 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.35) cvn H.B /ANN pdfmark end 3379 4143 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4342 a SDict begin H.S end 633 4342 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::HDU::NoSuchK)n(eyw)o(ord)p 0 0 1 TeXcolorrgb 1755 4268 a SDict begin H.R end 1755 4268 a 1755 4325 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoSuchKeyword) cvn H.B /ANN pdfmark end 1755 4325 a 0 TeXcolorgray 757 4425 a Fy(Exception)h(to)g(be)h(thr)o(o)o(wn)f(on)g(seek)h(err)o (ors)f(f)n(or)f(k)o(eyw)o(ords)p 0 0 1 TeXcolorrgb 3254 4426 a SDict begin H.S end 3254 4426 a 0 0 1 TeXcolorrgb -1 x Fy(125)p 0 0 1 TeXcolorrgb 3379 4368 a SDict begin H.R end 3379 4368 a 3379 4425 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.36) cvn H.B /ANN pdfmark end 3379 4425 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4625 a SDict begin H.S end 633 4625 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::ImageExt)p Fu(<)f Fy(T)j Fu(>)p 0 0 1 TeXcolorrgb 1486 4551 a SDict begin H.R end 1486 4551 a 1486 4608 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 1486 4608 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 3254 4609 a SDict begin H.S end 3254 4609 a 0 0 1 TeXcolorrgb -1 x Fy(126)p 0 0 1 TeXcolorrgb 3379 4551 a SDict begin H.R end 3379 4551 a 3379 4608 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.37) cvn H.B /ANN pdfmark end 3379 4608 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 4807 a SDict begin H.S end 633 4807 a 0 0 1 TeXcolorrgb -17 x Fy(CC\002ts::K)n(eyw)o(ord)p 0 0 1 TeXcolorrgb 1239 4733 a SDict begin H.R end 1239 4733 a 1239 4790 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1239 4790 a 0 TeXcolorgray 757 4890 a Fy(Abstract)f(base)h(class)f (de\002ning)h(the)g(interface)e(f)n(or)p 0 0 1 TeXcolorrgb 2349 4907 a SDict begin H.S end 2349 4907 a 0 0 1 TeXcolorrgb -17 x Fy(K)n(eyw)o(ord)p 0 0 1 TeXcolorrgb 2673 4833 a SDict begin H.R end 2673 4833 a 2673 4890 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2673 4890 a 0 TeXcolorgray 21 w Fy(objects)p 0 0 1 TeXcolorrgb 3254 4891 a SDict begin H.S end 3254 4891 a 0 0 1 TeXcolorrgb -1 x Fy(128)p 0 0 1 TeXcolorrgb 3379 4833 a SDict begin H.R end 3379 4833 a 3379 4890 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.38) cvn H.B /ANN pdfmark end 3379 4890 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 39 44 TeXDict begin 39 43 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.39) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(22)20 b(Module)g(Documentation)1839 b(39)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 524 a SDict begin H.S end 633 524 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::PHDU)p 0 0 1 TeXcolorrgb 1149 466 a SDict begin H.R end 1149 466 a 1149 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1149 523 a 0 TeXcolorgray 757 623 a Fy(Class)21 b(r)o(epr)o(esenting)e(the)i(primary)p 0 0 1 TeXcolorrgb 1880 624 a SDict begin H.S end 1880 624 a 0 0 1 TeXcolorrgb -1 x Fy(HDU)p 0 0 1 TeXcolorrgb 2064 565 a SDict begin H.R end 2064 565 a 2064 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2064 623 a 0 TeXcolorgray 21 w Fy(f)n(or)f(a)p 0 0 1 TeXcolorrgb 2272 624 a SDict begin H.S end 2272 624 a 0 0 1 TeXcolorrgb -1 x Fy(FITS)p 0 0 1 TeXcolorrgb 2456 565 a SDict begin H.R end 2456 565 a 2456 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2456 623 a 0 TeXcolorgray 21 w Fy(\002le)p 0 0 1 TeXcolorrgb 3254 624 a SDict begin H.S end 3254 624 a 0 0 1 TeXcolorrgb -1 x Fy(131)p 0 0 1 TeXcolorrgb 3379 565 a SDict begin H.R end 3379 565 a 3379 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.39) cvn H.B /ANN pdfmark end 3379 623 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 806 a SDict begin H.S end 633 806 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::T)-8 b(able)p 0 0 1 TeXcolorrgb 1109 748 a SDict begin H.R end 1109 748 a 1109 805 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1109 805 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 3254 806 a SDict begin H.S end 3254 806 a 0 0 1 TeXcolorrgb -1 x Fy(138)p 0 0 1 TeXcolorrgb 3379 748 a SDict begin H.R end 3379 748 a 3379 805 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.40) cvn H.B /ANN pdfmark end 3379 805 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 633 989 a SDict begin H.S end 633 989 a 0 0 1 TeXcolorrgb -1 x Fy(CC\002ts::T)g(able::NoSuchColumn)p 0 0 1 TeXcolorrgb 1728 931 a SDict begin H.R end 1728 931 a 1728 988 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn) cvn H.B /ANN pdfmark end 1728 988 a 0 TeXcolorgray 757 1088 a Fy(Exception)30 b(to)f(be)h(thr)o(o)o (wn)g(on)g(a)f(failur)o(e)g(to)h(r)o(etrie)o(v)o(e)e(a)i(column)g (speci\002ed)757 1187 y(either)21 b(by)f(name)g(or)h(index)f(number)p 0 0 1 TeXcolorrgb 3254 1187 a SDict begin H.S end 3254 1187 a 0 0 1 TeXcolorrgb Fy(144)p 0 0 1 TeXcolorrgb 3379 1130 a SDict begin H.R end 3379 1130 a 3379 1187 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.24.41) cvn H.B /ANN pdfmark end 3379 1187 a 0 TeXcolorgray 515 1333 a SDict begin H.S end 515 1333 a 515 1333 a SDict begin 12 H.A end 515 1333 a 515 1333 a SDict begin [ /View [/XYZ H.V] /Dest (section.22) cvn H.B /DEST pdfmark end 515 1333 a 0.25 TeXcolorgray 180 x Fs(22)107 b(Module)25 b(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1746 a SDict begin H.S end 515 1746 a 0 TeXcolorgray 0 TeXcolorgray 515 1746 a SDict begin H.R end 515 1746 a 515 1746 a SDict begin [ /View [/XYZ H.V] /Dest (group__FITSexcept) cvn H.B /DEST pdfmark end 515 1746 a 0 TeXcolorgray 515 1865 a SDict begin H.S end 515 1865 a 515 1865 a SDict begin 12 H.A end 515 1865 a 515 1865 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.22.1) cvn H.B /DEST pdfmark end 515 1865 a 0.25 TeXcolorgray 164 x Fq(22.1)89 b(FITS)21 b(Exceptions)p 0 TeXcolorgray 0.25 TeXcolorgray 515 2231 a Fo(Classes)p 0 TeXcolorgray 515 2289 a SDict begin H.S end 515 2289 a 515 2289 a SDict begin 12 H.A end 515 2289 a 515 2289 a SDict begin [ /View [/XYZ H.V] /Dest (section*.1) cvn H.B /DEST pdfmark end 515 2289 a 0 TeXcolorgray 652 2418 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2436 a SDict begin H.S end 904 2436 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::Column::RangeError)p 0 0 1 TeXcolorrgb 1864 2362 a SDict begin H.R end 1864 2362 a 1864 2418 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1RangeError) cvn H.B /ANN pdfmark end 1864 2418 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2541 a Fl(e)o(xception)f(to)f(be)g(thr)m(own)g(for)g(inputs)g(that) g(cause)h(r)o(ang)o(e)g(err)m(or)o(s)g(in)e(column)i(r)m(ead)g(oper)o (ations.)p 0 TeXcolorgray 652 2647 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2665 a SDict begin H.S end 904 2665 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::ExtHDU::WrongExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 2231 2590 a SDict begin H.R end 2231 2590 a 2231 2647 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 2231 2647 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2769 a Fl(Exception)20 b(to)f(be)g(thr)m(own)g(on)g(unmatc)o(hed)i (e)o(xtension)e(types.)p 0 TeXcolorgray 652 2875 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2876 a SDict begin H.S end 904 2876 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::FITS::CantCreate)p 0 0 1 TeXcolorrgb 1753 2819 a SDict begin H.R end 1753 2819 a 1753 2875 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /ANN pdfmark end 1753 2875 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2997 a Fl(thr)m(own)g(on)h(failur)m(e)f(to)g(cr)m(eate)h(ne)o(w)e (\002le)p 0 TeXcolorgray 652 3103 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3121 a SDict begin H.S end 904 3121 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::FITS::CantOpen)p 0 0 1 TeXcolorrgb 1716 3047 a SDict begin H.R end 1716 3047 a 1716 3103 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1CantOpen) cvn H.B /ANN pdfmark end 1716 3103 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3226 a Fl(thr)m(own)h(on)h(failur)m(e)f(to)g(open)h(e)o(xisting)e (\002le)p 0 TeXcolorgray 652 3331 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3332 a SDict begin H.S end 904 3332 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::FITS::NoSuchHDU)p 0 0 1 TeXcolorrgb 1827 3275 a SDict begin H.R end 1827 3275 a 1827 3331 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /ANN pdfmark end 1827 3331 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3454 a Fl(e)o(xception)i(thr)m(own)f(by)p 0 0 1 TeXcolorrgb 1460 3455 a SDict begin H.S end 1460 3455 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1622 3406 a SDict begin H.R end 1622 3406 a 1622 3454 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1622 3454 a 0 TeXcolorgray 19 w Fl(r)m(etrie)o(val)g(methods.)p 0 TeXcolorgray 652 3560 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3578 a SDict begin H.S end 904 3578 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 2178 3503 a SDict begin H.R end 2178 3503 a 2178 3560 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 2178 3560 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3682 a Fl(thr)m(own)k(for)g(unsupported)i(oper)o(ations,)g(suc)o(h) e(as)g(attempted)g(to)g(select)g(r)m(ows)f(fr)m(om)h(an)g(ima)o(g)o(e) 840 3773 y(e)o(xtension.)p 0 TeXcolorgray 652 3879 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3880 a SDict begin H.S end 904 3880 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::FitsError)p 0 0 1 TeXcolorrgb 1463 3823 a SDict begin H.R end 1463 3823 a 1463 3879 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1463 3879 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 4003 a SDict begin H.S end 840 4003 a 0 0 1 TeXcolorrgb -1 x Fl(F)m(itsErr)m(or)p 0 0 1 TeXcolorrgb 1120 3954 a SDict begin H.R end 1120 3954 a 1120 4002 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1120 4002 a 0 TeXcolorgray 19 w Fl(is)18 b(the)h(e)o(xception)h(thr)m(own)f(by)g(non-zer)m(o)h (c\002tsio)f(status)g(codes.)p 0 TeXcolorgray 652 4108 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4126 a SDict begin H.S end 904 4126 a 0 0 1 TeXcolorrgb -18 x Fx (CC\002ts::FitsException)p 0 0 1 TeXcolorrgb 1624 4051 a SDict begin H.R end 1624 4051 a 1624 4108 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1624 4108 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 4245 a SDict begin H.S end 840 4245 a 0 0 1 TeXcolorrgb -15 x Fl(F)m(itsException)p 0 0 1 TeXcolorrgb 1252 4182 a SDict begin H.R end 1252 4182 a 1252 4230 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1252 4230 a 0 TeXcolorgray 19 w Fl(is)f(the)h(base)h(class)f(for)g(all) g(e)o(xceptions)g(thr)m(own)g(by)g(this)g(libr)o(ary)l(.)p 0 TeXcolorgray 652 4336 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4337 a SDict begin H.S end 904 4337 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::FitsF)o(atal)p 0 0 1 TeXcolorrgb 1452 4280 a SDict begin H.R end 1452 4280 a 1452 4336 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsFatal) cvn H.B /ANN pdfmark end 1452 4336 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4458 a Fl([potential])h(base)g(class) f(for)g(e)o(xceptions)g(to)g(be)g(thr)m(own)g(on)h(internal)f(libr)o (ary)g(err)m(or)-8 b(.)p 0 TeXcolorgray 652 4564 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4582 a SDict begin H.S end 904 4582 a 0 0 1 TeXcolorrgb -18 x Fx (CC\002ts::FITSUtil::UnrecognizedT)h(ype)p 0 0 1 TeXcolorrgb 2139 4508 a SDict begin H.R end 2139 4508 a 2139 4564 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1UnrecognizedType) cvn H.B /ANN pdfmark end 2139 4564 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4687 a Fl(e)o(xception)20 b(thr)m(own)f(by)p 0 0 1 TeXcolorrgb 1460 4702 a SDict begin H.S end 1460 4702 a 0 0 1 TeXcolorrgb -15 x Fl(Matc)o(hT)-6 b(ype)p 0 0 1 TeXcolorrgb 1790 4636 a SDict begin H.R end 1790 4636 a 1790 4687 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchType) cvn H.B /ANN pdfmark end 1790 4687 a 0 TeXcolorgray 18 w Fl(if)19 b(it)f(encounter)o(s)j(data)e (type)g(incompatible)h(with)f(c\002tsio.)p 0 TeXcolorgray 652 4792 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4810 a SDict begin H.S end 904 4810 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::HDU::In)m(v)n(alidExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 2115 4736 a SDict begin H.R end 2115 4736 a 2115 4792 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidExtensionType) cvn H.B /ANN pdfmark end 2115 4792 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4915 a Fl(e)o(xception)23 b(to)f(be)g(thr)m(own)g(if)f(user)h(r)m (equests)h(e)o(xtension)g(type)f(that)g(can)g(not)g(be)g(under)o(stood) j(as)p 0 0 1 TeXcolorrgb 840 5022 a SDict begin H.S end 840 5022 a 0 0 1 TeXcolorrgb -16 x Fl(Ima)o(g)o(eExt)p 0 0 1 TeXcolorrgb 1125 4958 a SDict begin H.R end 1125 4958 a 1125 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 1125 5006 a 0 TeXcolorgray Fl(,)p 0 0 1 TeXcolorrgb 1163 5007 a SDict begin H.S end 1163 5007 a 0 0 1 TeXcolorrgb -1 x Fl(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1475 4956 a SDict begin H.R end 1475 4956 a 1475 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1475 5006 a 0 TeXcolorgray 19 w Fl(or)p 0 0 1 TeXcolorrgb 1579 5007 a SDict begin H.S end 1579 5007 a 0 0 1 TeXcolorrgb -1 x Fl(BinT)g(able)p 0 0 1 TeXcolorrgb 1846 4956 a SDict begin H.R end 1846 4956 a 1846 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1846 5006 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 40 45 TeXDict begin 40 44 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.40) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(23)20 b(Namespace)f(Documentation)1710 b(40)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 541 a SDict begin H.S end 904 541 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::HDU::In)m(v)n(alidImageDataT)-7 b(ype)p 0 0 1 TeXcolorrgb 2147 467 a SDict begin H.R end 2147 467 a 2147 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidImageDataType) cvn H.B /ANN pdfmark end 2147 523 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 648 a Fl(e)o(xception)21 b(to)e(be)h(thr)m(own)g(if)f(user)h(r)m (equests)h(cr)m(eation)g(of)f(an)g(ima)o(g)o(e)g(of)g(type)g(not)g (supported)h(by)840 739 y(c\002tsio.)p 0 TeXcolorgray 652 847 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 848 a SDict begin H.S end 904 848 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU::NoNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1827 791 a SDict begin H.R end 1827 791 a 1827 847 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoNullValue) cvn H.B /ANN pdfmark end 1827 847 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 971 a Fl(e)o(xception)20 b(to)f(be)g(thr)m(own)g(on)g(seek)h(err)m(or)o(s)f(for)g(k)o(e)n(ywor)m (ds.)p 0 TeXcolorgray 652 1079 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 1097 a SDict begin H.S end 904 1097 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::HDU::NoSuchK)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1961 1023 a SDict begin H.R end 1961 1023 a 1961 1079 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoSuchKeyword) cvn H.B /ANN pdfmark end 1961 1079 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 1204 a Fl(e)o(xception)h(to)f(be)g(thr)m(own)g(on)g(seek)h(err)m (or)o(s)f(for)g(k)o(e)n(ywor)m(ds.)p 0 TeXcolorgray 652 1312 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 1313 a SDict begin H.S end 904 1313 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able::NoSuchColumn)p 0 0 1 TeXcolorrgb 1927 1255 a SDict begin H.R end 1927 1255 a 1927 1312 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn) cvn H.B /ANN pdfmark end 1927 1312 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 1436 a Fl(Exception)22 b(to)f(be)h(thr)m(own)f(on)h(a)g(failur)m(e)f(to)g(r)m(etrie)o(ve)h(a)f (column)h(speci\002ed)h(either)e(by)h(name)g(or)840 1528 y(inde)o(x)d(number)-8 b(.)515 1659 y SDict begin H.S end 515 1659 a 515 1659 a SDict begin 12 H.A end 515 1659 a 515 1659 a SDict begin [ /View [/XYZ H.V] /Dest (section.23) cvn H.B /DEST pdfmark end 515 1659 a 0.25 TeXcolorgray 196 x Fs(23)107 b(Namespace)25 b(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2088 a SDict begin H.S end 515 2088 a 0 TeXcolorgray 0 TeXcolorgray 515 2088 a SDict begin H.R end 515 2088 a 515 2088 a SDict begin [ /View [/XYZ H.V] /Dest (namespaceCCfits) cvn H.B /DEST pdfmark end 515 2088 a 0 TeXcolorgray 515 2209 a SDict begin H.S end 515 2209 a 515 2209 a SDict begin 12 H.A end 515 2209 a 515 2209 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.23.1) cvn H.B /DEST pdfmark end 515 2209 a 0.25 TeXcolorgray 164 x Fq(23.1)89 b(CC\002ts)21 b(Namespace)g(Ref)o(erence)p 0 TeXcolorgray 515 2576 a Fx(Namespace)e(enclosing)g(all)p 0 0 1 TeXcolorrgb 1361 2577 a SDict begin H.S end 1361 2577 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1573 2519 a SDict begin H.R end 1573 2519 a 1573 2576 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1573 2576 a 0 TeXcolorgray 21 w Fx(classes)i(and)f (globals)f(de\002nitions.)p 0.25 TeXcolorgray 515 2844 a Fo(Classes)p 0 TeXcolorgray 515 2901 a SDict begin H.S end 515 2901 a 515 2901 a SDict begin 12 H.A end 515 2901 a 515 2901 a SDict begin [ /View [/XYZ H.V] /Dest (section*.2) cvn H.B /DEST pdfmark end 515 2901 a 0 TeXcolorgray 652 3033 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3034 a SDict begin H.S end 904 3034 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1262 2977 a SDict begin H.R end 1262 2977 a 1262 3033 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1262 3033 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3157 a Fl(Class)19 b(Repr)m(esenting)h (Ascii)p 0 0 1 TeXcolorrgb 1604 3158 a SDict begin H.S end 1604 3158 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1767 3107 a SDict begin H.R end 1767 3107 a 1767 3157 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1767 3157 a 0 TeXcolorgray 19 w Fl(Extensions.)p 0 TeXcolorgray 652 3265 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3266 a SDict begin H.S end 904 3266 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)g(able)p 0 0 1 TeXcolorrgb 1207 3209 a SDict begin H.R end 1207 3209 a 1207 3265 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1207 3265 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3390 a Fl(Class)18 b(Repr)m(esenting)i(Binary)p 0 0 1 TeXcolorrgb 1655 3391 a SDict begin H.S end 1655 3391 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1819 3339 a SDict begin H.R end 1819 3339 a 1819 3390 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1819 3390 a 0 TeXcolorgray 17 w Fl(Extensions.)24 b(Contains)19 b(columns)g(with)e(scalar)i(or)f(vector)840 3481 y(r)m(ow)h(entries.)p 0 TeXcolorgray 652 3589 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3590 a SDict begin H.S end 904 3590 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1172 3533 a SDict begin H.R end 1172 3533 a 1172 3589 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1172 3589 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3714 a Fl(Abstr)o(act)g(base)h(class)f(for)p 0 0 1 TeXcolorrgb 1541 3715 a SDict begin H.S end 1541 3715 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1777 3663 a SDict begin H.R end 1777 3663 a 1777 3714 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1777 3714 a 0 TeXcolorgray 19 w Fl(objects.)p 0 TeXcolorgray 652 3822 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3823 a SDict begin H.S end 904 3823 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1200 3767 a SDict begin H.R end 1200 3767 a 1200 3822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1200 3822 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3946 a Fl(base)h(class)f(for)g(all)p 0 0 1 TeXcolorrgb 1368 3947 a SDict begin H.S end 1368 3947 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1517 3895 a SDict begin H.R end 1517 3895 a 1517 3946 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1517 3946 a 0 TeXcolorgray 19 w Fl(e)o(xtension)g(HDUs,)f (i.e)o(.)23 b(Ima)o(g)o(e)d(Extensions)f(and)h(T)-7 b(ables.)p 0 TeXcolorgray 652 4054 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4055 a SDict begin H.S end 904 4055 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1075 3998 a SDict begin H.R end 1075 3998 a 1075 4054 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1075 4054 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4179 a Fl(Memory)20 b(object)f(r)m(epr)m(esentation)i(of)e(a)g(disk)p 0 0 1 TeXcolorrgb 2030 4180 a SDict begin H.S end 2030 4180 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2180 4128 a SDict begin H.R end 2180 4128 a 2180 4179 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2180 4179 a 0 TeXcolorgray 18 w Fl(\002le)o(.)p 0 TeXcolorgray 652 4286 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4287 a SDict begin H.S end 904 4287 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 1204 4230 a SDict begin H.R end 1204 4230 a 1204 4286 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1204 4286 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 4412 a SDict begin H.S end 840 4412 a 0 0 1 TeXcolorrgb -1 x Fl(F)m(itsErr)m(or)p 0 0 1 TeXcolorrgb 1120 4363 a SDict begin H.R end 1120 4363 a 1120 4411 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1120 4411 a 0 TeXcolorgray 19 w Fl(is)f(the)h(e)o(xception)h(thr)m(own) f(by)g(non-zer)m(o)h(c\002tsio)f(status)g(codes.)p 0 TeXcolorgray 652 4519 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4537 a SDict begin H.S end 904 4537 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1366 4463 a SDict begin H.R end 1366 4463 a 1366 4519 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1366 4519 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 4659 a SDict begin H.S end 840 4659 a 0 0 1 TeXcolorrgb -16 x Fl(F)m(itsException)p 0 0 1 TeXcolorrgb 1252 4595 a SDict begin H.R end 1252 4595 a 1252 4643 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1252 4643 a 0 TeXcolorgray 19 w Fl(is)f(the)h(base)h(class)f(for)g(all) g(e)o(xceptions)g(thr)m(own)g(by)g(this)g(libr)o(ary)l(.)p 0 TeXcolorgray 652 4751 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4752 a SDict begin H.S end 904 4752 a 0 0 1 TeXcolorrgb -1 x Fx(FitsF)o(atal)p 0 0 1 TeXcolorrgb 1194 4695 a SDict begin H.R end 1194 4695 a 1194 4751 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsFatal) cvn H.B /ANN pdfmark end 1194 4751 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4876 a Fl([potential])h(base)g(class) f(for)g(e)o(xceptions)g(to)g(be)g(thr)m(own)g(on)h(internal)f(libr)o (ary)g(err)m(or)-8 b(.)p 0 TeXcolorgray 652 4984 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4985 a SDict begin H.S end 904 4985 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1084 4930 a SDict begin H.R end 1084 4930 a 1084 4984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1084 4984 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 41 46 TeXDict begin 41 45 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.41) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(23.1)81 b(CC\002ts)21 b(Namespace)f(Refer)o (ence)1529 b(41)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(Base)19 b(class)g(for)g(all)p 0 0 1 TeXcolorrgb 1376 524 a SDict begin H.S end 1376 524 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1538 475 a SDict begin H.R end 1538 475 a 1538 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1538 523 a 0 TeXcolorgray 18 w Fl([Header)o(-Data)h(Unit])f (objects.)p 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 649 a SDict begin H.S end 904 649 a 0 0 1 TeXcolorrgb -18 x Fx(ImageExt)p 0 0 1 TeXcolorrgb 1227 577 a SDict begin H.R end 1227 577 a 1227 631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 1227 631 a 0 TeXcolorgray 0 TeXcolorgray 652 739 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 757 a SDict begin H.S end 904 757 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1209 683 a SDict begin H.R end 1209 683 a 1209 739 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1209 739 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 863 a Fl(Abstr)o(act)g(base)h(class)f (de\002ning)h(the)f(interface)h(for)p 0 0 1 TeXcolorrgb 2195 879 a SDict begin H.S end 2195 879 a 0 0 1 TeXcolorrgb -16 x Fl(K)m(e)n(ywor)m(d)p 0 0 1 TeXcolorrgb 2457 813 a SDict begin H.R end 2457 813 a 2457 863 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2457 863 a 0 TeXcolorgray 18 w Fl(objects.)p 0 TeXcolorgray 652 971 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 972 a SDict begin H.S end 904 972 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1130 917 a SDict begin H.R end 1130 917 a 1130 971 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1130 971 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 1096 a Fl(class)g(r)m(epr)m(esenting)g(the)f(primary)p 0 0 1 TeXcolorrgb 1769 1097 a SDict begin H.S end 1769 1097 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1931 1048 a SDict begin H.R end 1931 1048 a 1931 1096 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1931 1096 a 0 TeXcolorgray 18 w Fl(for)g(a)p 0 0 1 TeXcolorrgb 2111 1097 a SDict begin H.S end 2111 1097 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2261 1045 a SDict begin H.R end 2261 1045 a 2261 1096 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2261 1096 a 0 TeXcolorgray 18 w Fl(\002le)o(.)p 0 TeXcolorgray 652 1204 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 1205 a SDict begin H.S end 904 1205 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1087 1148 a SDict begin H.R end 1087 1148 a 1087 1204 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1087 1204 a 0 TeXcolorgray 0.25 TeXcolorgray 515 1472 a Fo(En)o(umerations)p 0 TeXcolorgray 515 1529 a SDict begin H.S end 515 1529 a 515 1529 a SDict begin 12 H.A end 515 1529 a 515 1529 a SDict begin [ /View [/XYZ H.V] /Dest (section*.3) cvn H.B /DEST pdfmark end 515 1529 a 0 TeXcolorgray 652 1661 a Fx(\225)p 0 TeXcolorgray 41 w(enum)p 0 0 1 TeXcolorrgb 928 1679 a SDict begin H.S end 928 1679 a 0 0 1 TeXcolorrgb -18 x Fx(V)e(alueT)i(ype)p 0 0 1 TeXcolorrgb 1281 1605 a SDict begin H.R end 1281 1605 a 1281 1661 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1281 1661 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 1801 a SDict begin H.S end 840 1801 a 0 0 1 TeXcolorrgb -15 x Fl(CC\002ts)p 0 0 1 TeXcolorrgb 1027 1735 a SDict begin H.R end 1027 1735 a 1027 1786 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1027 1786 a 0 TeXcolorgray 19 w Fl(value)19 b(types)h(and)f(their)g (CFITSIO)f(equivalents)i(\(in)f(caps\))p 0.25 TeXcolorgray 515 2054 a Fo(Functions)p 0 TeXcolorgray 515 2111 a SDict begin H.S end 515 2111 a 515 2111 a SDict begin 12 H.A end 515 2111 a 515 2111 a SDict begin [ /View [/XYZ H.V] /Dest (section*.4) cvn H.B /DEST pdfmark end 515 2111 a 0 TeXcolorgray 0 TeXcolorgray 652 2243 a Fx(\225)p 0 TeXcolorgray 722 2243 a SDict begin H.S end 722 2243 a 0 TeXcolorgray 0 TeXcolorgray 722 2243 a SDict begin H.R end 722 2243 a 722 2243 a SDict begin [ /View [/XYZ H.V] /Dest (namespaceCCfits_a098a546c28ff774b84e56666aca95c76) cvn H.B /DEST pdfmark end 722 2243 a 0 TeXcolorgray 21 w Fx(std::ostream)h(&)p 0 0 1 TeXcolorrgb 1255 2261 a SDict begin H.S end 1255 2261 a 0 0 1 TeXcolorrgb -18 x Fx(operator)p Fu(<<)p 0 0 1 TeXcolorrgb 1661 2196 a SDict begin H.R end 1661 2196 a 1661 2243 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a098a546c28ff774b84e56666aca95c76) cvn H.B /ANN pdfmark end 1661 2243 a 0 TeXcolorgray 20 w Fx(\(std::ostream)g(&s,)g(const)p 0 0 1 TeXcolorrgb 2470 2244 a SDict begin H.S end 2470 2244 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 2908 2186 a SDict begin H.R end 2908 2186 a 2908 2243 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2908 2243 a 0 TeXcolorgray 21 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 2367 a Fl(Output)g(oper)o(ator)g(for)p 0 0 1 TeXcolorrgb 1452 2368 a SDict begin H.S end 1452 2368 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1613 2319 a SDict begin H.R end 1613 2319 a 1613 2367 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1613 2367 a 0 TeXcolorgray 19 w Fl(objects.)k(Primarily)18 b(for)h(testing)g(purposes.)p 0 TeXcolorgray 652 2475 a Fx(\225)p 0 TeXcolorgray 41 w(std::ostream)h(&)p 0 0 1 TeXcolorrgb 1234 2493 a SDict begin H.S end 1234 2493 a 0 0 1 TeXcolorrgb -18 x Fx(operator)p Fu(<<)p 0 0 1 TeXcolorrgb 1640 2428 a SDict begin H.R end 1640 2428 a 1640 2475 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a91ec1e6f0c672b698749d34d65d190e4) cvn H.B /ANN pdfmark end 1640 2475 a 0 TeXcolorgray 21 w Fx(\(std::ostream)f(&s,)h(const)p 0 0 1 TeXcolorrgb 2449 2476 a SDict begin H.S end 2449 2476 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2620 2419 a SDict begin H.R end 2620 2419 a 2620 2475 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2620 2475 a 0 TeXcolorgray 21 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 2600 a Fl(Output)g(oper)o(ator)-8 b(.)24 b(Calls)18 b(output)i(oper)o(ator)o(s)g(for)f(HDUs)g(in)f(turn.) p 0 TeXcolorgray 0 TeXcolorgray 652 2708 a Fx(\225)p 0 TeXcolorgray 722 2708 a SDict begin H.S end 722 2708 a 0 TeXcolorgray 0 TeXcolorgray 722 2708 a SDict begin H.R end 722 2708 a 722 2708 a SDict begin [ /View [/XYZ H.V] /Dest (namespaceCCfits_a0b5c90532ac04bc76509c001b709bc2a) cvn H.B /DEST pdfmark end 722 2708 a 0 TeXcolorgray 21 w Fx(std::ostream)i(&)p 0 0 1 TeXcolorrgb 1255 2726 a SDict begin H.S end 1255 2726 a 0 0 1 TeXcolorrgb -18 x Fx(operator)p Fu(<<)p 0 0 1 TeXcolorrgb 1661 2661 a SDict begin H.R end 1661 2661 a 1661 2708 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a0b5c90532ac04bc76509c001b709bc2a) cvn H.B /ANN pdfmark end 1661 2708 a 0 TeXcolorgray 20 w Fx(\(std::ostream)g(&s,)g(const) p 0 0 1 TeXcolorrgb 2470 2709 a SDict begin H.S end 2470 2709 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2738 2651 a SDict begin H.R end 2738 2651 a 2738 2708 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2738 2708 a 0 TeXcolorgray 20 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 2832 a Fl(output)g(oper)o(ator)g(for) p 0 0 1 TeXcolorrgb 1435 2833 a SDict begin H.S end 1435 2833 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1672 2781 a SDict begin H.R end 1672 2781 a 1672 2832 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1672 2832 a 0 TeXcolorgray 18 w Fl(objects.)515 2969 y SDict begin H.S end 515 2969 a 515 2969 a SDict begin 12 H.A end 515 2969 a 515 2969 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.23.1.1) cvn H.B /DEST pdfmark end 515 2969 a 0.25 TeXcolorgray 131 x Fo(23.1.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3303 a Fx(Namespace)h(enclosing)g (all)p 0 0 1 TeXcolorrgb 1361 3304 a SDict begin H.S end 1361 3304 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1573 3247 a SDict begin H.R end 1573 3247 a 1573 3303 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1573 3303 a 0 TeXcolorgray 21 w Fx(classes)i(and)f(globals)f(de\002nitions.)515 3443 y SDict begin H.S end 515 3443 a 515 3443 a SDict begin 12 H.A end 515 3443 a 515 3443 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.23.1.2) cvn H.B /DEST pdfmark end 515 3443 a 0.25 TeXcolorgray 129 x Fo(23.1.2)75 b(En)o(umeration)20 b(T)l(ype)e(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3775 a SDict begin H.S end 515 3775 a 0 TeXcolorgray 0 TeXcolorgray 515 3775 a SDict begin H.R end 515 3775 a 515 3775 a SDict begin [ /View [/XYZ H.V] /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /DEST pdfmark end 515 3775 a 0 TeXcolorgray 515 3812 a SDict begin H.S end 515 3812 a 515 3812 a SDict begin 12 H.A end 515 3812 a 515 3812 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.23.1.2.1) cvn H.B /DEST pdfmark end 515 3812 a 0.25 TeXcolorgray 147 x Fo(23.1.2.1)75 b(en)o(um)19 b Fy(CC\002ts::V)-8 b(alueT)i(ype)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4144 a SDict begin H.S end 515 4144 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 4087 a SDict begin H.R end 727 4087 a 727 4143 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 4143 a 0 TeXcolorgray 21 w Fx(v)n(alue)19 b(types)h(and)g(their)g(CFITSIO)g(equi)n(v)n(alents)f(\(in)h(caps\))515 4290 y(Tnull,)33 b(Tbit)f(=)f(TBIT)-6 b(,)31 b(Tbyte)g(=)h(TBYTE,)f (Tlogical)g(=)g(TLOGICAL,)g(Tstring)g(=)h(TSTRIN-)515 4389 y(G,)c(T)l(ushort)g(=)g(TUSHORT)-6 b(,)29 b(Tshort)e(=)i(TSHORT)-6 b(,)28 b(T)l(uint)g(=)h(TUINT)-6 b(,)27 b(T)m(int)i(=)f(TINT)-6 b(,)28 b(T)l(ulong)515 4489 y(=)34 b(TULONG,)f(Tlong)g(=)h(TLONG,)f (Tlonglong)e(=)k(TLONGLONG,)d(T\003oat)i(=)g(TFLOAT)-6 b(,)33 b(-)515 4589 y(Tdouble)g(=)i(TDOUBLE,)g(Tcomple)o(x)e(=)i (TCOMPLEX,)g(Tdblcomple)o(x=TDBLCOMPLE-)515 4688 y(X,)18 b(VTbit=)g(-TBIT)-6 b(,)18 b(VTbyte=-TBYTE,)e(VTlogical=-Tlogical,)f (VT)l(ushort=-TUSHORT)-6 b(,)16 b(V-)515 4788 y(Tshort=-TSHORT)-6 b(,)21 b(VT)l(uint=-TUINT)-6 b(,)21 b(VT)m(int=-TINT)-6 b(,)21 b(VT)l(ulong=-TULONG,)g(VTlong=--)515 4888 y(TLONG,)f (VTlonglong=-TLONGLONG,)d(VT\003oat=-TFLOAT)-6 b(,)19 b(VTdouble=-TDOUBLE,)515 4987 y(VTcomple)o(x=-TCOMPLEX,)d(VTdblcomple)o (x=-TDBLCOMPLEX)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)f(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h (f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 42 47 TeXDict begin 42 46 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.42) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(23.2)81 b(FITSUtil)21 b(Namespace)f(Refer)o (ence)1437 b(42)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.23.1.3) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(23.1.3)75 b(Function)20 b(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.S end 515 726 a 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.R end 515 726 a 515 726 a SDict begin [ /View [/XYZ H.V] /Dest (namespaceCCfits_a91ec1e6f0c672b698749d34d65d190e4) cvn H.B /DEST pdfmark end 515 726 a 0 TeXcolorgray 515 763 a SDict begin H.S end 515 763 a 515 763 a SDict begin 12 H.A end 515 763 a 515 763 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.23.1.3.1) cvn H.B /DEST pdfmark end 515 763 a 0.25 TeXcolorgray 147 x Fo(23.1.3.1)75 b(std::ostream)20 b(&)d(operator)p Fu(<<)h Fo(\()34 b(std::ostream)20 b(&)e Fk(s,)34 b Fo(const)18 b(FITS)g(&)f Fk(right)36 b Fo(\))71 b Fr([inline])p 0 TeXcolorgray 515 1094 a Fx(Output)19 b(operator)-5 b(.)24 b(Calls)d(output)e(operators)g(for)g (HDUs)i(in)g(turn.)515 1241 y(This)29 b(operator)d(acts)k(similarly)e (to)h(the)g(ftool)f(fdump)f(for)h(a)h(\002ts)h(\002le,)h(e)o(xcept)c (that)i(there)f(is)i(no)515 1341 y(freedom)18 b(to)i(output)f(partial)h (information.)515 1488 y(The)j(current)f(implementation)g(of)h(this)i (operator)c(for)p 0 0 1 TeXcolorrgb 2132 1489 a SDict begin H.S end 2132 1489 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 2358 1434 a SDict begin H.R end 2358 1434 a 2358 1488 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 2358 1488 a 0 TeXcolorgray 25 w Fx(objects)i(only)g(outputs)g(the)g(array)515 1587 y(sizes,)e(not)e(the)i(data,)f(which)f(that)h(for)g(tables)g(prints)g (the)h(data)f(also.)515 1734 y(Pro)o(vision)f(of)g(this)i(operator)e (is)i(intended)d(lar)o(gely)h(for)h(deb)n(ugging)d(purposes.)p 0 TeXcolorgray 2868 1734 a SDict begin H.S end 2868 1734 a 0 TeXcolorgray 0 TeXcolorgray 2868 1734 a SDict begin H.R end 2868 1734 a 2868 1734 a SDict begin [ /View [/XYZ H.V] /Dest (namespaceFITSUtil) cvn H.B /DEST pdfmark end 2868 1734 a 0 TeXcolorgray 515 1874 a SDict begin H.S end 515 1874 a 515 1874 a SDict begin 12 H.A end 515 1874 a 515 1874 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.23.2) cvn H.B /DEST pdfmark end 515 1874 a 0.25 TeXcolorgray 145 x Fq(23.2)89 b(FITSUtil)23 b(Namespace)d(Ref)o(erence)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2223 a SDict begin H.S end 515 2223 a 0 0 1 TeXcolorrgb -1 x Fx(FITSUtil)p 0 0 1 TeXcolorrgb 815 2166 a SDict begin H.R end 815 2166 a 815 2222 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceFITSUtil) cvn H.B /ANN pdfmark end 815 2222 a 0 TeXcolorgray 32 w Fx(is)32 b(a)g(namespace)e(containing)f(functions)h(used)i (internally)e(by)p 0 0 1 TeXcolorrgb 2772 2223 a SDict begin H.S end 2772 2223 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2984 2166 a SDict begin H.R end 2984 2166 a 2984 2222 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2984 2222 a 0 TeXcolorgray Fx(,)35 b(b)n(ut)c(which)515 2322 y(might)19 b(be)h(of)g(use)h(for)e (other)h(applications.)515 2461 y SDict begin H.S end 515 2461 a 515 2461 a SDict begin 12 H.A end 515 2461 a 515 2461 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.23.2.1) cvn H.B /DEST pdfmark end 515 2461 a 0.25 TeXcolorgray 129 x Fo(23.2.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2794 a SDict begin H.S end 515 2794 a 0 0 1 TeXcolorrgb -1 x Fx(FITSUtil)p 0 0 1 TeXcolorrgb 815 2737 a SDict begin H.R end 815 2737 a 815 2793 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceFITSUtil) cvn H.B /ANN pdfmark end 815 2793 a 0 TeXcolorgray 32 w Fx(is)32 b(a)g(namespace)e(containing)f(functions)h(used)i(internally)e(by)p 0 0 1 TeXcolorrgb 2772 2794 a SDict begin H.S end 2772 2794 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 2984 2737 a SDict begin H.R end 2984 2737 a 2984 2793 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 2984 2793 a 0 TeXcolorgray Fx(,)35 b(b)n(ut)c(which)515 2893 y(might)19 b(be)h(of)g(use)h(for)e(other)h (applications.)515 3041 y SDict begin H.S end 515 3041 a 515 3041 a SDict begin 12 H.A end 515 3041 a 515 3041 a SDict begin [ /View [/XYZ H.V] /Dest (section.24) cvn H.B /DEST pdfmark end 515 3041 a 0.25 TeXcolorgray 179 x Fs(24)107 b(Class)24 b(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3453 a SDict begin H.S end 515 3453 a 0 TeXcolorgray 0 TeXcolorgray 515 3453 a SDict begin H.R end 515 3453 a 515 3453 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable) cvn H.B /DEST pdfmark end 515 3453 a 0 TeXcolorgray 515 3574 a SDict begin H.S end 515 3574 a 515 3574 a SDict begin 12 H.A end 515 3574 a 515 3574 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.1) cvn H.B /DEST pdfmark end 515 3574 a 0.25 TeXcolorgray 164 x Fq(24.1)89 b(CC\002ts::AsciiT)-6 b(ab)o(le)24 b(Class)c(Ref)o(erence)p 0 TeXcolorgray 515 3941 a Fx(Class)h(Representing)e(Ascii)p 0 0 1 TeXcolorrgb 1370 3942 a SDict begin H.S end 1370 3942 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1553 3884 a SDict begin H.R end 1553 3884 a 1553 3941 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1553 3941 a 0 TeXcolorgray 20 w Fx(Extensions.)515 4087 y Fr(#include)48 b Fu(<)p Fr(AsciiTable.h)p Fu(>)515 4234 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::AsciiT)-7 b(able:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 43 48 TeXDict begin 43 47 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.43) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.1)81 b(CC\002ts::AsciiT)-8 b(able)21 b(Class)g(Refer)o(ence)1315 b(43)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1596 1385 a @beginspecial 0 @llx 0 @lly 500 @urx 672.268921 @ury 1133 @rhi @setspecial %%BeginDocument: classCCfits_1_1AsciiTable.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 672.268908 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 0.743750 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 4 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::AsciiTable) cw (CCfits::Table) cw (CCfits::ExtHDU) cw (CCfits::HDU) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::AsciiTable) 0.000000 0.000000 box (CCfits::Table) 0.000000 1.000000 box (CCfits::ExtHDU) 0.000000 2.000000 box (CCfits::HDU) 0.000000 3.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in solid 0 0.000000 1.000000 out solid 1 0.000000 2.000000 in solid 0 0.000000 2.000000 out solid 1 0.000000 3.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1736 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 1793 a SDict begin H.S end 515 1793 a 515 1793 a SDict begin 12 H.A end 515 1793 a 515 1793 a SDict begin [ /View [/XYZ H.V] /Dest (section*.5) cvn H.B /DEST pdfmark end 515 1793 a 0 TeXcolorgray 652 1925 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)d(v)n(oid)p 0 0 1 TeXcolorrgb 1117 1926 a SDict begin H.S end 1117 1926 a 0 0 1 TeXcolorrgb -1 x Fx(addColumn)p 0 0 1 TeXcolorrgb 1504 1869 a SDict begin H.R end 1504 1869 a 1504 1925 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a245630609bfb16d581263b7ee868ce10) cvn H.B /ANN pdfmark end 1504 1925 a 0 TeXcolorgray 16 w Fx(\()p 0 0 1 TeXcolorrgb 1548 1943 a SDict begin H.S end 1548 1943 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 1900 1869 a SDict begin H.R end 1900 1869 a 1900 1925 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1900 1925 a 0 TeXcolorgray 16 w Fx(type,)16 b(const)f(String)g(&columnName,)e(long)h(repeat-)722 2025 y(W)m(idth,)i(const)f(String)g(&colUnit=String\(""\),)e(long)h (decimals=0,)h(size_t)h(columnNumber=0\))p 0 TeXcolorgray 0 TeXcolorgray 840 2249 a Fl(add)k(a)f(ne)o(w)g(column)h(to)f(an)g(e)o (xisting)g(table)p 0 0 1 TeXcolorrgb 1992 2250 a SDict begin H.S end 1992 2250 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2154 2201 a SDict begin H.R end 2154 2201 a 2154 2249 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2154 2249 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 2357 a Fx(\225)p 0 TeXcolorgray 722 2357 a SDict begin H.S end 722 2357 a 0 TeXcolorgray 0 TeXcolorgray 722 2357 a SDict begin H.R end 722 2357 a 722 2357 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_aef13a5add47a41179c1f751c2235a17e) cvn H.B /DEST pdfmark end 722 2357 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 2358 a SDict begin H.S end 981 2358 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1338 2301 a SDict begin H.R end 1338 2301 a 1338 2357 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1338 2357 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1421 2358 a SDict begin H.S end 1421 2358 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1601 2301 a SDict begin H.R end 1601 2301 a 1601 2357 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_aef13a5add47a41179c1f751c2235a17e) cvn H.B /ANN pdfmark end 1601 2357 a 0 TeXcolorgray 21 w Fx(\(FITSBase)20 b Fp(\003)p Fx(p\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2481 a Fl(virtual)f(copy)h(constructor)p 0 TeXcolorgray 652 2589 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)15 b(v)n(oid)p 0 0 1 TeXcolorrgb 1117 2590 a SDict begin H.S end 1117 2590 a 0 0 1 TeXcolorrgb -1 x Fx(readData)p 0 0 1 TeXcolorrgb 1416 2533 a SDict begin H.R end 1416 2533 a 1416 2589 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a7560ef2a9c29653a9685e6d20371e15e) cvn H.B /ANN pdfmark end 1416 2589 a 0 TeXcolorgray 16 w Fx(\(bool)f (readFlag=f)o(alse,)h(const)g(std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&k)o(e)o(ys=std-)722 2689 y(::v)o(ector)p Fu(<)k Fx(String)h Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 2813 a Fl(r)m(ead)g(columns)g(and)g(k)o(e)n(ys)f (speci\002ed)h(in)f(the)g(input)g(arr)o(ay)l(.)p 0.25 TeXcolorgray 515 3082 a Fo(Pr)o(otected)f(Member)g(Functions)p 0 TeXcolorgray 515 3138 a SDict begin H.S end 515 3138 a 515 3138 a SDict begin 12 H.A end 515 3138 a 515 3138 a SDict begin [ /View [/XYZ H.V] /Dest (section*.6) cvn H.B /DEST pdfmark end 515 3138 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3271 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3272 a SDict begin H.S end 722 3272 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1080 3214 a SDict begin H.R end 1080 3214 a 1080 3271 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a1c5cfbf4c9bcecf8b0bee071fca37d32) cvn H.B /ANN pdfmark end 1080 3271 a 0 TeXcolorgray 16 w Fx(\(FITSBase)15 b Fp(\003)p Fx(p,)h(const)f(String)g(&hduName=String\(""\),)c(bool)k(readFlag=f)o (alse,)722 3370 y(const)20 b(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&k)o(e)o(ys=std::v)o(ector)p Fu(<)d Fx(String)j Fu(>)p Fx(\(\),)f(int)h(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 3495 a Fl(r)m(eading)i(constructor:) 28 b(Construct)21 b(a)p 0 0 1 TeXcolorrgb 1858 3496 a SDict begin H.S end 1858 3496 a 0 0 1 TeXcolorrgb -1 x Fl(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 2171 3444 a SDict begin H.R end 2171 3444 a 2171 3495 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 2171 3495 a 0 TeXcolorgray 20 w Fl(e)o(xtension)21 b(fr)m(om)f(an)h(e)o (xtension)g(of)f(an)h(e)o(xist-)840 3586 y(ing)f(disk)f(\002le)o(.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3694 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3695 a SDict begin H.S end 722 3695 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1080 3638 a SDict begin H.R end 1080 3638 a 1080 3694 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a56e7f260511c4a4ee08c84d00c624913) cvn H.B /ANN pdfmark end 1080 3694 a 0 TeXcolorgray 21 w Fx(\(FITSBase)21 b Fp(\003)p Fx(p,)g(const)f(String)g(&hduName,)f (int)i(ro)n(ws,)g(const)f(std::v)o(ector)p Fu(<)722 3794 y Fx(String)26 b Fu(>)h Fx(&columnName=std::v)o(ector)p Fu(<)21 b Fx(String)26 b Fu(>)p Fx(\(\),)h(const)f(std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)722 3893 y Fx(&columnFmt=std::v)o(ector)p Fu(<)g Fx(String)j Fu(>)p Fx(\(\),)i(const)f(std::v)o(ector)p Fu(<)e Fx(String)h Fu(>)h Fx(&column-)722 3993 y(Unit=std::v)o(ector)p Fu(<)18 b Fx(String)i Fu(>)p Fx(\(\),)f(int)i(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 4117 a Fl(writing)e(constructor:)25 b(cr)m(eate)19 b(ne)o(w)g(Ascii)p 0 0 1 TeXcolorrgb 1976 4118 a SDict begin H.S end 1976 4118 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 2140 4067 a SDict begin H.R end 2140 4067 a 2140 4117 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2140 4117 a 0 TeXcolorgray 18 w Fl(object)20 b(with)e(the)h (speci\002ed)h(columns)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 4225 a Fx(\225)p 0 0 1 TeXcolorrgb 722 4226 a SDict begin H.S end 722 4226 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1080 4169 a SDict begin H.R end 1080 4169 a 1080 4225 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a69d98cb082fc738212066f583242c67c) cvn H.B /ANN pdfmark end 1080 4225 a 0 TeXcolorgray 21 w Fx(\(FITSBase)20 b Fp(\003)p Fx(p,)g(int)g(number\))p 0 TeXcolorgray 0 TeXcolorgray 840 4350 a Fl(r)m(ead)p 0 0 1 TeXcolorrgb 993 4351 a SDict begin H.S end 993 4351 a 0 0 1 TeXcolorrgb -1 x Fl(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1306 4299 a SDict begin H.R end 1306 4299 a 1306 4350 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1306 4350 a 0 TeXcolorgray 19 w Fl(with)p 0 0 1 TeXcolorrgb 1472 4351 a SDict begin H.S end 1472 4351 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1634 4302 a SDict begin H.R end 1634 4302 a 1634 4350 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1634 4350 a 0 TeXcolorgray 19 w Fl(number)20 b Fj(number)d Fl(fr)m(om)i(e)o(xisting)f(\002le)o(.)p 0 TeXcolorgray 0 TeXcolorgray 652 4458 a Fx(\225)p 0 TeXcolorgray 722 4458 a SDict begin H.S end 722 4458 a 0 TeXcolorgray 0 TeXcolorgray 722 4458 a SDict begin H.R end 722 4458 a 722 4458 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_addd0761345234235bd36d3dc46d452f6) cvn H.B /DEST pdfmark end 722 4458 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4459 a SDict begin H.S end 743 4459 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1165 4402 a SDict begin H.R end 1165 4402 a 1165 4458 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_addd0761345234235bd36d3dc46d452f6) cvn H.B /ANN pdfmark end 1165 4458 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4582 a Fl(destructor)f(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 44 49 TeXDict begin 44 48 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.44) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.1)81 b(CC\002ts::AsciiT)-8 b(able)21 b(Class)g(Refer)o(ence)1315 b(44)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.1.1) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.1.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 726 a Fx(Class)j(Representing)e(Ascii)p 0 0 1 TeXcolorrgb 1370 727 a SDict begin H.S end 1370 727 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1553 670 a SDict begin H.R end 1553 670 a 1553 726 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1553 726 a 0 TeXcolorgray 20 w Fx(Extensions.)515 873 y(May)29 b(only)g(contain)g(columns)g(with)h(scalar)f(ro)n(w)h (entries)g(and)f(a)h(small)g(range)f(of)g(data)h(types.)p 0 0 1 TeXcolorrgb 515 973 a SDict begin H.S end 515 973 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 872 916 a SDict begin H.R end 872 916 a 872 972 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 872 972 a 0 TeXcolorgray 29 w Fx (\(re\)implements)27 b(functions)g(prescribed)f(in)j(the)p 0 0 1 TeXcolorrgb 2374 973 a SDict begin H.S end 2374 973 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2557 916 a SDict begin H.R end 2557 916 a 2557 972 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2557 972 a 0 TeXcolorgray 29 w Fx(abstract)28 b(class.)51 b(The)28 b(im-)515 1072 y(plementations)g(allo)n(w)i(the)g (calling)f(of)h(c\002tsio)g(specialized)f(routines)g(for)p 0 0 1 TeXcolorrgb 2770 1073 a SDict begin H.S end 2770 1073 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 3127 1016 a SDict begin H.R end 3127 1016 a 3127 1072 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 3127 1072 a 0 TeXcolorgray 31 w Fx(header)515 1172 y(construction.)515 1319 y(Direct)28 b(instantiation)g(of)p 0 0 1 TeXcolorrgb 1289 1320 a SDict begin H.S end 1289 1320 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1647 1262 a SDict begin H.R end 1647 1262 a 1647 1319 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1647 1319 a 0 TeXcolorgray 29 w Fx(objects)29 b(is)g(disallo)n(wed:)42 b(the)o(y)28 b(are)g(created)g(by)g(e)o(xplicit)515 1418 y(calls)23 b(to)p 0 0 1 TeXcolorrgb 777 1419 a SDict begin H.S end 777 1419 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::addT)-7 b(able)p 0 0 1 TeXcolorrgb 1296 1362 a SDict begin H.R end 1296 1362 a 1296 1418 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) cvn H.B /ANN pdfmark end 1296 1418 a 0 TeXcolorgray Fx(\()23 b(...)30 b(\),)p 0 0 1 TeXcolorrgb 1512 1419 a SDict begin H.S end 1512 1419 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::read)p 0 0 1 TeXcolorrgb 1872 1362 a SDict begin H.R end 1872 1362 a 1872 1418 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) cvn H.B /ANN pdfmark end 1872 1418 a 0 TeXcolorgray Fx(\(...\))g(or)22 b(internally)f(by)h(one)f(of)h(the)p 0 0 1 TeXcolorrgb 2918 1419 a SDict begin H.S end 2918 1419 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3089 1362 a SDict begin H.R end 3089 1362 a 3089 1418 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3089 1418 a 0 TeXcolorgray 23 w Fx(ctors)g(on)515 1518 y(initialization.)i(The)c(def)o(ault)f(for)p 0 0 1 TeXcolorrgb 1499 1519 a SDict begin H.S end 1499 1519 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::addT)-7 b(able)p 0 0 1 TeXcolorrgb 2018 1462 a SDict begin H.R end 2018 1462 a 2018 1518 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) cvn H.B /ANN pdfmark end 2018 1518 a 0 TeXcolorgray 21 w Fx(is)21 b(to)f(produce)p 0 0 1 TeXcolorrgb 2488 1519 a SDict begin H.S end 2488 1519 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 2791 1462 a SDict begin H.R end 2791 1462 a 2791 1518 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 2791 1518 a 0 TeXcolorgray 21 w Fx(e)o(xtensions.)515 1657 y SDict begin H.S end 515 1657 a 515 1657 a SDict begin 12 H.A end 515 1657 a 515 1657 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.1.2) cvn H.B /DEST pdfmark end 515 1657 a 0.25 TeXcolorgray 129 x Fo(24.1.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1989 a SDict begin H.S end 515 1989 a 0 TeXcolorgray 0 TeXcolorgray 515 1989 a SDict begin H.R end 515 1989 a 515 1989 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_a1c5cfbf4c9bcecf8b0bee071fca37d32) cvn H.B /DEST pdfmark end 515 1989 a 0 TeXcolorgray 515 2026 a SDict begin H.S end 515 2026 a 515 2026 a SDict begin 12 H.A end 515 2026 a 515 2026 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.1.2.1) cvn H.B /DEST pdfmark end 515 2026 a 0.25 TeXcolorgray 147 x Fo(24.1.2.1)75 b(CC\002ts::AsciiT)-5 b(ab)o(le::AsciiT)g(able)26 b(\()42 b(FITSBase)21 b Fp(\003)f Fk(p,)43 b Fo(const)21 b(String)h(&)e Fk(hduName)j(=)811 2273 y Fr(String\(""\))p Fk(,)35 b Fo(bool)19 b Fk(readFla)o(g)h(=)e Fr(false)p Fk(,)36 b Fo(const)20 b(std::vector)p Fu(<)g Fo(String)f Fu(>)f Fo(&)g Fk(ke)o(ys)g(=)811 2372 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)29 b Fo(int)18 b Fk(ver)o(sion)g(=)f Fr(1)34 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 2557 a Fx(reading)17 b(constructor:)23 b(Construct)18 b(a)p 0 0 1 TeXcolorrgb 1603 2558 a SDict begin H.S end 1603 2558 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1961 2500 a SDict begin H.R end 1961 2500 a 1961 2557 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1961 2557 a 0 TeXcolorgray 19 w Fx(e)o(xtension)17 b(from)h(an)h(e)o (xtension)e(of)i(an)f(e)o(xisting)515 2656 y(disk)i(\002le.)515 2803 y(The)p 0 0 1 TeXcolorrgb 661 2804 a SDict begin H.S end 661 2804 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 844 2747 a SDict begin H.R end 844 2747 a 844 2803 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 844 2803 a 0 TeXcolorgray 17 w Fx(is)18 b(speci\002ed)f(by)f(name)g(and)h(optional)e(v)o(ersion)h (number)f(within)i(the)f(\002le.)25 b(An)17 b(array)f(of)515 2903 y(strings)22 b(representing)f(columns)g(or)h(k)o(e)o(ys)g (indicates)h(which)f(data)g(are)g(to)h(be)f(read.)32 b(The)22 b(column)515 3002 y(data)15 b(are)g(only)g(read)f(if)i (readFlag)e(is)j(true.)23 b(Reading)14 b(on)h(construction)e(is)k (optimized,)d(so)i(it)g(is)g(more)515 3102 y(ef)n(\002cient)22 b(to)g(read)g(data)g(at)h(the)f(point)g(of)g(instantiation.)31 b(This)22 b(f)o(a)n(v)n(ours)g(a)h("resource)e(acquisition)515 3202 y(is)g(initialization")e(model)h(of)f(data)i(management.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3412 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3354 a SDict begin H.S end 515 3354 a 515 3354 a SDict begin 12 H.A end 515 3354 a 515 3354 a SDict begin [ /View [/XYZ H.V] /Dest (table.1) cvn H.B /DEST pdfmark end 515 3354 a 515 3457 2889 4 v 515 3457 V 515 3557 4 100 v 935 3527 a Ft(p)p 1005 3557 V 60 w Fx(pointer)e(to)h(FITSBase)h(object)f(for)f(internal)h(use) p 3400 3557 V 515 3560 2889 4 v 515 3560 V 515 3660 4 100 v 658 3630 a Ft(hduName)p 1005 3660 V 59 w Fx(name)f(of)p 0 0 1 TeXcolorrgb 1327 3631 a SDict begin H.S end 1327 3631 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1685 3574 a SDict begin H.R end 1685 3574 a 1685 3630 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1685 3630 a 0 TeXcolorgray 21 w Fx(object)19 b(to)i(be)f(read.)p 3400 3660 4 100 v 515 3663 2889 4 v 515 3663 V 515 3763 4 100 v 671 3733 a Ft(r)m(eadFla)o(g)p 1005 3763 V 59 w Fx(\003ag)g(to)h(determine)d (whether)h(to)i(read)e(data)h(on)g(construction)p 3400 3763 V 515 3766 2889 4 v 515 3766 V 515 4065 4 299 v 837 3836 a Ft(k)o(e)n(ys)p 1005 4065 V 60 w Fx(\(optional\))g(a)j(list) h(of)e(k)o(e)o(yw)o(ords/columns)e(to)j(be)f(read.)32 b(The)22 b(implementation)1037 3936 y(will)c(determine)d(which)i(are)g (k)o(e)o(yw)o(ords.)22 b(If)17 b(none)f(are)h(speci\002ed,)g(the)g (construc-)1037 4035 y(tor)j(will)h(simply)f(read)f(the)h(header)p 3400 4065 V 515 4068 2889 4 v 515 4068 V 515 4268 4 200 v 733 4138 a Ft(ver)o(sion)p 1005 4268 V 60 w Fx(\(optional\))c(v)o (ersion)i(number)-5 b(.)23 b(If)18 b(not)g(speci\002ed,)g(will)i(read)e (the)g(\002rst)h(e)o(xtension)1037 4238 y(that)h(matches)g(hduName.)p 3400 4268 V 515 4271 2889 4 v 515 4271 V 0 TeXcolorgray 515 4501 a SDict begin H.S end 515 4501 a 0 TeXcolorgray 0 TeXcolorgray 515 4501 a SDict begin H.R end 515 4501 a 515 4501 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_a56e7f260511c4a4ee08c84d00c624913) cvn H.B /DEST pdfmark end 515 4501 a 0 TeXcolorgray 515 4538 a SDict begin H.S end 515 4538 a 515 4538 a SDict begin 12 H.A end 515 4538 a 515 4538 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.1.2.2) cvn H.B /DEST pdfmark end 515 4538 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 717 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 45 50 TeXDict begin 45 49 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.45) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.1)81 b(CC\002ts::AsciiT)-8 b(able)21 b(Class)g(Refer)o(ence)1315 b(45)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.1.2.2)75 b(CC\002ts::AsciiT) -5 b(ab)o(le::AsciiT)g(able)24 b(\()38 b(FITSBase)19 b Fp(\003)f Fk(p,)38 b Fo(const)20 b(String)f(&)g Fk(hduName)q(,)39 b Fo(int)19 b Fk(r)o(o)o(ws,)811 623 y Fo(const)g(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)i Fk(columnName)h(=)e Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)811 722 y Fo(const)i(std::vector)p Fu(<)g Fo(String)f Fu(>)f Fo(&)h Fk(columnFmt)i(=)d Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)811 822 y Fo(const)h(std::vector)p Fu(<)g Fo(String)g Fu(>)d Fo(&)i Fk(columnUnit)i(=)e Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)30 b Fo(int)811 922 y Fk(ver)o(sion)18 b(=)f Fr(1)33 b Fo(\))72 b Fr([protected])p 0 TeXcolorgray 515 1106 a Fx(writing)19 b(constructor:)24 b(create)c(ne)n(w)g(Ascii)p 0 0 1 TeXcolorrgb 1770 1107 a SDict begin H.S end 1770 1107 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1952 1049 a SDict begin H.R end 1952 1049 a 1952 1106 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1952 1106 a 0 TeXcolorgray 21 w Fx(object)19 b(with)i(the)f(speci\002ed)g(columns)515 1253 y(The)j(constructor)e (creates)i(a)h(v)n(alid)p 0 0 1 TeXcolorrgb 1568 1254 a SDict begin H.S end 1568 1254 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1748 1199 a SDict begin H.R end 1748 1199 a 1748 1253 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1748 1253 a 0 TeXcolorgray 23 w Fx(which)f(is)h(ready)f(for)p 0 0 1 TeXcolorrgb 2406 1254 a SDict begin H.S end 2406 1254 a 0 0 1 TeXcolorrgb -1 x Fx(Column::write)p 0 0 1 TeXcolorrgb 2891 1196 a SDict begin H.R end 2891 1196 a 2891 1253 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) cvn H.B /ANN pdfmark end 2891 1253 a 0 TeXcolorgray 23 w Fx(or)g(insertRo)n(ws)515 1352 y(operations.)29 b(The)21 b(disk)p 0 0 1 TeXcolorrgb 1225 1353 a SDict begin H.S end 1225 1353 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1396 1296 a SDict begin H.R end 1396 1296 a 1396 1352 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1396 1352 a 0 TeXcolorgray 22 w Fx(\002le)i(is)g(update)e(accordingly) -5 b(.)27 b(The)22 b(data)g(type)g(of)f(each)h(column)f(is)515 1452 y(determined)f(by)i(the)g(columnFmt)f(ar)o(gument)f(\(TFORM)i(k)o (e)o(yw)o(ords\).)30 b(See)22 b(c\002tsio)h(documenta-)515 1552 y(tion)d(for)f(acceptable)g(v)n(alues.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1762 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1704 a SDict begin H.S end 515 1704 a 515 1704 a SDict begin 12 H.A end 515 1704 a 515 1704 a SDict begin [ /View [/XYZ H.V] /Dest (table.2) cvn H.B /DEST pdfmark end 515 1704 a 515 1807 2889 4 v 515 1807 V 515 1907 4 100 v 658 1877 a Ft(hduName)p 1005 1907 V 59 w Fx(name)g(of)p 0 0 1 TeXcolorrgb 1327 1878 a SDict begin H.S end 1327 1878 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1685 1821 a SDict begin H.R end 1685 1821 a 1685 1877 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1685 1877 a 0 TeXcolorgray 21 w Fx(object)19 b(to)i(be)f (written)p 3400 1907 4 100 v 515 1910 2889 4 v 515 1910 V 515 2010 4 100 v 819 1980 a Ft(r)l(ows)p 1005 2010 V 61 w Fx(number)e(of)i(ro)n(ws)g(in)h(the)f(table)g(\(NAXIS2\))p 3400 2010 V 515 2013 2889 4 v 515 2013 V 515 2212 4 200 v 704 2083 a Ft(column-)783 2182 y(Name)p 1005 2212 V 1037 2083 a Fx(array)f(of)h(column)f(names)h(for)f(columns)g(to)i(be)f (constructed.)p 3400 2212 V 515 2216 2889 4 v 515 2216 V 515 2315 4 100 v 598 2285 a Ft(columnFmt)p 1005 2315 V 59 w Fx(array)f(of)h(column)f(formats)g(for)h(columns)f(to)h(be)g (constructed.)p 3400 2315 V 515 2319 2889 4 v 515 2319 V 515 2418 4 100 v 584 2388 a Ft(columnUnit)p 1005 2418 V 59 w Fx(\(optional\))e(array)h(of)h(units)g(for)g(data)g(in)g (columns.)p 3400 2418 V 515 2422 2889 4 v 515 2422 V 515 2521 4 100 v 733 2491 a Ft(ver)o(sion)p 1005 2521 V 60 w Fx(\(optional\))e(v)o(ersion)h(number)f(for)p 0 0 1 TeXcolorrgb 2041 2492 a SDict begin H.S end 2041 2492 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2221 2437 a SDict begin H.R end 2221 2437 a 2221 2491 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2221 2491 a 0 TeXcolorgray Fx(.)p 3400 2521 4 100 v 515 2524 2889 4 v 515 2524 V 515 2754 a(The)24 b(dimensions)f(of)i(columnT)-7 b(ype,)23 b(columnName)f(and)i (columnFmt)f(must)i(match,)f(although)515 2854 y(this)c(is)i(not)d (enforced)g(at)h(present.)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 3085 a SDict begin H.S end 515 3085 a 0 0 1 TeXcolorrgb -1 x Fy(T)-8 b(odo)p 0 0 1 TeXcolorrgb 692 3027 a SDict begin H.R end 692 3027 a 692 3084 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (todo__todo000001) cvn H.B /ANN pdfmark end 692 3084 a 0 TeXcolorgray 0 TeXcolorgray 41 w Fx({enforce)15 b(equal)i(dimensions)e(for)h(arrays)h(input)f(to)p 0 0 1 TeXcolorrgb 2237 3085 a SDict begin H.S end 2237 3085 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 2594 3028 a SDict begin H.R end 2594 3028 a 2594 3084 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 2594 3084 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2633 3085 a SDict begin H.S end 2633 3085 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)g(able)p 0 0 1 TeXcolorrgb 2935 3028 a SDict begin H.R end 2935 3028 a 2935 3084 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 2935 3084 a 0 TeXcolorgray 18 w Fx(writing)16 b(ctor})p 0 TeXcolorgray 515 3314 a SDict begin H.S end 515 3314 a 0 TeXcolorgray 0 TeXcolorgray 515 3314 a SDict begin H.R end 515 3314 a 515 3314 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_a69d98cb082fc738212066f583242c67c) cvn H.B /DEST pdfmark end 515 3314 a 0 TeXcolorgray 515 3351 a SDict begin H.S end 515 3351 a 515 3351 a SDict begin 12 H.A end 515 3351 a 515 3351 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.1.2.3) cvn H.B /DEST pdfmark end 515 3351 a 0.25 TeXcolorgray 147 x Fo(24.1.2.3)75 b(CC\002ts::AsciiT)-5 b(ab)o(le::AsciiT)g(able)23 b(\()35 b(FITSBase)18 b Fp(\003)e Fk(p,)35 b Fo(int)18 b Fk(n)o(umber)36 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 3682 a Fx(read)p 0 0 1 TeXcolorrgb 678 3683 a SDict begin H.S end 678 3683 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1036 3626 a SDict begin H.R end 1036 3626 a 1036 3682 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1036 3682 a 0 TeXcolorgray 21 w Fx(with)p 0 0 1 TeXcolorrgb 1225 3683 a SDict begin H.S end 1225 3683 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1405 3628 a SDict begin H.R end 1405 3628 a 1405 3682 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1405 3682 a 0 TeXcolorgray 21 w Fx(number)18 b Fr(number)i Fx(from)f(e)o(xisting)g(\002le.)515 3829 y(This)f(is)i(used)e(internally)g(by)g(methods)f(that)i(need)f(to)h (access)g(HDUs)g(for)f(which)g(no)g(EXTNAME)515 3929 y([)o(or)i(equi)n(v)n(alent])e(k)o(e)o(yw)o(ord)h(e)o(xists.)515 4068 y SDict begin H.S end 515 4068 a 515 4068 a SDict begin 12 H.A end 515 4068 a 515 4068 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.1.3) cvn H.B /DEST pdfmark end 515 4068 a 0.25 TeXcolorgray 129 x Fo(24.1.3)75 b(Member)18 b(Function)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4400 a SDict begin H.S end 515 4400 a 0 TeXcolorgray 0 TeXcolorgray 515 4400 a SDict begin H.R end 515 4400 a 515 4400 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_a245630609bfb16d581263b7ee868ce10) cvn H.B /DEST pdfmark end 515 4400 a 0 TeXcolorgray 515 4437 a SDict begin H.S end 515 4437 a 515 4437 a SDict begin 12 H.A end 515 4437 a 515 4437 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.1.3.1) cvn H.B /DEST pdfmark end 515 4437 a 0.25 TeXcolorgray 147 x Fo(24.1.3.1)75 b(v)n(oid)19 b(CC\002ts::AsciiT)-5 b(ab)o(le::ad)o(dCo)q(lum)q(n)23 b(\()36 b Fy(V)-8 b(alueT)i(ype)17 b Fk(type)q(,)36 b Fo(const)18 b(String)h(&)f Fk(columnName)q(,)811 4684 y Fo(long)g Fk(repeatWidth,)37 b Fo(const)18 b(String)g(&)g Fk(colUnit)g(=)f Fr(String\(""\))p Fk(,)33 b Fo(long)18 b Fk(decimals)h(=)e Fr(0)p Fk(,)34 b Fo(siz)q(e)p 3327 4684 23 4 v 26 w(t)811 4783 y Fk(columnNumber)20 b(=)d Fr(0)34 b Fo(\))71 b Fr([virtual])p 0 TeXcolorgray 515 4968 a Fx(add)19 b(a)i(ne)n(w)f(column)f(to)h(an)g(e)o(xisting)g(table) p 0 0 1 TeXcolorrgb 1789 4969 a SDict begin H.S end 1789 4969 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1969 4914 a SDict begin H.R end 1969 4914 a 1969 4968 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1969 4968 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 46 51 TeXDict begin 46 50 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.46) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.2)81 b(CC\002ts::BinT)-8 b(able)21 b(Class)g(Refer)o(ence)1366 b(46)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.3) cvn H.B /DEST pdfmark end 515 436 a 515 539 2889 4 v 515 539 V 515 639 4 100 v 838 609 a Ft(type)p 1005 639 V 60 w Fx(The)20 b(data)g(type)g(of)f(the)i (column)d(to)j(be)f(added)p 3400 639 V 515 642 2889 4 v 515 642 V 515 841 4 200 v 704 712 a Ft(column-)783 811 y(Name)p 1005 841 V 1037 712 a Fx(The)g(name)f(of)h(the)g(column)f (to)i(be)f(added)p 3400 841 V 515 845 2889 4 v 515 845 V 515 1143 4 299 v 573 914 a Ft(r)m(epeatW)-5 b(idth)p 1005 1143 V 60 w Fx(for)21 b(a)h(string)f(v)n(alued,)f(this)j(is)f(the) g(width)f(of)g(a)h(string.)29 b(F)o(or)21 b(a)h(numeric)e(column)1037 1014 y(it)28 b(supplies)f(the)g(v)o(ector)f(length)g(of)h(the)g(ro)n (ws.)46 b(It)28 b(is)g(ignored)d(for)i(ascii)h(table)1037 1114 y(numeric)19 b(data.)p 3400 1143 V 515 1147 2889 4 v 515 1147 V 515 1246 4 100 v 727 1217 a Ft(colUnit)p 1005 1246 V 60 w Fx(an)h(optional)f(\002eld)h(specifying)f(the)h(units) g(of)g(the)g(data)h(\(TUNITn\))p 3400 1246 V 515 1250 2889 4 v 515 1250 V 515 1449 4 200 v 681 1320 a Ft(decimals)p 1005 1449 V 60 w Fx(optional)g(parameter)f(specifying)h(the)h(number)e (of)i(decimals)g(for)g(an)g(ascii)h(nu-)1037 1419 y(meric)d(column)p 3400 1449 V 515 1452 2889 4 v 515 1452 V 515 1950 4 499 v 704 1522 a Ft(column-)709 1622 y(Number)p 1005 1950 V 1037 1522 a Fx(optional)30 b(parameter)g(specifying)g(column)g (number)g(to)i(be)f(created.)59 b(If)31 b(not)1037 1622 y(speci\002ed)c(the)g(column)e(is)j(added)e(to)h(the)g(end.)45 b(If)27 b(speci\002ed,)h(the)f(column)f(is)1037 1721 y(inserted)18 b(and)g(the)h(columns)f(already)g(read)g(are)h(reinde)o (x)o(ed.)j(This)d(parameter)e(is)1037 1821 y(pro)o(vided)i(as)j(a)g (con)m(v)o(enience)c(to)k(support)e(e)o(xisting)h(code)g(rather)f(than) h(recom-)1037 1921 y(mended.)p 3400 1950 V 515 1954 2889 4 v 515 1954 V 515 2184 a(Reimplemented)d(from)p 0 0 1 TeXcolorrgb 1243 2185 a SDict begin H.S end 1243 2185 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 2127 a SDict begin H.R end 1797 2127 a 1797 2184 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) cvn H.B /ANN pdfmark end 1797 2184 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 2331 a SDict begin H.S end 515 2331 a 0 TeXcolorgray 0 TeXcolorgray 515 2331 a SDict begin H.R end 515 2331 a 515 2331 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1AsciiTable_a7560ef2a9c29653a9685e6d20371e15e) cvn H.B /DEST pdfmark end 515 2331 a 0 TeXcolorgray 515 2368 a SDict begin H.S end 515 2368 a 515 2368 a SDict begin 12 H.A end 515 2368 a 515 2368 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.1.3.2) cvn H.B /DEST pdfmark end 515 2368 a 0.25 TeXcolorgray 147 x Fo(24.1.3.2)75 b(v)n(oid)18 b(CC\002ts::AsciiT)-5 b(ab)o(le::readData) 23 b(\()35 b(bool)18 b Fk(readFla)o(g)h(=)e Fr(false)p Fk(,)33 b Fo(const)19 b(std::vector)p Fu(<)g Fo(String)811 2614 y Fu(>)d Fo(&)i Fk(ke)o(ys)f(=)g Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))29 b Fo(\))72 b Fr([)o(virtual])p 0 TeXcolorgray 515 2799 a Fx(read)19 b(columns)g(and)h(k)o(e)o(ys)g (speci\002ed)g(in)g(the)g(input)g(array)-5 b(.)515 2946 y(See)p 0 0 1 TeXcolorrgb 655 2947 a SDict begin H.S end 655 2947 a 0 0 1 TeXcolorrgb -1 x Fx(T)e(able)p 0 0 1 TeXcolorrgb 838 2889 a SDict begin H.R end 838 2889 a 838 2946 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 838 2946 a 0 TeXcolorgray 21 w Fx(class)21 b(documentation)c(for)i(further)g(details.)515 3092 y(Implements)p 0 0 1 TeXcolorrgb 928 3093 a SDict begin H.S end 928 3093 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1481 3036 a SDict begin H.R end 1481 3036 a 1481 3092 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) cvn H.B /ANN pdfmark end 1481 3092 a 0 TeXcolorgray Fx(.)515 3239 y(The)h(documentation)d(for)i(this) i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 3453 a(\225)p 0 TeXcolorgray 41 w(AsciiT)-7 b(able.h)p 0 TeXcolorgray 652 3560 a(\225)p 0 TeXcolorgray 41 w(AsciiT)g(able.cxx)p 0 TeXcolorgray 515 3774 a SDict begin H.S end 515 3774 a 0 TeXcolorgray 0 TeXcolorgray 515 3774 a SDict begin H.R end 515 3774 a 515 3774 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable) cvn H.B /DEST pdfmark end 515 3774 a 0 TeXcolorgray 515 3895 a SDict begin H.S end 515 3895 a 515 3895 a SDict begin 12 H.A end 515 3895 a 515 3895 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.2) cvn H.B /DEST pdfmark end 515 3895 a 0.25 TeXcolorgray 164 x Fq(24.2)89 b(CC\002ts::BinT)-6 b(ab)o(le)23 b(Class)e(Ref)o(erence)p 0 TeXcolorgray 515 4262 a Fx(Class)k (Representing)e(Binary)p 0 0 1 TeXcolorrgb 1433 4263 a SDict begin H.S end 1433 4263 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1615 4205 a SDict begin H.R end 1615 4205 a 1615 4262 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1615 4262 a 0 TeXcolorgray 25 w Fx(Extensions.)35 b(Contains)24 b(columns)f(with)i(scalar)f(or)g(v)o(ector)515 4361 y(ro)n(w)c (entries.)515 4508 y Fr(#include)48 b Fu(<)p Fr(BinTable.h)p Fu(>)515 4655 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::BinT)-7 b(able:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 47 52 TeXDict begin 47 51 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.47) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.2)81 b(CC\002ts::BinT)-8 b(able)21 b(Class)g(Refer)o(ence)1366 b(47)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1625 1385 a @beginspecial 0 @llx 0 @lly 500 @urx 733.944946 @ury 1133 @rhi @setspecial %%BeginDocument: classCCfits_1_1BinTable.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 733.944954 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 0.681250 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 4 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::BinTable) cw (CCfits::Table) cw (CCfits::ExtHDU) cw (CCfits::HDU) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::BinTable) 0.000000 0.000000 box (CCfits::Table) 0.000000 1.000000 box (CCfits::ExtHDU) 0.000000 2.000000 box (CCfits::HDU) 0.000000 3.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in solid 0 0.000000 1.000000 out solid 1 0.000000 2.000000 in solid 0 0.000000 2.000000 out solid 1 0.000000 3.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1736 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 1793 a SDict begin H.S end 515 1793 a 515 1793 a SDict begin 12 H.A end 515 1793 a 515 1793 a SDict begin [ /View [/XYZ H.V] /Dest (section*.7) cvn H.B /DEST pdfmark end 515 1793 a 0 TeXcolorgray 652 1925 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)d(v)n(oid)p 0 0 1 TeXcolorrgb 1117 1926 a SDict begin H.S end 1117 1926 a 0 0 1 TeXcolorrgb -1 x Fx(addColumn)p 0 0 1 TeXcolorrgb 1504 1869 a SDict begin H.R end 1504 1869 a 1504 1925 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a60e89ab762910b76155da983554d433d) cvn H.B /ANN pdfmark end 1504 1925 a 0 TeXcolorgray 16 w Fx(\()p 0 0 1 TeXcolorrgb 1548 1943 a SDict begin H.S end 1548 1943 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 1900 1869 a SDict begin H.R end 1900 1869 a 1900 1925 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1900 1925 a 0 TeXcolorgray 16 w Fx(type,)16 b(const)f(String)g(&columnName,)e(long)h(repeat-)722 2025 y(W)m(idth,)i(const)f(String)g(&colUnit=String\(""\),)e(long)h (decimals=0,)h(size_t)h(columnNumber=0\))p 0 TeXcolorgray 0 TeXcolorgray 840 2249 a Fl(add)k(a)f(ne)o(w)g(column)h(to)f(an)g(e)o (xisting)g(table)p 0 0 1 TeXcolorrgb 1992 2250 a SDict begin H.S end 1992 2250 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2154 2201 a SDict begin H.R end 2154 2201 a 2154 2249 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2154 2249 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 2357 a Fx(\225)p 0 TeXcolorgray 722 2357 a SDict begin H.S end 722 2357 a 0 TeXcolorgray 0 TeXcolorgray 722 2357 a SDict begin H.R end 722 2357 a 722 2357 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a04506e39335dd06136d276091f097cde) cvn H.B /DEST pdfmark end 722 2357 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 2358 a SDict begin H.S end 981 2358 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1283 2301 a SDict begin H.R end 1283 2301 a 1283 2357 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1283 2357 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1366 2358 a SDict begin H.S end 1366 2358 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1546 2301 a SDict begin H.R end 1546 2301 a 1546 2357 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a04506e39335dd06136d276091f097cde) cvn H.B /ANN pdfmark end 1546 2357 a 0 TeXcolorgray 21 w Fx(\(FITSBase)20 b Fp(\003)p Fx(p\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2481 a Fl(virtual)g(copy)h(constructor)p 0 TeXcolorgray 652 2589 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)15 b(v)n(oid)p 0 0 1 TeXcolorrgb 1117 2590 a SDict begin H.S end 1117 2590 a 0 0 1 TeXcolorrgb -1 x Fx(readData)p 0 0 1 TeXcolorrgb 1416 2533 a SDict begin H.R end 1416 2533 a 1416 2589 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a90cba1f7ee83d3c9f4471e0a2f317391) cvn H.B /ANN pdfmark end 1416 2589 a 0 TeXcolorgray 16 w Fx(\(bool)f (readFlag=f)o(alse,)h(const)g(std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&k)o(e)o(ys=std-)722 2689 y(::v)o(ector)p Fu(<)k Fx(String)h Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 2813 a Fl(r)m(ead)g(columns)g(and)g(k)o(e)n(ys)f (speci\002ed)h(in)f(the)g(input)g(arr)o(ay)l(.)p 0.25 TeXcolorgray 515 3082 a Fo(Pr)o(otected)f(Member)g(Functions)p 0 TeXcolorgray 515 3138 a SDict begin H.S end 515 3138 a 515 3138 a SDict begin 12 H.A end 515 3138 a 515 3138 a SDict begin [ /View [/XYZ H.V] /Dest (section*.8) cvn H.B /DEST pdfmark end 515 3138 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3271 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3272 a SDict begin H.S end 722 3272 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1025 3214 a SDict begin H.R end 1025 3214 a 1025 3271 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a8d97ec9581e1c46111ce933c608b489a) cvn H.B /ANN pdfmark end 1025 3271 a 0 TeXcolorgray 15 w Fx(\(FITSBase)16 b Fp(\003)p Fx(p,)f(const)h(String)e(&hduName=String\(""\),)e(bool)i(readFlag=f)o (alse,)722 3370 y(const)20 b(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&k)o(e)o(ys=std::v)o(ector)p Fu(<)d Fx(String)j Fu(>)p Fx(\(\),)f(int)h(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 3495 a Fl(r)m(eading)h(constructor)-8 b(.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3603 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3604 a SDict begin H.S end 722 3604 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)h(able)p 0 0 1 TeXcolorrgb 1025 3546 a SDict begin H.R end 1025 3546 a 1025 3603 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a7f144dbfdaa1a01331adf1bb83a9347a) cvn H.B /ANN pdfmark end 1025 3603 a 0 TeXcolorgray 27 w Fx(\(FITSBase)26 b Fp(\003)p Fx(p,)i(const)e(String)g(&hduName,)g(int)g(ro)n(ws,)i (const)e(std::v)o(ector)p Fu(<)722 3702 y Fx(String)g Fu(>)h Fx(&columnName=std::v)o(ector)p Fu(<)21 b Fx(String)26 b Fu(>)p Fx(\(\),)h(const)f(std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)722 3802 y Fx(&columnFmt=std::v)o(ector)p Fu(<)g Fx(String)j Fu(>)p Fx(\(\),)i(const)f(std::v)o(ector)p Fu(<)e Fx(String)h Fu(>)h Fx(&column-)722 3902 y(Unit=std::v)o(ector)p Fu(<)18 b Fx(String)i Fu(>)p Fx(\(\),)f(int)i(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 4026 a Fl(writing)e(constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 4134 a Fx(\225)p 0 TeXcolorgray 722 4134 a SDict begin H.S end 722 4134 a 0 TeXcolorgray 0 TeXcolorgray 722 4134 a SDict begin H.R end 722 4134 a 722 4134 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a7a3775a258e59292fad79c41a08d0683) cvn H.B /DEST pdfmark end 722 4134 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4135 a SDict begin H.S end 743 4135 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1045 4078 a SDict begin H.R end 1045 4078 a 1045 4134 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a7a3775a258e59292fad79c41a08d0683) cvn H.B /ANN pdfmark end 1045 4134 a 0 TeXcolorgray 21 w Fx(\(FITSBase)21 b Fp(\003)p Fx(p,)e(int)i(number\))p 0 TeXcolorgray 0 TeXcolorgray 840 4259 a Fl(r)m(ead)p 0 0 1 TeXcolorrgb 1001 4260 a SDict begin H.S end 1001 4260 a 0 0 1 TeXcolorrgb -1 x Fl(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1268 4208 a SDict begin H.R end 1268 4208 a 1268 4259 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1268 4259 a 0 TeXcolorgray 27 w Fl(with)p 0 0 1 TeXcolorrgb 1450 4260 a SDict begin H.S end 1450 4260 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1612 4210 a SDict begin H.R end 1612 4210 a 1612 4259 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1612 4259 a 0 TeXcolorgray 27 w Fl(number)28 b Fj(number)d Fl(fr)m(om)i(e)o(xisting)f(\002le)h(r)m (epr)m(esented)i(by)e(\002ts\002le)840 4350 y(pointer)20 b(p.)p 0 TeXcolorgray 0 TeXcolorgray 652 4458 a Fx(\225)p 0 TeXcolorgray 722 4458 a SDict begin H.S end 722 4458 a 0 TeXcolorgray 0 TeXcolorgray 722 4458 a SDict begin H.R end 722 4458 a 722 4458 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a1bb44b892d5ed7c6d7271c4fb4c637c0) cvn H.B /DEST pdfmark end 722 4458 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4459 a SDict begin H.S end 743 4459 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1110 4402 a SDict begin H.R end 1110 4402 a 1110 4458 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a1bb44b892d5ed7c6d7271c4fb4c637c0) cvn H.B /ANN pdfmark end 1110 4458 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4582 a Fl(destructor)f(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 48 53 TeXDict begin 48 52 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.48) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.2)81 b(CC\002ts::BinT)-8 b(able)21 b(Class)g(Refer)o(ence)1366 b(48)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.2.1) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.2.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 726 a Fx(Class)25 b(Representing)e(Binary)p 0 0 1 TeXcolorrgb 1433 727 a SDict begin H.S end 1433 727 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1615 670 a SDict begin H.R end 1615 670 a 1615 726 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1615 726 a 0 TeXcolorgray 25 w Fx(Extensions.)35 b(Contains)24 b(columns)f(with)i(scalar)f(or)g(v)o(ector)515 826 y(ro)n(w)c(entries.)p 0 0 1 TeXcolorrgb 515 973 a SDict begin H.S end 515 973 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 817 916 a SDict begin H.R end 817 916 a 817 972 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 817 972 a 0 TeXcolorgray 25 w Fx(\(re\)implements)23 b(functions)g(prescribed)g (in)h(the)p 0 0 1 TeXcolorrgb 2296 973 a SDict begin H.S end 2296 973 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2478 916 a SDict begin H.R end 2478 916 a 2478 972 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2478 972 a 0 TeXcolorgray 26 w Fx(abstract)24 b(class.)39 b(The)24 b(imple-)515 1072 y(mentations)j(allo)n(w)h(the)f(calling)h(of)g(c\002tsio)g (specialized)g(routines)f(for)p 0 0 1 TeXcolorrgb 2651 1073 a SDict begin H.S end 2651 1073 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 2953 1016 a SDict begin H.R end 2953 1016 a 2953 1072 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 2953 1072 a 0 TeXcolorgray 29 w Fx(header)26 b(con-)515 1172 y(struction.)d(functions)18 b(particular)f(to)i(the)p 0 0 1 TeXcolorrgb 1722 1173 a SDict begin H.S end 1722 1173 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 2024 1115 a SDict begin H.R end 2024 1115 a 2024 1172 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 2024 1172 a 0 TeXcolorgray 20 w Fx(class)19 b(include)f(those)h(dealing)f(with)h(v)n(ariable)515 1271 y(width)h(columns)515 1418 y(Direct)f(instantiation)e(of)p 0 0 1 TeXcolorrgb 1260 1419 a SDict begin H.S end 1260 1419 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1562 1362 a SDict begin H.R end 1562 1362 a 1562 1418 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1562 1418 a 0 TeXcolorgray 20 w Fx(objects)18 b(is)i(disallo)n(wed:)k(the)o(y)18 b(are)g(created)g(by)h(e)o(xplicit)f(calls)515 1518 y(to)p 0 0 1 TeXcolorrgb 612 1519 a SDict begin H.S end 612 1519 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::addT)-7 b(able)p 0 0 1 TeXcolorrgb 1131 1462 a SDict begin H.R end 1131 1462 a 1131 1518 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) cvn H.B /ANN pdfmark end 1131 1518 a 0 TeXcolorgray Fx(\()33 b(...)61 b(\),)p 0 0 1 TeXcolorrgb 1401 1519 a SDict begin H.S end 1401 1519 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::read)p 0 0 1 TeXcolorrgb 1760 1462 a SDict begin H.R end 1760 1462 a 1760 1518 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) cvn H.B /ANN pdfmark end 1760 1518 a 0 TeXcolorgray Fx(\(...\))g(or)32 b(internally)f(by)h(one)g (of)g(the)p 0 0 1 TeXcolorrgb 2898 1519 a SDict begin H.S end 2898 1519 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3069 1462 a SDict begin H.R end 3069 1462 a 3069 1518 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3069 1518 a 0 TeXcolorgray 33 w Fx(ctors)g(on)515 1617 y(initialization.)24 b(F)o(or)c(addT)-7 b(able,)19 b(creation)g(of)h(BinT)-7 b(ables)20 b(is)h(the)f(def)o (ault.)515 1751 y SDict begin H.S end 515 1751 a 515 1751 a SDict begin 12 H.A end 515 1751 a 515 1751 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.2.2) cvn H.B /DEST pdfmark end 515 1751 a 0.25 TeXcolorgray 135 x Fo(24.2.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2089 a SDict begin H.S end 515 2089 a 0 TeXcolorgray 0 TeXcolorgray 515 2089 a SDict begin H.R end 515 2089 a 515 2089 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a8d97ec9581e1c46111ce933c608b489a) cvn H.B /DEST pdfmark end 515 2089 a 0 TeXcolorgray 515 2126 a SDict begin H.S end 515 2126 a 515 2126 a SDict begin 12 H.A end 515 2126 a 515 2126 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.2.2.1) cvn H.B /DEST pdfmark end 515 2126 a 0.25 TeXcolorgray 147 x Fo(24.2.2.1)75 b(CC\002ts::BinT)-5 b(ab)o(le::BinT)l(able)27 b(\()42 b(FITSBase)23 b Fp(\003)d Fk(p,)45 b Fo(const)22 b(String)g(&)g Fk(hduName)h(=)811 2372 y Fr(String\(""\))p Fk(,)35 b Fo(bool)19 b Fk(readFla)o(g)h(=)e Fr(false)p Fk(,)36 b Fo(const)20 b(std::vector)p Fu(<)g Fo(String)f Fu(>)f Fo(&)g Fk(ke)o(ys)g(=)811 2472 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)29 b Fo(int)18 b Fk(ver)o(sion)g(=)f Fr(1)34 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 2656 a Fx(reading)18 b(constructor)-5 b(.)515 2803 y(Construct)24 b(a)p 0 0 1 TeXcolorrgb 925 2804 a SDict begin H.S end 925 2804 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1227 2747 a SDict begin H.R end 1227 2747 a 1227 2803 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1227 2803 a 0 TeXcolorgray 26 w Fx(e)o(xtension)23 b(from)h(an)g(e)o (xtension)f(of)i(an)f(e)o(xisting)g(disk)h(\002le.)39 b(The)p 0 0 1 TeXcolorrgb 3197 2804 a SDict begin H.S end 3197 2804 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 3379 2747 a SDict begin H.R end 3379 2747 a 3379 2803 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 3379 2803 a 0 TeXcolorgray 515 2903 a Fx(is)25 b(speci\002ed)f(by)f(name)h(and)g(optional)e(v)o (ersion)h(number)g(within)h(the)g(\002le.)37 b(An)24 b(array)g(of)g(strings)515 3002 y(representing)i(columns)h(or)g(k)o(e)o (ys)h(indicates)g(which)f(data)h(are)g(to)g(be)g(read.)48 b(The)28 b(column)f(data)515 3102 y(are)e(only)f(read)h(if)g(readFlag)f (is)i(true.)40 b(Reading)24 b(on)h(construction)e(is)j(optimized,)f(so) g(it)h(is)g(more)515 3202 y(ef)n(\002cient)c(to)g(read)g(data)g(at)h (the)f(point)g(of)g(instantiation.)31 b(This)22 b(f)o(a)n(v)n(ours)g(a) h("resource)e(acquisition)515 3301 y(is)g(initialization")e(model)h(of) f(data)i(management.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3511 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3454 a SDict begin H.S end 515 3454 a 515 3454 a SDict begin 12 H.A end 515 3454 a 515 3454 a SDict begin [ /View [/XYZ H.V] /Dest (table.4) cvn H.B /DEST pdfmark end 515 3454 a 515 3557 2889 4 v 515 3557 V 515 3657 4 100 v 935 3627 a Ft(p)p 1005 3657 V 60 w Fx(Pointer)e(to)i(FITSBase)g (class,)g(an)f(internal)f(implementation)f(detail)p 3400 3657 V 515 3660 2889 4 v 515 3660 V 515 3760 4 100 v 658 3730 a Ft(hduName)p 1005 3760 V 59 w Fx(name)h(of)p 0 0 1 TeXcolorrgb 1327 3731 a SDict begin H.S end 1327 3731 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1630 3673 a SDict begin H.R end 1630 3673 a 1630 3730 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1630 3730 a 0 TeXcolorgray 20 w Fx(object)20 b(to)g(be)h(read.)p 3400 3760 4 100 v 515 3763 2889 4 v 515 3763 V 515 3862 4 100 v 671 3833 a Ft(r)m(eadFla)o(g)p 1005 3862 V 59 w Fx(\003ag)f(to)h(determine)d (whether)h(to)i(read)e(data)h(on)g(construction)p 3400 3862 V 515 3866 2889 4 v 515 3866 V 515 4165 4 299 v 837 3936 a Ft(k)o(e)n(ys)p 1005 4165 V 60 w Fx(\(optional\))g(a)j(list) h(of)e(k)o(e)o(yw)o(ords/columns)e(to)j(be)f(read.)32 b(The)22 b(implementation)1037 4035 y(will)c(determine)d(which)i(are)g (k)o(e)o(yw)o(ords.)22 b(If)17 b(none)f(are)h(speci\002ed,)g(the)g (construc-)1037 4135 y(tor)j(will)h(simply)f(read)f(the)h(header)p 3400 4165 V 515 4168 2889 4 v 515 4168 V 515 4367 4 200 v 733 4238 a Ft(ver)o(sion)p 1005 4367 V 60 w Fx(\(optional\))c(v)o (ersion)i(number)-5 b(.)23 b(If)18 b(not)g(speci\002ed,)g(will)i(read)e (the)g(\002rst)h(e)o(xtension)1037 4337 y(that)h(matches)g(hduName.)p 3400 4367 V 515 4371 2889 4 v 515 4371 V 0 TeXcolorgray 515 4600 a SDict begin H.S end 515 4600 a 0 TeXcolorgray 0 TeXcolorgray 515 4600 a SDict begin H.R end 515 4600 a 515 4600 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a7f144dbfdaa1a01331adf1bb83a9347a) cvn H.B /DEST pdfmark end 515 4600 a 0 TeXcolorgray 515 4638 a SDict begin H.S end 515 4638 a 515 4638 a SDict begin 12 H.A end 515 4638 a 515 4638 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.2.2.2) cvn H.B /DEST pdfmark end 515 4638 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 617 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 49 54 TeXDict begin 49 53 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.49) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.2)81 b(CC\002ts::BinT)-8 b(able)21 b(Class)g(Refer)o(ence)1366 b(49)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.2.2.2)75 b(CC\002ts::BinT)-5 b(ab)o(le::BinT)l(able)23 b(\()36 b(FITSBase)19 b Fp(\003)e Fk(p,)35 b Fo(const)19 b(String)g(&)f Fk(hduName)q(,)37 b Fo(int)19 b Fk(r)o(o)o(ws,)34 b Fo(const)811 623 y(std::vector)p Fu(<)20 b Fo(String)f Fu(>)e Fo(&)h Fk(columnName)i(=)e Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)31 b Fo(const)811 722 y(std::vector)p Fu(<)20 b Fo(String)f Fu(>)f Fo(&)g Fk(columnFmt)k(=)c Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)32 b Fo(const)811 822 y(std::vector)p Fu(<)21 b Fo(String)f Fu(>)e Fo(&)h Fk(columnUnit)j(=)d Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)34 b Fo(int)811 922 y Fk(ver)o(sion)18 b(=)f Fr(1)33 b Fo(\))72 b Fr([protected])p 0 TeXcolorgray 515 1106 a Fx(writing)19 b(constructor)515 1253 y(The)k(constructor)e (creates)i(a)h(v)n(alid)p 0 0 1 TeXcolorrgb 1568 1254 a SDict begin H.S end 1568 1254 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1748 1199 a SDict begin H.R end 1748 1199 a 1748 1253 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1748 1253 a 0 TeXcolorgray 23 w Fx(which)f(is)h(ready)f(for)p 0 0 1 TeXcolorrgb 2406 1254 a SDict begin H.S end 2406 1254 a 0 0 1 TeXcolorrgb -1 x Fx(Column::write)p 0 0 1 TeXcolorrgb 2891 1196 a SDict begin H.R end 2891 1196 a 2891 1253 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) cvn H.B /ANN pdfmark end 2891 1253 a 0 TeXcolorgray 23 w Fx(or)g(insertRo)n(ws)515 1352 y(operations.)29 b(The)21 b(disk)p 0 0 1 TeXcolorrgb 1225 1353 a SDict begin H.S end 1225 1353 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1396 1296 a SDict begin H.R end 1396 1296 a 1396 1352 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1396 1352 a 0 TeXcolorgray 22 w Fx(\002le)i(is)g(update)e(accordingly) -5 b(.)27 b(The)22 b(data)g(type)g(of)f(each)h(column)f(is)515 1452 y(determined)f(by)i(the)g(columnFmt)f(ar)o(gument)f(\(TFORM)i(k)o (e)o(yw)o(ords\).)30 b(See)22 b(c\002tsio)h(documenta-)515 1552 y(tion)d(for)f(acceptable)g(v)n(alues.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1762 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1704 a SDict begin H.S end 515 1704 a 515 1704 a SDict begin 12 H.A end 515 1704 a 515 1704 a SDict begin [ /View [/XYZ H.V] /Dest (table.5) cvn H.B /DEST pdfmark end 515 1704 a 515 1807 2889 4 v 515 1807 V 515 1907 4 100 v 935 1877 a Ft(p)p 1005 1907 V 60 w Fx(Pointer)g(to)i(FITSBase)g(class,)g(an)f(internal)f (implementation)f(detail)p 3400 1907 V 515 1910 2889 4 v 515 1910 V 515 2010 4 100 v 658 1980 a Ft(hduName)p 1005 2010 V 59 w Fx(name)h(of)p 0 0 1 TeXcolorrgb 1327 1981 a SDict begin H.S end 1327 1981 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)-7 b(able)p 0 0 1 TeXcolorrgb 1630 1924 a SDict begin H.R end 1630 1924 a 1630 1980 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1630 1980 a 0 TeXcolorgray 20 w Fx(object)20 b(to)g(be)h (written)p 3400 2010 4 100 v 515 2013 2889 4 v 515 2013 V 515 2113 4 100 v 819 2083 a Ft(r)l(ows)p 1005 2113 V 61 w Fx(number)d(of)i(ro)n(ws)g(in)h(the)f(table)g(\(NAXIS2\))p 3400 2113 V 515 2116 2889 4 v 515 2116 V 515 2315 4 200 v 704 2186 a Ft(column-)783 2285 y(Name)p 1005 2315 V 1037 2186 a Fx(array)f(of)h(column)f(names)h(for)f(columns)g(to)i(be)f (constructed.)p 3400 2315 V 515 2319 2889 4 v 515 2319 V 515 2418 4 100 v 598 2388 a Ft(columnFmt)p 1005 2418 V 59 w Fx(array)f(of)h(column)f(formats)g(for)h(columns)f(to)h(be)g (constructed.)p 3400 2418 V 515 2422 2889 4 v 515 2422 V 515 2521 4 100 v 584 2491 a Ft(columnUnit)p 1005 2521 V 59 w Fx(\(optional\))e(array)h(of)h(units)g(for)g(data)g(in)g (columns.)p 3400 2521 V 515 2524 2889 4 v 515 2524 V 515 2624 4 100 v 733 2594 a Ft(ver)o(sion)p 1005 2624 V 60 w Fx(\(optional\))e(v)o(ersion)h(number)f(for)p 0 0 1 TeXcolorrgb 2041 2595 a SDict begin H.S end 2041 2595 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2221 2540 a SDict begin H.R end 2221 2540 a 2221 2594 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2221 2594 a 0 TeXcolorgray Fx(.)p 3400 2624 4 100 v 515 2627 2889 4 v 515 2627 V 515 2857 a(The)j(dimensions)e (of)i(columnT)-7 b(ype,)19 b(columnName)g(and)i(columnFmt)e(must)i (match,)g(b)n(ut)g(this)h(is)515 2957 y(not)e(enforced.)515 3079 y SDict begin H.S end 515 3079 a 515 3079 a SDict begin 12 H.A end 515 3079 a 515 3079 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.2.3) cvn H.B /DEST pdfmark end 515 3079 a 0.25 TeXcolorgray 146 x Fo(24.2.3)75 b(Member)18 b(Function)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3428 a SDict begin H.S end 515 3428 a 0 TeXcolorgray 0 TeXcolorgray 515 3428 a SDict begin H.R end 515 3428 a 515 3428 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a60e89ab762910b76155da983554d433d) cvn H.B /DEST pdfmark end 515 3428 a 0 TeXcolorgray 515 3465 a SDict begin H.S end 515 3465 a 515 3465 a SDict begin 12 H.A end 515 3465 a 515 3465 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.2.3.1) cvn H.B /DEST pdfmark end 515 3465 a 0.25 TeXcolorgray 147 x Fo(24.2.3.1)75 b(v)n(oid)19 b(CC\002ts::BinT)-5 b(ab)o(le::ad)o(d)q(Colu)q(mn)24 b(\()36 b Fy(V)-8 b(alueT)i(ype)18 b Fk(type)q(,)37 b Fo(const)19 b(String)g(&)f Fk(columnName)q(,)811 3712 y Fo(long)g Fk(repeatWidth,)37 b Fo(const)18 b(String)g(&)g Fk(colUnit)g(=)f Fr(String\(""\))p Fk(,)33 b Fo(long)18 b Fk(decimals)h(=)e Fr(0)p Fk(,)34 b Fo(siz)q(e)p 3327 3712 23 4 v 26 w(t)811 3812 y Fk(columnNumber)20 b(=)d Fr(0)34 b Fo(\))71 b Fr([virtual])p 0 TeXcolorgray 515 3996 a Fx(add)19 b(a)i(ne)n(w)f(column)f(to)h(an)g(e)o(xisting)g(table) p 0 0 1 TeXcolorrgb 1789 3997 a SDict begin H.S end 1789 3997 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1969 3942 a SDict begin H.R end 1969 3942 a 1969 3996 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1969 3996 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4206 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4148 a SDict begin H.S end 515 4148 a 515 4148 a SDict begin 12 H.A end 515 4148 a 515 4148 a SDict begin [ /View [/XYZ H.V] /Dest (table.6) cvn H.B /DEST pdfmark end 515 4148 a 515 4251 2889 4 v 515 4251 V 515 4351 4 100 v 838 4321 a Ft(type)p 1005 4351 V 60 w Fx(The)g(data)g(type)g(of)f(the)i(column)d(to)j(be)f (added)p 3400 4351 V 515 4354 2889 4 v 515 4354 V 515 4554 4 200 v 704 4424 a Ft(column-)783 4524 y(Name)p 1005 4554 V 1037 4424 a Fx(The)g(name)f(of)h(the)g(column)f(to)i(be)f (added)p 3400 4554 V 515 4557 2889 4 v 515 4557 V 515 4856 4 299 v 573 4627 a Ft(r)m(epeatW)-5 b(idth)p 1005 4856 V 60 w Fx(for)21 b(a)h(string)f(v)n(alued,)f(this)j(is)f(the)g (width)f(of)g(a)h(string.)29 b(F)o(or)21 b(a)h(numeric)e(column)1037 4726 y(it)28 b(supplies)f(the)g(v)o(ector)f(length)g(of)h(the)g(ro)n (ws.)46 b(It)28 b(is)g(ignored)d(for)i(ascii)h(table)1037 4826 y(numeric)19 b(data.)p 3400 4856 V 515 4859 2889 4 v 515 4859 V 515 4959 4 100 v 727 4929 a Ft(colUnit)p 1005 4959 V 60 w Fx(an)h(optional)f(\002eld)h(specifying)f(the)h(units) g(of)g(the)g(data)h(\(TUNITn\))p 3400 4959 V 515 4962 2889 4 v 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 50 55 TeXDict begin 50 54 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.50) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(50)p 515 236 2865 4 v 0 TeXcolorgray 515 523 2889 4 v 515 722 4 200 v 681 593 a Ft(decimals)p 1005 722 V 60 w Fx(optional)21 b(parameter)f (specifying)h(the)h(number)e(of)i(decimals)g(for)g(an)g(ascii)h(nu-) 1037 692 y(meric)d(column)p 3400 722 V 515 726 2889 4 v 515 726 V 515 1224 4 499 v 704 795 a Ft(column-)709 895 y(Number)p 1005 1224 V 1037 795 a Fx(optional)30 b(parameter)g(specifying)g(column)g(number)g(to)i(be)f(created.)59 b(If)31 b(not)1037 895 y(speci\002ed)c(the)g(column)e(is)j(added)e(to)h (the)g(end.)45 b(If)27 b(speci\002ed,)h(the)f(column)f(is)1037 995 y(inserted)18 b(and)g(the)h(columns)f(already)g(read)g(are)h (reinde)o(x)o(ed.)j(This)d(parameter)e(is)1037 1094 y(pro)o(vided)i(as) j(a)g(con)m(v)o(enience)c(to)k(support)e(e)o(xisting)h(code)g(rather)f (than)h(recom-)1037 1194 y(mended.)p 3400 1224 V 515 1227 2889 4 v 515 1227 V 515 1457 a(Reimplemented)d(from)p 0 0 1 TeXcolorrgb 1243 1458 a SDict begin H.S end 1243 1458 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 1401 a SDict begin H.R end 1797 1401 a 1797 1457 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) cvn H.B /ANN pdfmark end 1797 1457 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1604 a SDict begin H.S end 515 1604 a 0 TeXcolorgray 0 TeXcolorgray 515 1604 a SDict begin H.R end 515 1604 a 515 1604 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1BinTable_a90cba1f7ee83d3c9f4471e0a2f317391) cvn H.B /DEST pdfmark end 515 1604 a 0 TeXcolorgray 515 1641 a SDict begin H.S end 515 1641 a 515 1641 a SDict begin 12 H.A end 515 1641 a 515 1641 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.2.3.2) cvn H.B /DEST pdfmark end 515 1641 a 0.25 TeXcolorgray 147 x Fo(24.2.3.2)75 b(v)n(oid)19 b(CC\002ts::BinT)-5 b(ab)o(le::readData)23 b(\()36 b(bool)19 b Fk(readFla)o(g)g(=)e Fr(false)p Fk(,)34 b Fo(const)19 b(std::vector)p Fu(<)g Fo(String)811 1888 y Fu(>)d Fo(&)i Fk(ke)o(ys)f(=)g Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))29 b Fo(\))72 b Fr([)o(virtual])p 0 TeXcolorgray 515 2072 a Fx(read)19 b(columns)g(and)h(k)o(e)o(ys)g (speci\002ed)g(in)g(the)g(input)g(array)-5 b(.)515 2219 y(See)p 0 0 1 TeXcolorrgb 655 2220 a SDict begin H.S end 655 2220 a 0 0 1 TeXcolorrgb -1 x Fx(T)e(able)p 0 0 1 TeXcolorrgb 838 2162 a SDict begin H.R end 838 2162 a 838 2219 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 838 2219 a 0 TeXcolorgray 21 w Fx(class)21 b(documentation)c(for)i(further)g(details.)515 2366 y(Implements)p 0 0 1 TeXcolorrgb 928 2367 a SDict begin H.S end 928 2367 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1481 2309 a SDict begin H.R end 1481 2309 a 1481 2366 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) cvn H.B /ANN pdfmark end 1481 2366 a 0 TeXcolorgray Fx(.)515 2513 y(The)h(documentation)d(for)i(this) i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 2726 a(\225)p 0 TeXcolorgray 41 w(BinT)-7 b(able.h)p 0 TeXcolorgray 652 2834 a(\225)p 0 TeXcolorgray 41 w(BinT)g(able.cxx)p 0 TeXcolorgray 515 3047 a SDict begin H.S end 515 3047 a 0 TeXcolorgray 0 TeXcolorgray 515 3047 a SDict begin H.R end 515 3047 a 515 3047 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column) cvn H.B /DEST pdfmark end 515 3047 a 0 TeXcolorgray 515 3168 a SDict begin H.S end 515 3168 a 515 3168 a SDict begin 12 H.A end 515 3168 a 515 3168 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.3) cvn H.B /DEST pdfmark end 515 3168 a 0.25 TeXcolorgray 164 x Fq(24.3)89 b(CC\002ts::Column)23 b(Class)e(Ref)o (erence)p 0 TeXcolorgray 515 3535 a Fx(Abstract)f(base)g(class)h(for)p 0 0 1 TeXcolorrgb 1285 3536 a SDict begin H.S end 1285 3536 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1552 3479 a SDict begin H.R end 1552 3479 a 1552 3535 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1552 3535 a 0 TeXcolorgray 21 w Fx(objects.)515 3682 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 3829 y Fx(Inherited)18 b(by)i(CC\002ts::ColumnData)p Fu(<)g Fx(T)g Fu(>)p Fx(,)h(and)e(CC\002ts::ColumnV)-9 b(ectorData)p Fu(<)19 b Fx(T)h Fu(>)p Fx(.)p 0.25 TeXcolorgray 515 4097 a Fo(Classes)p 0 TeXcolorgray 515 4154 a SDict begin H.S end 515 4154 a 515 4154 a SDict begin 12 H.A end 515 4154 a 515 4154 a SDict begin [ /View [/XYZ H.V] /Dest (section*.9) cvn H.B /DEST pdfmark end 515 4154 a 0 TeXcolorgray 652 4286 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4287 a SDict begin H.S end 904 4287 a 0 0 1 TeXcolorrgb -1 x Fx(Insuf)n(\002cientElements)p 0 0 1 TeXcolorrgb 1590 4229 a SDict begin H.R end 1590 4229 a 1590 4286 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InsufficientElements) cvn H.B /ANN pdfmark end 1590 4286 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4410 a Fl(Exception)g(thr)m(own)f(if) f(the)h(data)h(supplied)g(for)e(a)i(write)e(oper)o(ation)i(is)e(less)h (than)h(declar)m(ed.)p 0 TeXcolorgray 652 4518 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4536 a SDict begin H.S end 904 4536 a 0 0 1 TeXcolorrgb -18 x Fx(In)m(v)n(alidDataT)-7 b(ype)p 0 0 1 TeXcolorrgb 1455 4462 a SDict begin H.R end 1455 4462 a 1455 4518 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidDataType) cvn H.B /ANN pdfmark end 1455 4518 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4643 a Fl(Exception)20 b(thr)m(own)f(for)g(in)m(valid)g(data)h (type)f(inputs.)p 0 TeXcolorgray 652 4751 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4752 a SDict begin H.S end 904 4752 a 0 0 1 TeXcolorrgb -1 x Fx(In)m(v)n(alidNumberOfRo)n(ws)p 0 0 1 TeXcolorrgb 1681 4694 a SDict begin H.R end 1681 4694 a 1681 4751 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidNumberOfRows) cvn H.B /ANN pdfmark end 1681 4751 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4875 a Fl(Exception)d(thr)m(own)f(if)g(user)g(enter)o(s)h(a)f (non-positive)h(number)h(for)e(the)g(number)h(of)f(r)m(ows)g(to)g (write)o(.)p 0 TeXcolorgray 652 4983 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4984 a SDict begin H.S end 904 4984 a 0 0 1 TeXcolorrgb -1 x Fx(In)m(v)n(alidRo)n(wNumber)p 0 0 1 TeXcolorrgb 1561 4927 a SDict begin H.R end 1561 4927 a 1561 4983 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidRowNumber) cvn H.B /ANN pdfmark end 1561 4983 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)g(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 51 56 TeXDict begin 51 55 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.51) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(51)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(Exception)20 b(thr)m(own)f(on)g(attempting)h(to)e(r)m(ead)i(a)f(r)m (ow)g(number)h(be)n(yond)g(the)f(end)h(of)f(a)g(table)o(.)p 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 632 a SDict begin H.S end 904 632 a 0 0 1 TeXcolorrgb -1 x Fx(In)m(v)n(alidRo)n(wP)o(arameter)p 0 0 1 TeXcolorrgb 1624 575 a SDict begin H.R end 1624 575 a 1624 631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidRowParameter) cvn H.B /ANN pdfmark end 1624 631 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 756 a Fl(Exception)h(thr)m(own)f(on)g(incorr)m(ect)h(r)m(ow)f(writing)f (r)m(equest.)p 0 TeXcolorgray 652 863 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 864 a SDict begin H.S end 904 864 a 0 0 1 TeXcolorrgb -1 x Fx(NoNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1343 807 a SDict begin H.R end 1343 807 a 1343 863 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1NoNullValue) cvn H.B /ANN pdfmark end 1343 863 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 988 a Fl(Exception)28 b(thr)m(own)f(if)g(a)g(null)g(value)h(is)e(speci\002ed)i(without)f (support)i(fr)m(om)d(e)o(xisting)h(column)840 1079 y(header)-8 b(.)p 0 TeXcolorgray 652 1187 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 1205 a SDict begin H.S end 904 1205 a 0 0 1 TeXcolorrgb -18 x Fx(RangeError)p 0 0 1 TeXcolorrgb 1292 1133 a SDict begin H.R end 1292 1133 a 1292 1187 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1RangeError) cvn H.B /ANN pdfmark end 1292 1187 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 1312 a Fl(e)o(xception)20 b(to)f(be)g(thr)m(own)g(for)g(inputs)g(that)g(cause)h(r)o(ang)o(e)g (err)m(or)o(s)g(in)e(column)i(r)m(ead)g(oper)o(ations.)p 0 TeXcolorgray 652 1420 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 1438 a SDict begin H.S end 904 1438 a 0 0 1 TeXcolorrgb -18 x Fx(WrongColumnT)-7 b(ype)p 0 0 1 TeXcolorrgb 1567 1363 a SDict begin H.R end 1567 1363 a 1567 1420 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1WrongColumnType) cvn H.B /ANN pdfmark end 1567 1420 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 1544 a Fl(Exception)20 b(thr)m(own)f(on)g(attempting)h(to)e(access)i(a)f(scalar)h(column)f(as) g(vector)h(data.)p 0.25 TeXcolorgray 515 1812 a Fo(Pub)o(lic)e(Member)g (Functions)p 0 TeXcolorgray 515 1869 a SDict begin H.S end 515 1869 a 515 1869 a SDict begin 12 H.A end 515 1869 a 515 1869 a SDict begin [ /View [/XYZ H.V] /Dest (section*.10) cvn H.B /DEST pdfmark end 515 1869 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2001 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2002 a SDict begin H.S end 722 2002 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 990 1945 a SDict begin H.R end 990 1945 a 990 2001 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a01cd84a7155888aadc568231f908bd5e) cvn H.B /ANN pdfmark end 990 2001 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1234 2002 a SDict begin H.S end 1234 2002 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1502 1945 a SDict begin H.R end 1502 1945 a 1502 2001 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1502 2001 a 0 TeXcolorgray 21 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 2126 a Fl(copy)i(constructor)-8 b(,)20 b(used)f(in)g(copying)h(Columns)g(to)f(standar)m(d)h(libr)o(ary)f (container)o(s.)p 0 TeXcolorgray 0 TeXcolorgray 652 2234 a Fx(\225)p 0 TeXcolorgray 722 2234 a SDict begin H.S end 722 2234 a 0 TeXcolorgray 0 TeXcolorgray 722 2234 a SDict begin H.R end 722 2234 a 722 2234 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_afcd02b475ed7c08c391bc5917a9b3f06) cvn H.B /DEST pdfmark end 722 2234 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 2235 a SDict begin H.S end 981 2235 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(Column)p 0 0 1 TeXcolorrgb 1313 2178 a SDict begin H.R end 1313 2178 a 1313 2234 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_afcd02b475ed7c08c391bc5917a9b3f06) cvn H.B /ANN pdfmark end 1313 2234 a 0 TeXcolorgray 20 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2358 a Fl(destructor)-8 b(.)p 0 TeXcolorgray 652 2466 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(T)c Fg(>)722 2566 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 2567 a SDict begin H.S end 889 2567 a 0 0 1 TeXcolorrgb -1 x Fx(addNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1346 2510 a SDict begin H.R end 1346 2510 a 1346 2566 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a29aba21352578c3bdb94cee15e5561f0) cvn H.B /ANN pdfmark end 1346 2566 a 0 TeXcolorgray 20 w Fx(\(T)20 b(nullV)-9 b(al\))p 0 TeXcolorgray 0 TeXcolorgray 840 2690 a Fl(Set)19 b(the)g(TNULLn)f(k)o(e)n(ywor)m(d)i(for)f(the)g(column.)p 0 TeXcolorgray 652 2798 a Fx(\225)p 0 TeXcolorgray 41 w(const)h(String)g(&)p 0 0 1 TeXcolorrgb 1227 2799 a SDict begin H.S end 1227 2799 a 0 0 1 TeXcolorrgb -1 x Fx(dimen)p 0 0 1 TeXcolorrgb 1435 2742 a SDict begin H.R end 1435 2742 a 1435 2798 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a8409427a876646e0f1846f55146872bc) cvn H.B /ANN pdfmark end 1435 2798 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2923 a Fl(r)m(eturn)g(TDIMn)f(k)o(e)n(ywor)m(d)p 0 TeXcolorgray 652 3031 a Fx(\225)p 0 TeXcolorgray 41 w(const)h(String)g(&)p 0 0 1 TeXcolorrgb 1227 3049 a SDict begin H.S end 1227 3049 a 0 0 1 TeXcolorrgb -18 x Fx(display)p 0 0 1 TeXcolorrgb 1467 2975 a SDict begin H.R end 1467 2975 a 1467 3031 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_aa21fb01249bbb97f4a3149e704634f61) cvn H.B /ANN pdfmark end 1467 3031 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3155 a Fl(r)m(eturn)g(TDISPn)f(k)o(e)n(ywor)m(d)p 0 TeXcolorgray 652 3263 a Fx(\225)p 0 TeXcolorgray 41 w(const)h(String)g(&)p 0 0 1 TeXcolorrgb 1227 3264 a SDict begin H.S end 1227 3264 a 0 0 1 TeXcolorrgb -1 x Fx(format)p 0 0 1 TeXcolorrgb 1449 3207 a SDict begin H.R end 1449 3207 a 1449 3263 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a9e95e761de30327378669d11295de1cc) cvn H.B /ANN pdfmark end 1449 3263 a 0 TeXcolorgray 20 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3388 a Fl(r)m(eturn)f(TFORMn)e(k)o(e)n(ywor)m(d)p 0 TeXcolorgray 652 3496 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)j(T)c Fg(>)722 3595 y Fx(bool)p 0 0 1 TeXcolorrgb 891 3613 a SDict begin H.S end 891 3613 a 0 0 1 TeXcolorrgb -18 x Fx(getNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1329 3539 a SDict begin H.R end 1329 3539 a 1329 3595 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a35fb61a8737112aa1d90e7081d0fb65c) cvn H.B /ANN pdfmark end 1329 3595 a 0 TeXcolorgray 21 w Fx(\(T)20 b Fp(\003)p Fx(nullV)-9 b(al\))18 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3720 a Fl(Get)h(the)g(value)g(of)g (the)g(TNULLn)f(k)o(e)n(ywor)m(d)i(for)f(the)g(column.)p 0 TeXcolorgray 0 TeXcolorgray 652 3828 a Fx(\225)p 0 TeXcolorgray 722 3828 a SDict begin H.S end 722 3828 a 0 TeXcolorgray 0 TeXcolorgray 722 3828 a SDict begin H.R end 722 3828 a 722 3828 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ab5c2c865112b6610e89bb0829e35c6dd) cvn H.B /DEST pdfmark end 722 3828 a 0 TeXcolorgray 21 w Fx(int)p 0 0 1 TeXcolorrgb 851 3829 a SDict begin H.S end 851 3829 a 0 0 1 TeXcolorrgb -1 x Fx(inde)o(x)p 0 0 1 TeXcolorrgb 1035 3772 a SDict begin H.R end 1035 3772 a 1035 3828 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ab5c2c865112b6610e89bb0829e35c6dd) cvn H.B /ANN pdfmark end 1035 3828 a 0 TeXcolorgray 20 w Fx(\(\))i(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3952 a Fl(g)o(et)f(the)p 0 0 1 TeXcolorrgb 1060 3953 a SDict begin H.S end 1060 3953 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1296 3902 a SDict begin H.R end 1296 3902 a 1296 3952 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1296 3952 a 0 TeXcolorgray 19 w Fl(inde)o(x)f(\(the)g(n)g(in)g(TTYPEn)e (etc\).)p 0 TeXcolorgray 0 TeXcolorgray 652 4060 a Fx(\225)p 0 TeXcolorgray 722 4060 a SDict begin H.S end 722 4060 a 0 TeXcolorgray 0 TeXcolorgray 722 4060 a SDict begin H.R end 722 4060 a 722 4060 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a3ab461fa13db155ab8d5fd649cf0e9ba) cvn H.B /DEST pdfmark end 722 4060 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 4061 a SDict begin H.S end 911 4061 a 0 0 1 TeXcolorrgb -1 x Fx(isRead)p 0 0 1 TeXcolorrgb 1137 4004 a SDict begin H.R end 1137 4004 a 1137 4060 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a3ab461fa13db155ab8d5fd649cf0e9ba) cvn H.B /ANN pdfmark end 1137 4060 a 0 TeXcolorgray 21 w Fx(\(\))j(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4185 a Fl(\003a)o(g)g(set)f(to)g(true)g(if)f(the)h (entir)m(e)g(column)h(data)g(has)f(been)h(r)m(ead)g(fr)m(om)e(disk)p 0 TeXcolorgray 0 TeXcolorgray 652 4293 a Fx(\225)p 0 TeXcolorgray 722 4293 a SDict begin H.S end 722 4293 a 0 TeXcolorgray 0 TeXcolorgray 722 4293 a SDict begin H.R end 722 4293 a 722 4293 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a09634d63a37f46d871ddee6ffa456fe7) cvn H.B /DEST pdfmark end 722 4293 a 0 TeXcolorgray 21 w Fx(const)i(String)g(&)p 0 0 1 TeXcolorrgb 1248 4294 a SDict begin H.S end 1248 4294 a 0 0 1 TeXcolorrgb -1 x Fx(name)p 0 0 1 TeXcolorrgb 1428 4255 a SDict begin H.R end 1428 4255 a 1428 4293 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a09634d63a37f46d871ddee6ffa456fe7) cvn H.B /ANN pdfmark end 1428 4293 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4417 a Fl(r)m(eturn)g(name)g(of)p 0 0 1 TeXcolorrgb 1300 4418 a SDict begin H.S end 1300 4418 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1537 4367 a SDict begin H.R end 1537 4367 a 1537 4417 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1537 4417 a 0 TeXcolorgray 19 w Fl(\(TTYPEn)d(k)o(e)n (ywor)m(d\))p 0 TeXcolorgray 0 TeXcolorgray 652 4525 a Fx(\225)p 0 TeXcolorgray 722 4525 a SDict begin H.S end 722 4525 a 0 TeXcolorgray 0 TeXcolorgray 722 4525 a SDict begin H.R end 722 4525 a 722 4525 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a53c239a7eda28388ac278de7f5b6f59f) cvn H.B /DEST pdfmark end 722 4525 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4526 a SDict begin H.S end 743 4526 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 925 4469 a SDict begin H.R end 925 4469 a 925 4525 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 925 4525 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1008 4543 a SDict begin H.S end 1008 4543 a 0 0 1 TeXcolorrgb -18 x Fx(parent)p 0 0 1 TeXcolorrgb 1216 4478 a SDict begin H.R end 1216 4478 a 1216 4525 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a53c239a7eda28388ac278de7f5b6f59f) cvn H.B /ANN pdfmark end 1216 4525 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4650 a Fl(r)m(eturn)g(a)f(pointer)h(to)f(the)p 0 0 1 TeXcolorrgb 1520 4651 a SDict begin H.S end 1520 4651 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1684 4599 a SDict begin H.R end 1684 4599 a 1684 4650 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1684 4650 a 0 TeXcolorgray 19 w Fl(whic)o(h)19 b(owns)g(this)p 0 0 1 TeXcolorrgb 2198 4651 a SDict begin H.S end 2198 4651 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 2434 4599 a SDict begin H.R end 2434 4599 a 2434 4650 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2434 4650 a 0 TeXcolorgray 0 TeXcolorgray 652 4758 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 4857 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 4858 a SDict begin H.S end 889 4858 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 4801 a SDict begin H.R end 1032 4801 a 1032 4857 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ac6720082cfafae0e48779c82e809e4a9) cvn H.B /ANN pdfmark end 1032 4857 a 0 TeXcolorgray 21 w Fx(\(std::v)o(ector)p Fu(<)h Fx(S)j Fu(>)f Fx(&v)n(als,)g(long)f (\002rst,)i(long)e(last\))p 0 TeXcolorgray 0 TeXcolorgray 840 4982 a Fl(Retrie)o(ve)g(data)g(fr)m(om)g(a)g(scalar)g(column)h (into)f(a)g(std::vector)-8 b(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 52 57 TeXDict begin 52 56 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.52) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(52)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 623 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 624 a SDict begin H.S end 889 624 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 566 a SDict begin H.R end 1032 566 a 1032 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a957053fb51a8024fe46bf0b3dfdcaa1e) cvn H.B /ANN pdfmark end 1032 623 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&v)n(als,)e(long)h (\002rst,)g(long)g(last\))p 0 TeXcolorgray 0 TeXcolorgray 840 747 a Fl(Retrie)o(ve)f(data)g(fr)m(om)g(a)g(scalar)g(column)h(into) f(a)g(std::valarr)o(ay)l(.)p 0 TeXcolorgray 652 855 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 955 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 956 a SDict begin H.S end 889 956 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 898 a SDict begin H.R end 1032 898 a 1032 955 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_af730bdf4681626ec457ba9d8286e3d50) cvn H.B /ANN pdfmark end 1032 955 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&v)n(als,)e(long)h (ro)n(ws\))p 0 TeXcolorgray 0 TeXcolorgray 840 1079 a Fl(r)m(eturn)g(a)f(single)g(r)m(ow)g(of)g(a)g(vector)g(column)h(into)f (a)g(std::valarr)o(ay)p 0 TeXcolorgray 652 1187 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1287 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1288 a SDict begin H.S end 889 1288 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 1231 a SDict begin H.R end 1032 1231 a 1032 1287 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a7fd3388e536a354a54ee110f41e0c1f5) cvn H.B /ANN pdfmark end 1032 1287 a 0 TeXcolorgray 21 w Fx(\(std::v)o(ector)p Fu(<)h Fx(S)j Fu(>)f Fx(&v)n(als,)g(long)f (\002rst,)i(long)e(last,)i(S)g Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 1411 a Fl(Retrie)o(ve)29 b(data)h(fr)m(om)f(a)g(scalar)h(column)f(into)h(a)f(std::vector)p Fe(>)p Fl(,)j(applying)e(nullV)-8 b(alue)29 b(when)840 1503 y(r)m(ele)o(vant.)p 0 TeXcolorgray 652 1611 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 1710 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1711 a SDict begin H.S end 889 1711 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 1654 a SDict begin H.R end 1032 1654 a 1032 1710 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ad9ce91e8e87c9a3b88b94ddfc9d42fd8) cvn H.B /ANN pdfmark end 1032 1710 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&v)n(als,)e(long)h(\002rst,)g(long)g(last,)h(S) g Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 1835 a Fl(Retrie)o(ve)28 b(data)i(fr)m(om)e(a)g(scalar)h(column)g (into)g(a)g(std::valarr)o(ay)l(,)i(applying)f(nullV)-8 b(alue)28 b(when)840 1926 y(r)m(ele)o(vant.)p 0 TeXcolorgray 0 TeXcolorgray 652 2034 a Fx(\225)p 0 TeXcolorgray 722 2034 a SDict begin H.S end 722 2034 a 0 TeXcolorgray 0 TeXcolorgray 722 2034 a SDict begin H.R end 722 2034 a 722 2034 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a6fe330555d7926430bd4fb72af3df248) cvn H.B /DEST pdfmark end 722 2034 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 2134 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 2135 a SDict begin H.S end 889 2135 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 2077 a SDict begin H.R end 1032 2077 a 1032 2134 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a6fe330555d7926430bd4fb72af3df248) cvn H.B /ANN pdfmark end 1032 2134 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&v)n(als,)e(long)h (ro)n(ws,)g(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2258 a Fl(r)m(eturn)20 b(a)f(single)g(r)m(ow)g(of)g (a)g(vector)g(column)h(into)f(a)g(std::valarr)o(ay)l(,)g(setting)g (unde\002ned)i(values)p 0 TeXcolorgray 652 2366 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)g(S)c Fg(>)722 2466 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 2484 a SDict begin H.S end 884 2484 a 0 0 1 TeXcolorrgb -18 x Fx(readArrays)p 0 0 1 TeXcolorrgb 1253 2409 a SDict begin H.R end 1253 2409 a 1253 2466 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a5b6d04384ee5608b7bf6f86e651b5a02) cvn H.B /ANN pdfmark end 1253 2466 a 0 TeXcolorgray 16 w Fx(\(std::v)o(ector)p Fu(<)d Fx(std::v)n(alarray)p Fu(<)f Fx(S)j Fu(>)g(>)f Fx(&v)n(als,)i(long)d(\002rst,)j(long)e(last\))p 0 TeXcolorgray 0 TeXcolorgray 840 2590 a Fl(r)m(eturn)20 b(a)f(set)g(of)g(r)m(ows)f (of)h(a)g(vector)h(column)f(into)g(a)g(vector)h(of)e(valarr)o(ays)p 0 TeXcolorgray 652 2698 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)j(S)c Fg(>)722 2798 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 891 2816 a SDict begin H.S end 891 2816 a 0 0 1 TeXcolorrgb -18 x Fx(readArrays)p 0 0 1 TeXcolorrgb 1260 2742 a SDict begin H.R end 1260 2742 a 1260 2798 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a01773423bbd768e4fb22d43aa884da19) cvn H.B /ANN pdfmark end 1260 2798 a 0 TeXcolorgray 22 w Fx(\(std::v)o(ector)p Fu(<)j Fx(std::v)n(alarray)p Fu(<)g Fx(S)j Fu(>)f(>)g Fx(&v)n(als,)g(long)g(\002rst,)h(long)e(last,) 722 2897 y(S)g Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3022 a Fl(r)m(eturn)20 b(a)f(set)g(of)g(r)m(ows)f (of)h(a)g(vector)h(column)f(into)g(a)g(container)-8 b(,)20 b(setting)f(unde\002ned)i(values)p 0 TeXcolorgray 652 3130 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)f(v)n(oid)p 0 0 1 TeXcolorrgb 1127 3131 a SDict begin H.S end 1127 3131 a 0 0 1 TeXcolorrgb -1 x Fx(readData)p 0 0 1 TeXcolorrgb 1426 3074 a SDict begin H.R end 1426 3074 a 1426 3130 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ab33449dbc7dd32f10d493e2b5470b739) cvn H.B /ANN pdfmark end 1426 3130 a 0 TeXcolorgray 21 w Fx(\(long)f (\002rstRo)n(w)-5 b(,)20 b(long)f(nelements,)g(long)h (\002rstElem=1\)=0)p 0 TeXcolorgray 0 TeXcolorgray 840 3254 a Fl(Read)g(\(or)f(r)m(er)m(ead\))h(data)f(fr)m(om)g(the)g(disk)g (into)g(the)p 0 0 1 TeXcolorrgb 2162 3255 a SDict begin H.S end 2162 3255 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 2398 3204 a SDict begin H.R end 2398 3204 a 2398 3254 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2398 3254 a 0 TeXcolorgray 19 w Fl(object')m(s)g(internal)h(arr)o(ays.)p 0 TeXcolorgray 0 TeXcolorgray 652 3362 a Fx(\225)p 0 TeXcolorgray 722 3362 a SDict begin H.S end 722 3362 a 0 TeXcolorgray 0 TeXcolorgray 722 3362 a SDict begin H.R end 722 3362 a 722 3362 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a922e6694d82092fc487c406b74287ea0) cvn H.B /DEST pdfmark end 722 3362 a 0 TeXcolorgray 21 w Fx(size_t)p 0 0 1 TeXcolorrgb 957 3380 a SDict begin H.S end 957 3380 a 0 0 1 TeXcolorrgb -18 x Fx(repeat)p 0 0 1 TeXcolorrgb 1160 3315 a SDict begin H.R end 1160 3315 a 1160 3362 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a922e6694d82092fc487c406b74287ea0) cvn H.B /ANN pdfmark end 1160 3362 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3487 a Fl(g)o(et)g(the)f(r)m(epeat)g(count)h(for)f(the)g(r)m(ows)p 0 TeXcolorgray 652 3595 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 3596 a SDict begin H.S end 889 3596 a 0 0 1 TeXcolorrgb -1 x Fx(resetRead)p 0 0 1 TeXcolorrgb 1216 3539 a SDict begin H.R end 1216 3539 a 1216 3595 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a3529fff681af7e826b31cb366dae9afa) cvn H.B /ANN pdfmark end 1216 3595 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3719 a Fl(r)m(eset)h(the)f(Column')m(s)g(isRead)g(\003a)o(g)h(to)f(false)p 0 TeXcolorgray 652 3827 a Fx(\225)p 0 TeXcolorgray 41 w(int)p 0 0 1 TeXcolorrgb 831 3828 a SDict begin H.S end 831 3828 a 0 0 1 TeXcolorrgb -1 x Fx(ro)n(ws)p 0 0 1 TeXcolorrgb 990 3789 a SDict begin H.R end 990 3789 a 990 3827 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ad11ca53a9ed8c8d60e12aff99cc757af) cvn H.B /ANN pdfmark end 990 3827 a 0 TeXcolorgray 21 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3952 a Fl(r)m(eturn)g(the)f(number)h(of)f(r)m(ows)g(in)f(the)h(table)o (.)p 0 TeXcolorgray 652 4060 a Fx(\225)p 0 TeXcolorgray 41 w(double)p 0 0 1 TeXcolorrgb 969 4061 a SDict begin H.S end 969 4061 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1135 4003 a SDict begin H.R end 1135 4003 a 1135 4060 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_aa73abbd02668c1d3a48e0b2e187be177) cvn H.B /ANN pdfmark end 1135 4060 a 0 TeXcolorgray 21 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4184 a Fl(g)o(et)g(TSCALn)e(value)p 0 TeXcolorgray 0 TeXcolorgray 652 4292 a Fx(\225)p 0 TeXcolorgray 722 4292 a SDict begin H.S end 722 4292 a 0 TeXcolorgray 0 TeXcolorgray 722 4292 a SDict begin H.R end 722 4292 a 722 4292 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a07f4db0fc1eb719f128555712977adc9) cvn H.B /DEST pdfmark end 722 4292 a 0 TeXcolorgray 21 w Fx(virtual)i(v)n(oid)p 0 0 1 TeXcolorrgb 1147 4293 a SDict begin H.S end 1147 4293 a 0 0 1 TeXcolorrgb -1 x Fx(setDimen)p 0 0 1 TeXcolorrgb 1465 4236 a SDict begin H.R end 1465 4236 a 1465 4292 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a07f4db0fc1eb719f128555712977adc9) cvn H.B /ANN pdfmark end 1465 4292 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4417 a Fl(set)f(the)g(TDIMn)g(k)o(e)n(ywor)m(d.)p 0 TeXcolorgray 0 TeXcolorgray 652 4525 a Fx(\225)p 0 TeXcolorgray 722 4525 a SDict begin H.S end 722 4525 a 0 TeXcolorgray 0 TeXcolorgray 722 4525 a SDict begin H.R end 722 4525 a 722 4525 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a20d67e697b433cef52a8a3680bc1ba6f) cvn H.B /DEST pdfmark end 722 4525 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 4543 a SDict begin H.S end 910 4543 a 0 0 1 TeXcolorrgb -18 x Fx(setDisplay)p 0 0 1 TeXcolorrgb 1260 4468 a SDict begin H.R end 1260 4468 a 1260 4525 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a20d67e697b433cef52a8a3680bc1ba6f) cvn H.B /ANN pdfmark end 1260 4525 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4649 a Fl(set)g(the)g(TDISPn)g(k)o(e)n(ywor)m(d)p 0 TeXcolorgray 0 TeXcolorgray 652 4757 a Fx(\225)p 0 TeXcolorgray 722 4757 a SDict begin H.S end 722 4757 a 0 TeXcolorgray 0 TeXcolorgray 722 4757 a SDict begin H.R end 722 4757 a 722 4757 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a005f5d623d129e979d3ba1bd2bd0be17) cvn H.B /DEST pdfmark end 722 4757 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4775 a SDict begin H.S end 743 4775 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 1096 4701 a SDict begin H.R end 1096 4701 a 1096 4757 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1096 4757 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 1117 4775 a SDict begin H.S end 1117 4775 a 0 0 1 TeXcolorrgb -18 x Fx(type)p 0 0 1 TeXcolorrgb 1260 4710 a SDict begin H.R end 1260 4710 a 1260 4757 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a005f5d623d129e979d3ba1bd2bd0be17) cvn H.B /ANN pdfmark end 1260 4757 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4882 a Fl(r)m(eturns)g(the) f(data)h(type)f(of)g(the)g(column)p 0 TeXcolorgray 0 TeXcolorgray 652 4990 a Fx(\225)p 0 TeXcolorgray 722 4990 a SDict begin H.S end 722 4990 a 0 TeXcolorgray 0 TeXcolorgray 722 4990 a SDict begin H.R end 722 4990 a 722 4990 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_aeb67db3dcfa5eb20db8ccf540f1f1cae) cvn H.B /DEST pdfmark end 722 4990 a 0 TeXcolorgray 21 w Fx(const)h(String)g(&)p 0 0 1 TeXcolorrgb 1248 4991 a SDict begin H.S end 1248 4991 a 0 0 1 TeXcolorrgb -1 x Fx(unit)p 0 0 1 TeXcolorrgb 1377 4933 a SDict begin H.R end 1377 4933 a 1377 4990 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_aeb67db3dcfa5eb20db8ccf540f1f1cae) cvn H.B /ANN pdfmark end 1377 4990 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 53 58 TeXDict begin 53 57 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.53) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(53)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(g)o(et)20 b(units)f(of)f(data)i(in)p 0 0 1 TeXcolorrgb 1419 524 a SDict begin H.S end 1419 524 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1655 472 a SDict begin H.R end 1655 472 a 1655 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1655 523 a 0 TeXcolorgray 19 w Fl(\(TUNITn)e(k)o(e)n(ywor)m(d\))p 0 TeXcolorgray 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 722 631 a SDict begin H.S end 722 631 a 0 TeXcolorgray 0 TeXcolorgray 722 631 a SDict begin H.R end 722 631 a 722 631 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a7e6589bf0f95eaefc52eeb5c1a119b44) cvn H.B /DEST pdfmark end 722 631 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 649 a SDict begin H.S end 911 649 a 0 0 1 TeXcolorrgb -18 x Fx(v)n(arLength)p 0 0 1 TeXcolorrgb 1251 575 a SDict begin H.R end 1251 575 a 1251 631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a7e6589bf0f95eaefc52eeb5c1a119b44) cvn H.B /ANN pdfmark end 1251 631 a 0 TeXcolorgray 20 w Fx(\(\))i(const)p 0 TeXcolorgray 0 TeXcolorgray 840 756 a Fl(boolean,)h(set)d(to)h(true)g(if)p 0 0 1 TeXcolorrgb 1496 757 a SDict begin H.S end 1496 757 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1733 705 a SDict begin H.R end 1733 705 a 1733 756 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1733 756 a 0 TeXcolorgray 19 w Fl(has)g(variable)h(length)f (vector)h(r)m(ows.)p 0 TeXcolorgray 0 TeXcolorgray 652 863 a Fx(\225)p 0 TeXcolorgray 722 863 a SDict begin H.S end 722 863 a 0 TeXcolorgray 0 TeXcolorgray 722 863 a SDict begin H.R end 722 863 a 722 863 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a6d952ee287b4764941a76eb59ceb450c) cvn H.B /DEST pdfmark end 722 863 a 0 TeXcolorgray 21 w Fx(long)p 0 0 1 TeXcolorrgb 911 864 a SDict begin H.S end 911 864 a 0 0 1 TeXcolorrgb -1 x Fx(width)p 0 0 1 TeXcolorrgb 1101 807 a SDict begin H.R end 1101 807 a 1101 863 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a6d952ee287b4764941a76eb59ceb450c) cvn H.B /ANN pdfmark end 1101 863 a 0 TeXcolorgray 20 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 988 a Fl(r)m(eturn)g(column)g(data)f(width)p 0 TeXcolorgray 652 1096 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1196 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1197 a SDict begin H.S end 889 1197 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 1139 a SDict begin H.R end 1060 1139 a 1060 1196 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) cvn H.B /ANN pdfmark end 1060 1196 a 0 TeXcolorgray 20 w Fx(\(const)j(std::v)o(ector)p Fu(<)f Fx(S)h Fu(>)h Fx(&indata,)e(long)g(\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 1320 a Fl(write)g(a)g(vector)g(of)g(values)h(into)e (a)i(scalar)f(column)h(starting)f(with)f(\002r)o(stRow)p 0 TeXcolorgray 652 1428 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)j(S)c Fg(>)722 1528 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1529 a SDict begin H.S end 889 1529 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 1471 a SDict begin H.R end 1060 1471 a 1060 1528 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a5f3e2fe6f35970812ec010af5ed2ff0a) cvn H.B /ANN pdfmark end 1060 1528 a 0 TeXcolorgray 20 w Fx(\(const)j(std::v)n(alarray)p Fu(<)e Fx(S)j Fu(>)f Fx(&indata,)f(long)h(\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 1652 a Fl(write)f(a)g(valarr)o(ay)h(of)e(values)i (into)f(a)g(scalar)g(column)h(starting)f(with)g(\002r)o(stRow)p 0 TeXcolorgray 652 1760 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1860 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1861 a SDict begin H.S end 889 1861 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 1803 a SDict begin H.R end 1060 1803 a 1060 1860 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ae509fe7fb63dd53a12674eade9f8a53f) cvn H.B /ANN pdfmark end 1060 1860 a 0 TeXcolorgray 20 w Fx(\(S)k Fp(\003)p Fx(indata,)e(long)g(nRo)n(ws,)h(long)g (\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 1984 a Fl(write)f(a)g(C)f(arr)o(ay)i(of)f(size)f(nRows)h(into)g(a)g (scalar)p 0 0 1 TeXcolorrgb 2143 1985 a SDict begin H.S end 2143 1985 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 2379 1934 a SDict begin H.R end 2379 1934 a 2379 1984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2379 1984 a 0 TeXcolorgray 19 w Fl(starting)g(with)g(r)m(ow)f(\002r)o(stRow)-6 b(.)p 0 TeXcolorgray 652 2092 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 2192 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 2193 a SDict begin H.S end 889 2193 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 2135 a SDict begin H.R end 1060 2135 a 1060 2192 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a73d57c6cf6453ba5c934afa1cca64035) cvn H.B /ANN pdfmark end 1060 2192 a 0 TeXcolorgray 20 w Fx(\(const)j(std::v)o(ector)p Fu(<)f Fx(S)h Fu(>)h Fx(&indata,)e(long)g(\002rstRo)n(w)-5 b(,)20 b(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2316 a Fl(write)26 b(a)f(vector)i(of)e(values)i(into)e(a)h(scalar)g (column)h(starting)f(with)f(\002r)o(stRow)-6 b(,)28 b(r)m(eplacing)f (ele-)840 2408 y(ments)19 b(equal)h(to)f(nullV)-8 b(alue)19 b(with)f(the)p 0 0 1 TeXcolorrgb 1853 2409 a SDict begin H.S end 1853 2409 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2003 2357 a SDict begin H.R end 2003 2357 a 2003 2408 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2003 2408 a 0 TeXcolorgray 18 w Fl(null)h(value)o(.)p 0 TeXcolorgray 652 2516 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 2615 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 2616 a SDict begin H.S end 889 2616 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 2559 a SDict begin H.R end 1060 2559 a 1060 2615 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ae1529c918f00ce00419647715ae510ac) cvn H.B /ANN pdfmark end 1060 2615 a 0 TeXcolorgray 20 w Fx(\(const)j(std::v)n(alarray)p Fu(<)e Fx(S)j Fu(>)f Fx(&indata,)f(long)h(\002rstRo)n(w)-5 b(,)20 b(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2740 a Fl(write)20 b(a)h(valarr)o(ay)g(of)g(values)g (into)f(a)h(scalar)g(column)g(starting)g(with)f(\002r)o(stRow)-6 b(,)21 b(r)m(eplacing)h(ele-)840 2831 y(ments)d(equal)h(to)f(nullV)-8 b(alue)19 b(with)f(the)p 0 0 1 TeXcolorrgb 1853 2832 a SDict begin H.S end 1853 2832 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2003 2780 a SDict begin H.R end 2003 2780 a 2003 2831 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2003 2831 a 0 TeXcolorgray 18 w Fl(null)h(value)o(.)p 0 TeXcolorgray 652 2939 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 3039 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 3040 a SDict begin H.S end 889 3040 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 2982 a SDict begin H.R end 1060 2982 a 1060 3039 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_acac40215c2eab8f9db13683536a9ea71) cvn H.B /ANN pdfmark end 1060 3039 a 0 TeXcolorgray 20 w Fx(\(S)k Fp(\003)p Fx(indata,)e(long)g(nRo)n(ws,)h(long)g(\002rstRo)n(w)-5 b(,)20 b(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3163 a Fl(write)19 b(a)g(C)f(arr)o(ay)i(into)f(a)g (scalar)p 0 0 1 TeXcolorrgb 1717 3164 a SDict begin H.S end 1717 3164 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1954 3112 a SDict begin H.R end 1954 3112 a 1954 3163 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1954 3163 a 0 TeXcolorgray Fl(,)f(pr)m(ocessing)i(unde\002ned)i(values.)p 0 TeXcolorgray 652 3271 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)f(S)c Fg(>)722 3371 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 3372 a SDict begin H.S end 889 3372 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 3314 a SDict begin H.R end 1060 3314 a 1060 3371 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a9fc84f8c9cfc7aa45584f6115356bf81) cvn H.B /ANN pdfmark end 1060 3371 a 0 TeXcolorgray 20 w Fx(\(const)j(std::v)n (alarray)p Fu(<)e Fx(S)j Fu(>)f Fx(&indata,)f(long)h(nRo)n(ws,)g(long)f (\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 3495 a Fl(write)g(a)g(valarr)o(ay)h(of)e(values)i(into)f(a)g(r)o(ang)o (e)h(of)f(r)m(ows)g(of)f(a)h(vector)h(column.)p 0 TeXcolorgray 652 3603 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 3703 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 3704 a SDict begin H.S end 889 3704 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 3646 a SDict begin H.R end 1060 3646 a 1060 3703 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a17c0c46a47a511536db34be16230f0b5) cvn H.B /ANN pdfmark end 1060 3703 a 0 TeXcolorgray 20 w Fx(\(const)j(std::v)o (ector)p Fu(<)f Fx(S)h Fu(>)h Fx(&indata,)e(long)g(nRo)n(ws,)h(long)g (\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 3827 a Fl(write)f(a)g(vector)g(of)g(values)h(into)e(a)i(r)o(ang)o(e)g (of)e(r)m(ows)h(of)g(a)g(vector)g(column)p 0 TeXcolorgray 652 3935 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 4035 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 4036 a SDict begin H.S end 889 4036 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 3979 a SDict begin H.R end 1060 3979 a 1060 4035 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_aa7a896f7365af06ed76c8c77b013ee1e) cvn H.B /ANN pdfmark end 1060 4035 a 0 TeXcolorgray 20 w Fx(\(S)k Fp(\003)p Fx(indata,)e(long)g(nElements,)g(long)h(nRo)n(ws,)g(long)f (\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 4159 a Fl(write)g(a)g(C)f(arr)o(ay)i(of)f(values)g(into)g(a)g(r)o(ang)o (e)h(of)f(r)m(ows)g(of)g(a)g(vector)g(column)p 0 TeXcolorgray 652 4267 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 4367 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 901 4368 a SDict begin H.S end 901 4368 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1072 4311 a SDict begin H.R end 1072 4311 a 1072 4367 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a5690eb92353a1b887cc8746bd1578353) cvn H.B /ANN pdfmark end 1072 4367 a 0 TeXcolorgray 33 w Fx(\(const)31 b(std::v)n(alarray)p Fu(<)g Fx(S)i Fu(>)f Fx(&indata,)i(long)e(nRo)n (ws,)j(long)d(\002rstRo)n(w)-5 b(,)35 b(S)722 4467 y Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4591 a Fl(write)19 b(a)g(valarr)o(ay)h(of)e(values)i(into)f(a)g(r)o (ang)o(e)h(of)f(r)m(ows)g(of)f(a)h(vector)h(column.)p 0 TeXcolorgray 652 4699 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 4799 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 888 4800 a SDict begin H.S end 888 4800 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1058 4742 a SDict begin H.R end 1058 4742 a 1058 4799 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a00111b943e40d3f9276094615093d16f) cvn H.B /ANN pdfmark end 1058 4799 a 0 TeXcolorgray 20 w Fx(\(const)i(std::v)o(ector)p Fu(<)e Fx(S)j Fu(>)f Fx(&indata,)f(long)g(nRo)n(ws,)h(long)g(\002rstRo)n(w)-5 b(,)19 b(S)h Fp(\003)p Fx(null-)722 4898 y(V)-9 b(alue\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 54 59 TeXDict begin 54 58 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.54) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(54)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(write)17 b(a)g(vector)h(of)f(values)h(into)f(a)g(r)o(ang)o(e)h(of)f (r)m(ows)g(of)g(a)h(vector)f(column,)h(pr)m(ocessing)g(unde\002ned)840 614 y(values)p 0 TeXcolorgray 652 722 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)j(S)c Fg(>)722 821 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 903 822 a SDict begin H.S end 903 822 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1073 765 a SDict begin H.R end 1073 765 a 1073 821 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a3dbc65c7f0ea3589ee4f81ce217e319d) cvn H.B /ANN pdfmark end 1073 821 a 0 TeXcolorgray 35 w Fx(\(S)34 b Fp(\003)p Fx(indata,)j(long)c(nElements,)j(long)d(nRo) n(ws,)k(long)d(\002rstRo)n(w)-5 b(,)37 b(S)e Fp(\003)p Fx(null-)722 921 y(V)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 1045 a Fl(write)22 b(a)g(C)f(arr)o(ay)i(of)e(values)i(into)f(a)g(r) o(ang)o(e)h(of)e(r)m(ows)h(of)g(a)g(vector)g(column,)h(pr)m(ocessing)g (unde-)840 1137 y(\002ned)d(values.)p 0 TeXcolorgray 652 1244 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 1344 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 1345 a SDict begin H.S end 884 1345 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1055 1287 a SDict begin H.R end 1055 1287 a 1055 1344 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a246fc3a403b5d9a83e7c607381d7d2f8) cvn H.B /ANN pdfmark end 1055 1344 a 0 TeXcolorgray 15 w Fx(\(const)e(std::v)n (alarray)p Fu(<)e Fx(S)j Fu(>)g Fx(&indata,)f(const)g(std::v)o(ector)p Fu(<)e Fx(long)i Fu(>)g Fx(&v)o(ector-)722 1443 y(Lengths,)k(long)h (\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 1567 a Fl(write)g(a)g(valarr)o(ay)h(of)f(values)h(into)f(a)g(column)h (with)e(speci\002ed)j(number)f(of)f(entries)g(written)f(per)840 1659 y(r)m(ow)-6 b(.)p 0 TeXcolorgray 652 1766 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 1866 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1867 a SDict begin H.S end 889 1867 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1059 1809 a SDict begin H.R end 1059 1809 a 1059 1866 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_acf2fc78379fcf87368be58a5af5e17e6) cvn H.B /ANN pdfmark end 1059 1866 a 0 TeXcolorgray 21 w Fx(\(const)i(std::v)o(ector)p Fu(<)f Fx(S)j Fu(>)f Fx(&indata,)f(const)g(std::v)o(ector)p Fu(<)g Fx(long)g Fu(>)h Fx(&v)o(ector-)722 1965 y(Lengths,)f(long)h (\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 2089 a Fl(write)25 b(a)g(vector)g(of)g(values)h(into)f(a)g(column)h (with)f(speci\002ed)h(number)g(of)f(entries)g(written)f(per)840 2181 y(r)m(ow)-6 b(.)p 0 TeXcolorgray 652 2288 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 2388 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 2389 a SDict begin H.S end 884 2389 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1055 2332 a SDict begin H.R end 1055 2332 a 1055 2388 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_aba3909f84c581320091c0e360de2ae94) cvn H.B /ANN pdfmark end 1055 2388 a 0 TeXcolorgray 15 w Fx(\(S)f Fp(\003)p Fx(indata,)f(long)f (nElements,)h(const)g(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)i Fx(&v)o(ectorLengths,)722 2488 y(long)k(\002rstRo)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 2612 a Fl(write)g(a)f(C-arr)o(ay)i (of)e(values)i(of)e(size)h(nElements)g(into)g(a)f(vector)i(column)f (with)f(speci\002ed)i(num-)840 2703 y(ber)f(of)e(entries)i(written)e (per)h(r)m(ow)-6 b(.)p 0 TeXcolorgray 652 2810 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 2910 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 893 2928 a SDict begin H.S end 893 2928 a 0 0 1 TeXcolorrgb -18 x Fx(writeArrays)p 0 0 1 TeXcolorrgb 1290 2854 a SDict begin H.R end 1290 2854 a 1290 2910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_af3c3c6cda70971b8f88fba3409222f91) cvn H.B /ANN pdfmark end 1290 2910 a 0 TeXcolorgray 25 w Fx(\(const)24 b(std::v)o(ector)p Fu(<)f Fx(std::v)n(alarray)p Fu(<)f Fx(S)k Fu(>)e(>)h Fx(&indata,)f(long)g(\002rst-)722 3010 y(Ro)n(w\))p 0 TeXcolorgray 0 TeXcolorgray 840 3134 a Fl(write)19 b(a)g(vector)g(of)g (valarr)o(ay)h(objects)f(to)g(the)g(column,)g(starting)h(at)e(r)m(ow)h (\002r)o(stRow)g Fe(>)p Fl(=)g(1)p 0 TeXcolorgray 652 3241 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 3341 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 893 3359 a SDict begin H.S end 893 3359 a 0 0 1 TeXcolorrgb -18 x Fx(writeArrays)p 0 0 1 TeXcolorrgb 1290 3285 a SDict begin H.R end 1290 3285 a 1290 3341 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ab4c9789b84aaf531fcccfa76e19e4fc4) cvn H.B /ANN pdfmark end 1290 3341 a 0 TeXcolorgray 25 w Fx(\(const)24 b(std::v)o(ector)p Fu(<)f Fx(std::v)n(alarray)p Fu(<)f Fx(S)k Fu(>)e(>)h Fx(&indata,)f(long)g(\002rst-)722 3441 y(Ro)n(w)-5 b(,)20 b(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3565 a Fl(write)20 b(a)h(vector)g(of)f(valarr)o(ay)i(objects)f(to)f(the)h(column,)g (starting)g(at)f(r)m(ow)h(\002r)o(stRow)f Fe(>)p Fl(=)h(1,)g(pr)m(o-) 840 3656 y(cessing)f(unde\002ned)h(values)p 0 TeXcolorgray 652 3763 a Fx(\225)p 0 TeXcolorgray 41 w(double)p 0 0 1 TeXcolorrgb 969 3764 a SDict begin H.S end 969 3764 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1112 3725 a SDict begin H.R end 1112 3725 a 1112 3763 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a3329c1be8b0491661be582b59710ba32) cvn H.B /ANN pdfmark end 1112 3763 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3888 a Fl(g)o(et)g(TZEROn)d(value)p 0.25 TeXcolorgray 515 4155 a Fo(Pr)o(otected)h(Member)g(Functions)p 0 TeXcolorgray 515 4212 a SDict begin H.S end 515 4212 a 515 4212 a SDict begin 12 H.A end 515 4212 a 515 4212 a SDict begin [ /View [/XYZ H.V] /Dest (section*.11) cvn H.B /DEST pdfmark end 515 4212 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 4344 a Fx(\225)p 0 0 1 TeXcolorrgb 722 4345 a SDict begin H.S end 722 4345 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 990 4288 a SDict begin H.R end 990 4288 a 990 4344 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a206d06dd199e7c73c32864b06f760f77) cvn H.B /ANN pdfmark end 990 4344 a 0 TeXcolorgray 26 w Fx(\(int)25 b(columnInde)o(x,)f(const)h(String)g(&columnName,)p 0 0 1 TeXcolorrgb 2633 4362 a SDict begin H.S end 2633 4362 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 2986 4288 a SDict begin H.R end 2986 4288 a 2986 4344 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 2986 4344 a 0 TeXcolorgray 27 w Fx(type,)26 b(const)722 4443 y(String)d(&format,)e(const)i(String) f(&unit,)p 0 0 1 TeXcolorrgb 1943 4444 a SDict begin H.S end 1943 4444 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2125 4387 a SDict begin H.R end 2125 4387 a 2125 4443 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2125 4443 a 0 TeXcolorgray 24 w Fp(\003)p Fx(p,)23 b(int)g(rpt=1,)f(long)g(w=1,)h(const)g(String) 722 4543 y(&comment=""\))p 0 TeXcolorgray 0 TeXcolorgray 840 4667 a Fl(ne)o(w)c(column)h(cr)m(eation)g(constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 4775 a Fx(\225)p 0 TeXcolorgray 722 4775 a SDict begin H.S end 722 4775 a 0 TeXcolorgray 0 TeXcolorgray 722 4775 a SDict begin H.R end 722 4775 a 722 4775 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a3a1f099043fecc7567eca702be5e6a41) cvn H.B /DEST pdfmark end 722 4775 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4776 a SDict begin H.S end 743 4776 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1011 4718 a SDict begin H.R end 1011 4718 a 1011 4775 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a3a1f099043fecc7567eca702be5e6a41) cvn H.B /ANN pdfmark end 1011 4775 a 0 TeXcolorgray 20 w Fx(\()p 0 0 1 TeXcolorrgb 1059 4776 a SDict begin H.S end 1059 4776 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1241 4718 a SDict begin H.R end 1241 4718 a 1241 4775 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1241 4775 a 0 TeXcolorgray 21 w Fp(\003)p Fx(p=0\))p 0 TeXcolorgray 0 TeXcolorgray 840 4899 a Fl(Simple)19 b(constructor)i(to)d(be)i(called)f(by)g(subclass)h(r)m(eading)g(ctor)o (s.)p 0 TeXcolorgray 0 TeXcolorgray 652 5006 a Fx(\225)p 0 TeXcolorgray 722 5006 a SDict begin H.S end 722 5006 a 0 TeXcolorgray 0 TeXcolorgray 722 5006 a SDict begin H.R end 722 5006 a 722 5006 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_afa347ea0046bd222d1b70346ec126332) cvn H.B /DEST pdfmark end 722 5006 a 0 TeXcolorgray 21 w Fx(const)g(String)g(&)p 0 0 1 TeXcolorrgb 1248 5007 a SDict begin H.S end 1248 5007 a 0 0 1 TeXcolorrgb -1 x Fx(comment)p 0 0 1 TeXcolorrgb 1557 4959 a SDict begin H.R end 1557 4959 a 1557 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_afa347ea0046bd222d1b70346ec126332) cvn H.B /ANN pdfmark end 1557 5006 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 55 60 TeXDict begin 55 59 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.55) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(55)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(r)m(etrie)o(ve)20 b(comment)f(for)p 0 0 1 TeXcolorrgb 1482 524 a SDict begin H.S end 1482 524 a 0 0 1 TeXcolorrgb -1 x Fl(Column)p 0 0 1 TeXcolorrgb 1718 472 a SDict begin H.R end 1718 472 a 1718 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1718 523 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 722 631 a SDict begin H.S end 722 631 a 0 TeXcolorgray 0 TeXcolorgray 722 631 a SDict begin H.R end 722 631 a 722 631 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ad79fd54bd8997985b37cb6722777c4c0) cvn H.B /DEST pdfmark end 722 631 a 0 TeXcolorgray 21 w Fx(\002ts\002le)i Fp(\003)p 0 0 1 TeXcolorrgb 1034 632 a SDict begin H.S end 1034 632 a 0 0 1 TeXcolorrgb -1 x Fx(\002tsPointer)p 0 0 1 TeXcolorrgb 1375 575 a SDict begin H.R end 1375 575 a 1375 631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_ad79fd54bd8997985b37cb6722777c4c0) cvn H.B /ANN pdfmark end 1375 631 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 756 a Fl(\002ts)e(pointer)h (corr)m(esponding)i(to)c(\002ts)h(\002le)g(containing)i(column)e(data.) p 0 TeXcolorgray 0 TeXcolorgray 652 863 a Fx(\225)p 0 TeXcolorgray 722 863 a SDict begin H.S end 722 863 a 0 TeXcolorgray 0 TeXcolorgray 722 863 a SDict begin H.R end 722 863 a 722 863 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a2a85f49e6e72ed0b3619df9e586ad159) cvn H.B /DEST pdfmark end 722 863 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 864 a SDict begin H.S end 910 864 a 0 0 1 TeXcolorrgb -1 x Fx(mak)o(eHDUCurrent)p 0 0 1 TeXcolorrgb 1522 807 a SDict begin H.R end 1522 807 a 1522 863 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a2a85f49e6e72ed0b3619df9e586ad159) cvn H.B /ANN pdfmark end 1522 863 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 988 a Fl(mak)o(e)p 0 0 1 TeXcolorrgb 1016 989 a SDict begin H.S end 1016 989 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1178 940 a SDict begin H.R end 1178 940 a 1178 988 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1178 988 a 0 TeXcolorgray 19 w Fl(containing)h(this)e(the)h(curr)m(ent)p 0 0 1 TeXcolorrgb 2007 989 a SDict begin H.S end 2007 989 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2169 940 a SDict begin H.R end 2169 940 a 2169 988 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2169 988 a 0 TeXcolorgray 19 w Fl(of)g(the)g(\002ts)g(\002le)o(.) p 0 TeXcolorgray 0 TeXcolorgray 652 1096 a Fx(\225)p 0 TeXcolorgray 722 1096 a SDict begin H.S end 722 1096 a 0 TeXcolorgray 0 TeXcolorgray 722 1096 a SDict begin H.R end 722 1096 a 722 1096 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a636120f892e981e24fc7e29248c66a59) cvn H.B /DEST pdfmark end 722 1096 a 0 TeXcolorgray 21 w Fx(virtual)h(std::ostream)f(&)p 0 0 1 TeXcolorrgb 1493 1114 a SDict begin H.S end 1493 1114 a 0 0 1 TeXcolorrgb -18 x Fx(put)p 0 0 1 TeXcolorrgb 1599 1049 a SDict begin H.R end 1599 1049 a 1599 1096 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_a636120f892e981e24fc7e29248c66a59) cvn H.B /ANN pdfmark end 1599 1096 a 0 TeXcolorgray 20 w Fx(\(std::ostream)h(&s\)) g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1220 a Fl(internal)g (implementation)f(of)g Fe(<<)g Fl(oper)o(ator)-8 b(.)515 1357 y SDict begin H.S end 515 1357 a 515 1357 a SDict begin 12 H.A end 515 1357 a 515 1357 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.3.1) cvn H.B /DEST pdfmark end 515 1357 a 0.25 TeXcolorgray 132 x Fo(24.3.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 1692 a Fx(Abstract)i(base)g(class)h (for)p 0 0 1 TeXcolorrgb 1285 1693 a SDict begin H.S end 1285 1693 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1552 1635 a SDict begin H.R end 1552 1635 a 1552 1692 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1552 1692 a 0 TeXcolorgray 21 w Fx(objects.)515 1838 y(Columns)30 b(are)g(the)g(data)g(containers) f(used)i(in)p 0 0 1 TeXcolorrgb 1930 1839 a SDict begin H.S end 1930 1839 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2101 1782 a SDict begin H.R end 2101 1782 a 2101 1838 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2101 1838 a 0 TeXcolorgray 31 w Fx(tables.)55 b(Columns)30 b(of)g(scalar)h(type)e(\(one)515 1938 y(entry)21 b(per)g(cell\))h(are)g(implemented)e(by)i(the)g (template)f(subclass)h(ColumnData)p Fu(<)p Fx(T)p Fu(>)p Fx(.)28 b(Columns)515 2038 y(of)23 b(v)o(ector)g(type)g(\(v)o(ector)g (and)g(v)n(ariable)g(ro)n(ws\))g(are)h(implemented)e(with)i(the)g (template)f(subclass)515 2137 y(ColumnV)-9 b(ectorData)p Fu(<)p Fx(T)p Fu(>)p Fx(.)57 b(AsciiT)-7 b(ables)33 b(may)e(only)h (contain)f(Columns)g(of)h(type)g(Column-)515 2237 y(Data)p Fu(<)p Fx(T)p Fu(>)p Fx(,)26 b(where)f(T)h(is)g(an)g(implemented)p 0 0 1 TeXcolorrgb 1852 2238 a SDict begin H.S end 1852 2238 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2023 2181 a SDict begin H.R end 2023 2181 a 2023 2237 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2023 2237 a 0 TeXcolorgray 26 w Fx(data)g(type)f(\(see)h (the)p 0 0 1 TeXcolorrgb 2671 2238 a SDict begin H.S end 2671 2238 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts.h)p 0 0 1 TeXcolorrgb 2945 2181 a SDict begin H.R end 2945 2181 a 2945 2237 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (CCfits_8h_source) cvn H.B /ANN pdfmark end 2945 2237 a 0 TeXcolorgray 26 w Fx(header)f(for)g(a)515 2337 y(complete)d(list.)35 b(This)23 b(requirement)e(is)k(enforced)c(by)i(ensuring)e(that)j (AsciiT)-7 b(able')i(s)24 b(addColumn)515 2436 y(method)30 b(may)h(only)g(create)h(an)p 0 0 1 TeXcolorrgb 1492 2437 a SDict begin H.S end 1492 2437 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1850 2380 a SDict begin H.R end 1850 2380 a 1850 2436 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1850 2436 a 0 TeXcolorgray 32 w Fx(compatible)30 b(column.)59 b(The)31 b(ColumnData)p Fu(<)p Fx(T)p Fu(>)515 2536 y Fx(class)21 b(stores)f(its)i(data)e(in)g(a)h(std::v)o(ector)p Fu(<)p Fx(T)p Fu(>)c Fx(object.)515 2683 y(BinT)-7 b(ables)33 b(may)f(contain)g(either)g(ColumnData)p Fu(<)p Fx(T)p Fu(>)f Fx(or)h(ColumnV)-9 b(ectorData)p Fu(<)p Fx(T)p Fu(>)p Fx(.)59 b(F)o(or)32 b(-)515 2782 y(ColumnV)-9 b(ectorData,)18 b(T)k(must)f(be)g(a)h(numeric)e(type:)26 b(string)21 b(v)o(ectors)f(are)h(handled)f(by)h(Column-)515 2882 y(Data)p Fu(<)p Fx(T)p Fu(>)p Fx(;)28 b(string)e(arrays)f(are)h (not)g(supported.)41 b(The)25 b(internal)h(representation)e(of)i(the)g (data)g(is)515 2982 y(a)d(std::v)o(ector)p Fu(<)p Fx(std::v)n(alarray)p Fu(<)p Fx(T)p Fu(>)18 b(>)23 b Fx(object.)33 b(The)22 b(std::v)n(alarray)g(class)i(is)g(designed)d(for)i(ef)n(\002-)515 3081 y(cient)j(numeric)f(processing)g(and)h(has)h(man)o(y)f(v)o (ectorized)e(numeric)h(and)h(transcendental)f(func-)515 3181 y(tions)20 b(de\002ned)f(on)h(it.)515 3328 y(Member)28 b(template)h(functions)f(for)h(read/write)g(operations)f(are)h(pro)o (vided)e(in)j(multiple)f(o)o(v)o(er)n(-)515 3427 y(loads)23 b(as)g(the)g(interf)o(ace)g(to)g(data)g(operations.)32 b(Implicit)22 b(data)h(type)g(con)m(v)o(ersions)e(are)i(supported)515 3527 y(b)n(ut)h(where)h(the)o(y)f(are)g(required)f(mak)o(e)i(the)f (operations)g(less)h(ef)n(\002cient.)39 b(Reading)24 b(numeric)f(col-)515 3627 y(umn)c(data)h(as)h(character)e(arrays,)g (supported)g(by)g(c\002tsio,)i(is)g(not)f(supported)e(by)p 0 0 1 TeXcolorrgb 2853 3628 a SDict begin H.S end 2853 3628 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 3065 3570 a SDict begin H.R end 3065 3570 a 3065 3627 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3065 3627 a 0 TeXcolorgray Fx(.)515 3773 y(As)j(a)h(base)f(class,)p 0 0 1 TeXcolorrgb 1060 3774 a SDict begin H.S end 1060 3774 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1327 3717 a SDict begin H.R end 1327 3717 a 1327 3773 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1327 3773 a 0 TeXcolorgray 22 w Fx(pro)o(vides)e(protected)g (accessor/mutator)g(inline)i(functions)f(to)h(allo)n(w)515 3873 y(only)e(its)i(subclasses)g(to)f(access)h(data)f(members.)515 4013 y SDict begin H.S end 515 4013 a 515 4013 a SDict begin 12 H.A end 515 4013 a 515 4013 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.3.2) cvn H.B /DEST pdfmark end 515 4013 a 0.25 TeXcolorgray 128 x Fo(24.3.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4344 a SDict begin H.S end 515 4344 a 0 TeXcolorgray 0 TeXcolorgray 515 4344 a SDict begin H.R end 515 4344 a 515 4344 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a01cd84a7155888aadc568231f908bd5e) cvn H.B /DEST pdfmark end 515 4344 a 0 TeXcolorgray 515 4382 a SDict begin H.S end 515 4382 a 515 4382 a SDict begin 12 H.A end 515 4382 a 515 4382 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.2.1) cvn H.B /DEST pdfmark end 515 4382 a 0.25 TeXcolorgray 147 x Fo(24.3.2.1)75 b (CC\002ts::Column::Colum)q(n)23 b(\()34 b(const)19 b Fy(Column)e Fo(&)g Fk(right)35 b Fo(\))p 0 TeXcolorgray 515 4713 a Fx(cop)o(y)19 b(constructor)m(,)f(used)i(in)g(cop)o(ying)e (Columns)i(to)g(standard)f(library)h(containers.)515 4860 y(The)g(cop)o(y)g(constructor)f(is)i(for)f(internal)g(use)h(only:) k(it)c(does)g(not)f(af)n(fect)g(the)h(disk)f(\002ts)i(\002le)f(associ-) 515 4959 y(ated)f(with)g(the)g(object.)p 0 TeXcolorgray 1214 4959 a SDict begin H.S end 1214 4959 a 0 TeXcolorgray 0 TeXcolorgray 1214 4959 a SDict begin H.R end 1214 4959 a 1214 4959 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a206d06dd199e7c73c32864b06f760f77) cvn H.B /DEST pdfmark end 1214 4959 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 56 61 TeXDict begin 56 60 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.56) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(56)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.2.2) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.3.2.2)75 b(CC\002ts::Column::Colum)q(n)23 b(\()35 b(int)18 b Fk(columnInde)o(x,) 37 b Fo(const)18 b(String)h(&)e Fk(columnName)q(,)37 b Fy(V)-8 b(alueT)i(ype)811 623 y Fk(type)q(,)36 b Fo(const)19 b(String)g(&)f Fk(f)o(ormat,)36 b Fo(const)19 b(String)g(&)f Fk(unit,)36 b Fy(T)-8 b(able)18 b Fp(\003)g Fk(p,)36 b Fo(int)18 b Fk(rpt)g(=)g Fr(1)p Fk(,)35 b Fo(long)19 b Fk(w)e(=)h Fr(1)p Fk(,)811 722 y Fo(const)g(String)g(&)g Fk(comment)h(=)e Fr("")34 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 907 a Fx(ne)n(w)20 b(column)f(creation)g (constructor)515 1053 y(This)h(constructor)e(allo)n(ws)j(the)f (speci\002cation)f(of:)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1263 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1206 a SDict begin H.S end 515 1206 a 515 1206 a SDict begin 12 H.A end 515 1206 a 515 1206 a SDict begin [ /View [/XYZ H.V] /Dest (table.7) cvn H.B /DEST pdfmark end 515 1206 a 515 1309 2889 4 v 515 1309 V 515 1409 4 100 v 549 1379 a Ft(columnInde)n(x)p 1005 1409 V 58 w Fx(The)h(column)f(number)p 3400 1409 V 515 1412 2889 4 v 515 1412 V 515 1611 4 200 v 704 1482 a Ft(column-)783 1581 y(Name)p 1005 1611 V 1037 1482 a Fx(The)h(column)f(name,)g(k)o(e)o (yw)o(ord)f(TTYPEn)p 3400 1611 V 515 1615 2889 4 v 515 1615 V 515 1814 4 200 v 838 1684 a Ft(type)p 1005 1814 V 60 w Fx(used)24 b(for)g(determining)e(class)k(of)e(T)h(in)f (ColumnData)p Fu(<)p Fx(T)p Fu(>)p Fx(,)f(ColumnV)-9 b(ector-)1037 1784 y(Data)p Fu(<)p Fx(T)p Fu(>)p 3400 1814 V 515 1817 2889 4 v 515 1817 V 515 1917 4 100 v 755 1887 a Ft(format)p 1005 1917 V 60 w Fx(the)20 b(column)f(data)h (format,)f(TFORMn)h(k)o(e)o(yw)o(ord)p 3400 1917 V 515 1920 2889 4 v 515 1920 V 515 2020 4 100 v 847 1990 a Ft(unit)p 1005 2020 V 60 w Fx(the)g(column)f(data)h(unit,)g(TUNITn)f(k) o(e)o(yw)o(ord)p 3400 2020 V 515 2023 2889 4 v 515 2023 V 515 2123 4 100 v 935 2093 a Ft(p)p 1005 2123 V 60 w Fx(the)p 0 0 1 TeXcolorrgb 1159 2094 a SDict begin H.S end 1159 2094 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1341 2036 a SDict begin H.R end 1341 2036 a 1341 2093 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1341 2093 a 0 TeXcolorgray 21 w Fx(pointer)p 3400 2123 4 100 v 515 2126 2889 4 v 515 2126 V 515 2226 4 100 v 879 2196 a Ft(rpt)p 1005 2226 V 61 w Fx(\(optional\))18 b(repeat)i(count)f(for)g(the)i(ro)n(w)e (\()i(==)f(1)g(for)g(AsciiT)-7 b(ables\))p 3400 2226 V 515 2229 2889 4 v 515 2229 V 515 2329 4 100 v 921 2299 a Ft(w)p 1005 2329 V 61 w Fx(the)20 b(ro)n(w)g(width)p 3400 2329 V 515 2332 2889 4 v 515 2332 V 515 2431 4 100 v 677 2402 a Ft(comment)p 1005 2431 V 59 w Fx(comment)f(to)h(be)g (added)f(to)h(the)h(header)-5 b(.)p 3400 2431 V 515 2435 2889 4 v 515 2435 V 515 2556 a SDict begin H.S end 515 2556 a 515 2556 a SDict begin 12 H.A end 515 2556 a 515 2556 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.3.3) cvn H.B /DEST pdfmark end 515 2556 a 0.25 TeXcolorgray 147 x Fo(24.3.3)75 b(Member)18 b(Function)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2906 a SDict begin H.S end 515 2906 a 0 TeXcolorgray 0 TeXcolorgray 515 2906 a SDict begin H.R end 515 2906 a 515 2906 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a29aba21352578c3bdb94cee15e5561f0) cvn H.B /DEST pdfmark end 515 2906 a 0 TeXcolorgray 515 2943 a SDict begin H.S end 515 2943 a 515 2943 a SDict begin 12 H.A end 515 2943 a 515 2943 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.1) cvn H.B /DEST pdfmark end 515 2943 a 0.25 TeXcolorgray 147 x Fo(24.3.3.1)75 b(template)p Fu(<)p Fo(typename)20 b(T)e Fu(>)e Fo(v)n(oid)j(CC\002ts::Column::ad)o(dNu)q(llV)l(alu)q(e)k (\()34 b(T)18 b Fk(n)o(ullV)l(al)34 b Fo(\))p 0 TeXcolorgray 515 3274 a Fx(Set)21 b(the)f(TNULLn)f(k)o(e)o(yw)o(ord)f(for)i(the)g (column.)515 3421 y(Only)i(rele)n(v)n(ant)g(for)g(inte)o(ger)f(v)n (alued)h(columns,)g(TNULLn)f(is)j(the)f(v)n(alue)f(used)g(by)g (c\002tsio)i(in)e(un-)515 3521 y(de\002ned)f(processing.)29 b(All)23 b(entries)e(in)i(the)f(table)g(equal)f(to)h(an)g(input)g ("null)f(v)n(alue")g(are)h(set)h(equal)515 3621 y(to)d(the)g(v)n(alue)g (of)g(TNULLn.)k(\(F)o(or)19 b(\003oating)h(point)f(columns)g(a)i (system)f(NaN)h(v)n(alue)e(is)i(used\).)p 0 TeXcolorgray 3289 3621 a SDict begin H.S end 3289 3621 a 0 TeXcolorgray 0 TeXcolorgray 3289 3621 a SDict begin H.R end 3289 3621 a 3289 3621 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a8409427a876646e0f1846f55146872bc) cvn H.B /DEST pdfmark end 3289 3621 a 0 TeXcolorgray 515 3676 a SDict begin H.S end 515 3676 a 515 3676 a SDict begin 12 H.A end 515 3676 a 515 3676 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.2) cvn H.B /DEST pdfmark end 515 3676 a 0.25 TeXcolorgray 129 x Fo(24.3.3.2)75 b(const)18 b(String)g(&)g(CC\002ts::Column::dimen)23 b(\()69 b(\))17 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 3989 a Fx(return)19 b(TDIMn)g(k)o(e)o(yw)o(ord)515 4136 y(represents)k (dimensions)f(of)i(data)g(arrays)f(in)h(v)o(ector)f(columns.)34 b(for)24 b(scalar)g(columns,)f(returns)g(a)515 4236 y(def)o(ault)c(v)n (alue.)p 0 TeXcolorgray 989 4236 a SDict begin H.S end 989 4236 a 0 TeXcolorgray 0 TeXcolorgray 989 4236 a SDict begin H.R end 989 4236 a 989 4236 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_aa21fb01249bbb97f4a3149e704634f61) cvn H.B /DEST pdfmark end 989 4236 a 0 TeXcolorgray 515 4274 a SDict begin H.S end 515 4274 a 515 4274 a SDict begin 12 H.A end 515 4274 a 515 4274 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.3) cvn H.B /DEST pdfmark end 515 4274 a 0.25 TeXcolorgray 146 x Fo(24.3.3.3)75 b(const)18 b(String)g(&)g(CC\002ts::Column::displa)o(y) 23 b(\()68 b(\))18 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 4604 a Fx(return)19 b(TDISPn)h(k)o(e)o(yw)o(ord)515 4751 y(TDISPn)g(is)h(suggested)e(format)g(for)h(output)f(of)g(column)g (data.)p 0 TeXcolorgray 2369 4751 a SDict begin H.S end 2369 4751 a 0 TeXcolorgray 0 TeXcolorgray 2369 4751 a SDict begin H.R end 2369 4751 a 2369 4751 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a9e95e761de30327378669d11295de1cc) cvn H.B /DEST pdfmark end 2369 4751 a 0 TeXcolorgray 515 4806 a SDict begin H.S end 515 4806 a 515 4806 a SDict begin 12 H.A end 515 4806 a 515 4806 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.4) cvn H.B /DEST pdfmark end 515 4806 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 449 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0.25 TeXcolorgray eop end %%Page: 57 62 TeXDict begin 57 61 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.57) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(57)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.3.3.4)75 b(const)18 b(String)g(&)g (CC\002ts::Column::f)o(ormat)23 b(\()69 b(\))17 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 707 a Fx(return)19 b(TFORMn)h(k)o(e)o(yw)o(ord)515 854 y(TFORMn)g(speci\002es)h(data)f (format)f(stored)h(in)g(disk)g(\002le.)p 0 TeXcolorgray 2192 854 a SDict begin H.S end 2192 854 a 0 TeXcolorgray 0 TeXcolorgray 2192 854 a SDict begin H.R end 2192 854 a 2192 854 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a35fb61a8737112aa1d90e7081d0fb65c) cvn H.B /DEST pdfmark end 2192 854 a 0 TeXcolorgray 515 909 a SDict begin H.S end 515 909 a 515 909 a SDict begin 12 H.A end 515 909 a 515 909 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.5) cvn H.B /DEST pdfmark end 515 909 a 0.25 TeXcolorgray 129 x Fo(24.3.3.5)75 b(template)p Fu(<)p Fo(typename)20 b(T)e Fu(>)e Fo(bool)j(CC\002ts::Column::g)q (etNullV)l(alu)q(e)k(\()34 b(T)18 b Fp(\003)e Fk(n)o(ullV)l(al)35 b Fo(\))18 b(const)p 0 TeXcolorgray 515 1223 a Fx(Get)i(the)h(v)n(alue) e(of)h(the)g(TNULLn)g(k)o(e)o(yw)o(ord)e(for)h(the)i(column.)515 1369 y(Only)d(rele)n(v)n(ant)g(for)g(inte)o(ger)f(v)n(alued)h(columns.) 23 b(If)c(the)g(TNULLn)f(k)o(e)o(yw)o(ord)f(is)i(present,)f(its)i(v)n (alue)515 1469 y(will)g(be)g(written)f(to)h Fp(\003)p Ft(nullV)-9 b(al)18 b Fx(and)h(the)h(function)d(returns)i Ft(true)p Fx(.)25 b(If)20 b(the)f(k)o(e)o(yw)o(ord)f(is)j(not)e(found)f (or)515 1569 y(its)j(v)n(alue)e(is)j(unde\002ned,)c(the)i(function)e (returns)i Ft(false)g Fx(and)g Fp(\003)p Ft(nullV)-9 b(al)18 b Fx(is)j(not)f(modi\002ed.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1778 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1720 a SDict begin H.S end 515 1720 a 515 1720 a SDict begin 12 H.A end 515 1720 a 515 1720 a SDict begin [ /View [/XYZ H.V] /Dest (table.8) cvn H.B /DEST pdfmark end 515 1720 a 515 1823 2889 4 v 515 1823 V 515 1923 4 100 v 741 1893 a Ft(nullV)-9 b(al)p 1005 1923 V 59 w Fx(A)21 b(pointer)e(to)h(the)g(v)n(ariable)f (for)h(storing)f(the)h(TNULLn)g(v)n(alue.)p 3400 1923 V 515 1926 2889 4 v 515 1926 V 0 TeXcolorgray 515 2156 a SDict begin H.S end 515 2156 a 0 TeXcolorgray 0 TeXcolorgray 515 2156 a SDict begin H.R end 515 2156 a 515 2156 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ac6720082cfafae0e48779c82e809e4a9) cvn H.B /DEST pdfmark end 515 2156 a 0 TeXcolorgray 515 2194 a SDict begin H.S end 515 2194 a 515 2194 a SDict begin 12 H.A end 515 2194 a 515 2194 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.6) cvn H.B /DEST pdfmark end 515 2194 a 0.25 TeXcolorgray 146 x Fo(24.3.3.6)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)i(CC\002ts::Column::read) k(\()35 b(std::vector)p Fu(<)20 b Fo(S)e Fu(>)f Fo(&)h Fk(v)o(als,)35 b Fo(long)811 2440 y Fk(\002r)o(st,)g Fo(long)18 b Fk(last)35 b Fo(\))p 0 TeXcolorgray 515 2624 a Fx(Retrie)n(v)o(e)19 b(data)i(from)e(a)h(scalar)h(column)d(into) i(a)h(std::v)o(ector)-5 b(.)515 2771 y(This)20 b(and)g(the)h(follo)n (wing)d(functions)h(perform)g(implicit)h(data)h(con)m(v)o(ersions.)i (An)d(e)o(xception)f(will)515 2871 y(be)h(thro)n(wn)f(if)h(no)g(con)m (v)o(ersion)d(e)o(xists.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3064 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3006 a SDict begin H.S end 515 3006 a 515 3006 a SDict begin 12 H.A end 515 3006 a 515 3006 a SDict begin [ /View [/XYZ H.V] /Dest (table.9) cvn H.B /DEST pdfmark end 515 3006 a 515 3109 2889 4 v 515 3109 V 515 3209 4 100 v 843 3179 a Ft(vals)p 1005 3209 V 60 w Fx(The)j(output)f (container)-5 b(.)24 b(The)19 b(function)g(will)i(resize)f(this)h(as)g (necessary)p 3400 3209 V 515 3212 2889 4 v 515 3212 V 515 3312 4 100 v 707 3282 a Ft(\002r)o(st,last)p 1005 3312 V 61 w Fx(the)f(span)g(of)g(ro)n(w)g(numbers)e(to)j(read.)p 3400 3312 V 515 3315 2889 4 v 515 3315 V 0 TeXcolorgray 515 3545 a SDict begin H.S end 515 3545 a 0 TeXcolorgray 0 TeXcolorgray 515 3545 a SDict begin H.R end 515 3545 a 515 3545 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a957053fb51a8024fe46bf0b3dfdcaa1e) cvn H.B /DEST pdfmark end 515 3545 a 0 TeXcolorgray 515 3582 a SDict begin H.S end 515 3582 a 515 3582 a SDict begin 12 H.A end 515 3582 a 515 3582 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.7) cvn H.B /DEST pdfmark end 515 3582 a 0.25 TeXcolorgray 147 x Fo(24.3.3.7)75 b(template)p Fu(<)p Fo(typename)21 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::read) 23 b(\()35 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)f Fu(>)g Fo(&)g Fk(v)o(als,)35 b Fo(long)811 3829 y Fk(\002r)o(st,)g Fo(long)18 b Fk(last)35 b Fo(\))p 0 TeXcolorgray 515 4013 a Fx(Retrie)n(v)o(e)19 b(data)i(from)e(a)h(scalar)h(column)d(into) i(a)h(std::v)n(alarray)-5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4223 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4166 a SDict begin H.S end 515 4166 a 515 4166 a SDict begin 12 H.A end 515 4166 a 515 4166 a SDict begin [ /View [/XYZ H.V] /Dest (table.10) cvn H.B /DEST pdfmark end 515 4166 a 515 4269 2889 4 v 515 4269 V 515 4368 4 100 v 843 4338 a Ft(vals)p 1005 4368 V 60 w Fx(The)20 b(output)f(container)-5 b(.)24 b(The)19 b(function)g(will)i(resize)f (this)h(as)g(necessary)p 3400 4368 V 515 4372 2889 4 v 515 4372 V 515 4471 4 100 v 707 4441 a Ft(\002r)o(st,last)p 1005 4471 V 61 w Fx(the)f(span)g(of)g(ro)n(w)g(numbers)e(to)j(read.)p 3400 4471 V 515 4475 2889 4 v 515 4475 V 0 TeXcolorgray 515 4705 a SDict begin H.S end 515 4705 a 0 TeXcolorgray 0 TeXcolorgray 515 4705 a SDict begin H.R end 515 4705 a 515 4705 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_af730bdf4681626ec457ba9d8286e3d50) cvn H.B /DEST pdfmark end 515 4705 a 0 TeXcolorgray 515 4742 a SDict begin H.S end 515 4742 a 515 4742 a SDict begin 12 H.A end 515 4742 a 515 4742 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.8) cvn H.B /DEST pdfmark end 515 4742 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 513 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 58 63 TeXDict begin 58 62 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.58) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(58)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.3.3.8)75 b(template)p Fu(<)p Fo(typename)21 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::read)23 b(\()35 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)f Fu(>)g Fo(&)g Fk(v)o(als,)35 b Fo(long)811 623 y Fk(r)o(o)o(ws)e Fo(\))p 0 TeXcolorgray 515 807 a Fx(return)19 b(a)h(single)g(ro)n(w)g (of)g(a)h(v)o(ector)e(column)g(into)g(a)i(std::v)n(alarray)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1017 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 960 a SDict begin H.S end 515 960 a 515 960 a SDict begin 12 H.A end 515 960 a 515 960 a SDict begin [ /View [/XYZ H.V] /Dest (table.11) cvn H.B /DEST pdfmark end 515 960 a 515 1063 2889 4 v 515 1063 V 515 1162 4 100 v 843 1132 a Ft(vals)p 1005 1162 V 60 w Fx(The)f(output)f(v)n(alarray)f(object)p 3400 1162 V 515 1165 2889 4 v 515 1165 V 515 1265 4 100 v 819 1235 a Ft(r)l(ows)p 1005 1265 V 61 w Fx(The)i(ro)n(w)g(number)e (to)i(be)g(retrie)n(v)o(ed)f(\(starting)g(at)i(1\).)p 3400 1265 V 515 1268 2889 4 v 515 1268 V 0 TeXcolorgray 515 1498 a SDict begin H.S end 515 1498 a 0 TeXcolorgray 0 TeXcolorgray 515 1498 a SDict begin H.R end 515 1498 a 515 1498 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a7fd3388e536a354a54ee110f41e0c1f5) cvn H.B /DEST pdfmark end 515 1498 a 0 TeXcolorgray 515 1536 a SDict begin H.S end 515 1536 a 515 1536 a SDict begin 12 H.A end 515 1536 a 515 1536 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.9) cvn H.B /DEST pdfmark end 515 1536 a 0.25 TeXcolorgray 147 x Fo(24.3.3.9)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)i(CC\002ts::Column::read) k(\()35 b(std::vector)p Fu(<)20 b Fo(S)e Fu(>)f Fo(&)h Fk(v)o(als,)35 b Fo(long)811 1782 y Fk(\002r)o(st,)g Fo(long)18 b Fk(last,)35 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 1966 a Fx(Retrie)n(v)o(e)21 b(data)g(from)g(a)h(scalar)f(column)g(into)g(a)h(std::v)o(ector)p Fu(>)p Fx(,)e(applying)g(nullV)-9 b(alue)20 b(when)h(rele-)515 2066 y(v)n(ant.)515 2213 y(If)26 b(both)f Ft(nullV)-9 b(alue)24 b Fx(and)i Fp(\003)p Ft(nullV)-9 b(alue)24 b Fx(are)i(not)g(0,)h(then)f(an)o(y)g(unde\002ned)e(v)n(alues)h(in)i (the)f(\002le)h(will)515 2313 y(be)19 b(con)m(v)o(erted)d(to)j Fp(\003)p Ft(nullV)-9 b(alue)16 b Fx(when)j(copied)e(into)i(the)g Ft(vals)g Fx(v)o(ector)-5 b(.)24 b(See)19 b(c\002tsio)h(documentation) 515 2412 y(for)f(further)g(details)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2605 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2548 a SDict begin H.S end 515 2548 a 515 2548 a SDict begin 12 H.A end 515 2548 a 515 2548 a SDict begin [ /View [/XYZ H.V] /Dest (table.12) cvn H.B /DEST pdfmark end 515 2548 a 515 2651 2889 4 v 515 2651 V 515 2750 4 100 v 843 2720 a Ft(vals)p 1005 2750 V 60 w Fx(The)h(output)f(container)-5 b(.)24 b(The)19 b(function)g(will)i (resize)f(this)h(as)g(necessary)p 3400 2750 V 515 2754 2889 4 v 515 2754 V 515 2853 4 100 v 707 2823 a Ft(\002r)o(st,last)p 1005 2853 V 61 w Fx(the)f(span)g(of)g(ro)n(w)g(numbers)e(to)j(read.)p 3400 2853 V 515 2857 2889 4 v 515 2857 V 515 2956 4 100 v 663 2926 a Ft(nullV)-9 b(alue)p 1005 2956 V 58 w Fx(pointer)19 b(to)h(v)n(alue)g(to)g(be)g(applied)f(to)i(unde\002ned)d(elements.)p 3400 2956 V 515 2959 2889 4 v 515 2959 V 0 TeXcolorgray 515 3189 a SDict begin H.S end 515 3189 a 0 TeXcolorgray 0 TeXcolorgray 515 3189 a SDict begin H.R end 515 3189 a 515 3189 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ad9ce91e8e87c9a3b88b94ddfc9d42fd8) cvn H.B /DEST pdfmark end 515 3189 a 0 TeXcolorgray 515 3227 a SDict begin H.S end 515 3227 a 515 3227 a SDict begin 12 H.A end 515 3227 a 515 3227 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.10) cvn H.B /DEST pdfmark end 515 3227 a 0.25 TeXcolorgray 147 x Fo(24.3.3.10)75 b(template)p Fu(<)p Fo(typename)20 b(S)d Fu(>)f Fo(v)n(oid)i (CC\002ts::Column::read)k(\()34 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)f Fu(>)f Fo(&)h Fk(v)o(als,)34 b Fo(long)845 3473 y Fk(\002r)o(st,)h Fo(long)18 b Fk(last,)35 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 3657 a Fx(Retrie)n(v)o(e)21 b(data)h(from)f(a)i(scalar)f(column)f (into)h(a)g(std::v)n(alarray)-5 b(,)20 b(applying)h(nullV)-9 b(alue)20 b(when)i(rele-)515 3757 y(v)n(ant.)515 3904 y(If)d(both)g Ft(nullV)-9 b(alue)18 b Fx(and)h Fp(\003)p Ft(nullV)-9 b(alue)18 b Fx(are)h(not)h(0,)f(then)g(an)o(y)g (unde\002ned)f(v)n(alues)h(in)h(the)g(\002le)g(will)h(be)515 4004 y(con)m(v)o(erted)e(to)j Fp(\003)p Ft(nullV)-9 b(alue)19 b Fx(when)j(copied)e(into)i(the)g Ft(vals)g Fx(v)n(alarray)-5 b(.)28 b(See)22 b(c\002tsio)h(documentation)515 4103 y(for)c(further)g(details)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4296 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4239 a SDict begin H.S end 515 4239 a 515 4239 a SDict begin 12 H.A end 515 4239 a 515 4239 a SDict begin [ /View [/XYZ H.V] /Dest (table.13) cvn H.B /DEST pdfmark end 515 4239 a 515 4342 2889 4 v 515 4342 V 515 4441 4 100 v 843 4411 a Ft(vals)p 1005 4441 V 60 w Fx(The)h(output)f (container)-5 b(.)24 b(The)19 b(function)g(will)i(resize)f(this)h(as)g (necessary)p 3400 4441 V 515 4445 2889 4 v 515 4445 V 515 4544 4 100 v 707 4514 a Ft(\002r)o(st,last)p 1005 4544 V 61 w Fx(the)f(span)g(of)g(ro)n(w)g(numbers)e(to)j(read.)p 3400 4544 V 515 4548 2889 4 v 515 4548 V 515 4647 4 100 v 663 4617 a Ft(nullV)-9 b(alue)p 1005 4647 V 58 w Fx(pointer)19 b(to)h(v)n(alue)g(to)g(be)g(applied)f(to)i(unde\002ned)d(elements.)p 3400 4647 V 515 4650 2889 4 v 515 4650 V 0 TeXcolorgray 515 4880 a SDict begin H.S end 515 4880 a 0 TeXcolorgray 0 TeXcolorgray 515 4880 a SDict begin H.R end 515 4880 a 515 4880 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a5b6d04384ee5608b7bf6f86e651b5a02) cvn H.B /DEST pdfmark end 515 4880 a 0 TeXcolorgray 515 4918 a SDict begin H.S end 515 4918 a 515 4918 a SDict begin 12 H.A end 515 4918 a 515 4918 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.11) cvn H.B /DEST pdfmark end 515 4918 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 337 x Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 59 64 TeXDict begin 59 63 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.59) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(59)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.3.3.11)75 b(template)p Fu(<)p Fo(typename)23 b(S)d Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::readArra)o (ys)26 b(\()40 b(std::vector)p Fu(<)845 623 y Fo(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)f Fu(>)g(>)f Fo(&)h Fk(v)o(als,)34 b Fo(long)19 b Fk(\002r)o(st,)34 b Fo(long)19 b Fk(last)34 b Fo(\))p 0 TeXcolorgray 515 807 a Fx(return)19 b(a)h(set)h(of)f(ro)n(ws)g(of)g (a)h(v)o(ector)e(column)g(into)h(a)g(v)o(ector)f(of)h(v)n(alarrays)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1017 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 960 a SDict begin H.S end 515 960 a 515 960 a SDict begin 12 H.A end 515 960 a 515 960 a SDict begin [ /View [/XYZ H.V] /Dest (table.14) cvn H.B /DEST pdfmark end 515 960 a 515 1063 2889 4 v 515 1063 V 515 1162 4 100 v 843 1132 a Ft(vals)p 1005 1162 V 60 w Fx(The)g(output)f(container)-5 b(.)24 b(The)19 b(function)g(will)i(resize)f(this)h(as)g(necessary)p 3400 1162 V 515 1165 2889 4 v 515 1165 V 515 1265 4 100 v 707 1235 a Ft(\002r)o(st,last)p 1005 1265 V 61 w Fx(the)f(span)g(of)g (ro)n(w)g(numbers)e(to)j(read.)p 3400 1265 V 515 1268 2889 4 v 515 1268 V 0 TeXcolorgray 515 1498 a SDict begin H.S end 515 1498 a 0 TeXcolorgray 0 TeXcolorgray 515 1498 a SDict begin H.R end 515 1498 a 515 1498 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a01773423bbd768e4fb22d43aa884da19) cvn H.B /DEST pdfmark end 515 1498 a 0 TeXcolorgray 515 1536 a SDict begin H.S end 515 1536 a 515 1536 a SDict begin 12 H.A end 515 1536 a 515 1536 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.12) cvn H.B /DEST pdfmark end 515 1536 a 0.25 TeXcolorgray 147 x Fo(24.3.3.12)75 b(template)p Fu(<)p Fo(typename)23 b(S)d Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::readArra)o(ys)26 b(\()40 b(std::vector)p Fu(<)845 1782 y Fo(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)f Fu(>)g(>)f Fo(&)h Fk(v)o(als,)34 b Fo(long)19 b Fk(\002r)o(st,)34 b Fo(long)19 b Fk(last,)34 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 1966 a Fx(return)19 b(a)h(set)h(of)f(ro)n(ws)g(of)g(a)h(v)o(ector)e (column)g(into)h(a)g(container)m(,)e(setting)j(unde\002ned)d(v)n(alues) p 0 TeXcolorgray 0.25 TeXcolorgray 506 2176 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2119 a SDict begin H.S end 515 2119 a 515 2119 a SDict begin 12 H.A end 515 2119 a 515 2119 a SDict begin [ /View [/XYZ H.V] /Dest (table.15) cvn H.B /DEST pdfmark end 515 2119 a 515 2222 2889 4 v 515 2222 V 515 2322 4 100 v 843 2292 a Ft(vals)p 1005 2322 V 60 w Fx(The)i(output)f(container)-5 b(.)24 b(The)19 b(function)g(will)i(resize)f(this)h(as)g(necessary)p 3400 2322 V 515 2325 2889 4 v 515 2325 V 515 2425 4 100 v 707 2395 a Ft(\002r)o(st,last)p 1005 2425 V 61 w Fx(the)f(span)g(of)g (ro)n(w)g(numbers)e(to)j(read.)p 3400 2425 V 515 2428 2889 4 v 515 2428 V 515 2528 4 100 v 663 2498 a Ft(nullV)-9 b(alue)p 1005 2528 V 58 w Fx(pointer)19 b(to)h(inte)o(ger)f(v)n(alue)h (re)o(garded)d(as)k(unde\002ned)p 3400 2528 V 515 2531 2889 4 v 515 2531 V 0 TeXcolorgray 515 2761 a SDict begin H.S end 515 2761 a 0 TeXcolorgray 0 TeXcolorgray 515 2761 a SDict begin H.R end 515 2761 a 515 2761 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ab33449dbc7dd32f10d493e2b5470b739) cvn H.B /DEST pdfmark end 515 2761 a 0 TeXcolorgray 515 2798 a SDict begin H.S end 515 2798 a 515 2798 a SDict begin 12 H.A end 515 2798 a 515 2798 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.13) cvn H.B /DEST pdfmark end 515 2798 a 0.25 TeXcolorgray 147 x Fo(24.3.3.13)75 b(v)n(oid)20 b(CC\002ts::Column::readData)25 b(\()39 b(long)20 b Fk(\002r)o(stRo)o(w)g(=)f Fr(1)p Fk(,)39 b Fo(long)20 b Fk(nelements)h(=)e Fr(1)p Fk(,)39 b Fo(long)845 3045 y Fk(\002r)o(stElem)18 b(=)f Fr(1)34 b Fo(\))71 b Fr([pure)49 b(virtual])p 0 TeXcolorgray 515 3229 a Fx(Read)20 b(\(or)g(reread\))e(data)j(from)e(the)h(disk)g (into)g(the)p 0 0 1 TeXcolorrgb 1974 3230 a SDict begin H.S end 1974 3230 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2242 3173 a SDict begin H.R end 2242 3173 a 2242 3229 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2242 3229 a 0 TeXcolorgray 20 w Fx(object')-5 b(s)21 b(internal)e(arrays.)515 3376 y(This)k(function)e(normally)g(does)h(not)h(need)f(to)h(be)f(called.)33 b(See)23 b(the)g Fy(r)o(esetRead)e Fx(function)h(for)g(an)515 3475 y(alternati)n(v)o(e)d(w)o(ay)h(of)g(performing)d(a)k(reread)e (from)g(disk.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3685 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3628 a SDict begin H.S end 515 3628 a 515 3628 a SDict begin 12 H.A end 515 3628 a 515 3628 a SDict begin [ /View [/XYZ H.V] /Dest (table.16) cvn H.B /DEST pdfmark end 515 3628 a 515 3731 2889 4 v 515 3731 V 515 3831 4 100 v 700 3801 a Ft(\002r)o(stRow)p 1005 3831 V 61 w Fx(The)h(\002rst)h(ro)n(w)e(to)i(be)f(read)p 3400 3831 V 515 3834 2889 4 v 515 3834 V 515 3934 4 100 v 644 3904 a Ft(nelements)p 1005 3934 V 60 w Fx(The)g(number)e(of)i(elements)g(to) g(read)p 3400 3934 V 515 3937 2889 4 v 515 3937 V 515 4136 4 200 v 677 4007 a Ft(\002r)o(stElem)p 1005 4136 V 61 w Fx(The)c(number)f(of)h(the)g(element)g(on)g(the)h(\002rst)g(ro)n (w)f(to)h(start)g(at)g(\(ignored)d(for)i(scalar)1037 4106 y(columns\))p 3400 4136 V 515 4139 2889 4 v 515 4139 V 0 TeXcolorgray 515 4369 a SDict begin H.S end 515 4369 a 0 TeXcolorgray 0 TeXcolorgray 515 4369 a SDict begin H.R end 515 4369 a 515 4369 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a3529fff681af7e826b31cb366dae9afa) cvn H.B /DEST pdfmark end 515 4369 a 0 TeXcolorgray 515 4407 a SDict begin H.S end 515 4407 a 515 4407 a SDict begin 12 H.A end 515 4407 a 515 4407 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.14) cvn H.B /DEST pdfmark end 515 4407 a 0.25 TeXcolorgray 147 x Fo(24.3.3.14)75 b(v)n(oid)18 b(CC\002ts::Column::resetRead)23 b(\()69 b(\))i Fr([inline])p 0 TeXcolorgray 515 4738 a Fx(reset)20 b(the)g(Column')-5 b(s)20 b(isRead)h(\003ag)f(to)h(f)o (alse)515 4885 y(This)g(forces)g(the)g(data)g(to)h(be)f(reread)f(from)g (the)h(disk)h(the)f(ne)o(xt)f(time)i(a)g(read)e(command)g(is)i(called) 515 4984 y(on)28 b(the)p 0 0 1 TeXcolorrgb 758 4985 a SDict begin H.S end 758 4985 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1026 4928 a SDict begin H.R end 1026 4928 a 1026 4984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1026 4984 a 0 TeXcolorgray Fx(,)k(rather)c(than)h(simply)f(retrie)n(ving)g(the)h(data)g(already)f (stored)g(in)h(the)p 0 0 1 TeXcolorrgb 3111 4985 a SDict begin H.S end 3111 4985 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 3379 4928 a SDict begin H.R end 3379 4928 a 3379 4984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 3379 4984 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 60 65 TeXDict begin 60 64 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.60) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(60)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(object')-5 b(s)23 b(internal)h(arrays.)35 b(This)24 b(may)f(be)h(useful)g(for)f(e)o(xample)f(if)i(trying)f(to)h (reread)f(a)p 0 0 1 TeXcolorrgb 3111 524 a SDict begin H.S end 3111 524 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 3379 467 a SDict begin H.R end 3379 467 a 3379 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 3379 523 a 0 TeXcolorgray 515 623 a Fx(using)c(a)i(dif)n(ferent)e(nullV)-9 b(alue)19 b(ar)o(gument)e(than)j(for)g(an)g(earlier)g(read.)p 0 TeXcolorgray 2552 623 a SDict begin H.S end 2552 623 a 0 TeXcolorgray 0 TeXcolorgray 2552 623 a SDict begin H.R end 2552 623 a 2552 623 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ad11ca53a9ed8c8d60e12aff99cc757af) cvn H.B /DEST pdfmark end 2552 623 a 0 TeXcolorgray 515 678 a SDict begin H.S end 515 678 a 515 678 a SDict begin 12 H.A end 515 678 a 515 678 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.15) cvn H.B /DEST pdfmark end 515 678 a 0.25 TeXcolorgray 129 x Fo(24.3.3.15)75 b(int)18 b(CC\002ts::Column::r)o(o)o(ws)k(\()69 b(\))17 b(const)p 0 TeXcolorgray 515 991 a Fx(return)i(the)h(number)e(of)i(ro)n(ws)g(in)h (the)f(table.)515 1138 y(return)f(number)f(of)i(ro)n(ws)g(in)g(the)p 0 0 1 TeXcolorrgb 1486 1139 a SDict begin H.S end 1486 1139 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1753 1082 a SDict begin H.R end 1753 1082 a 1753 1138 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1753 1138 a 0 TeXcolorgray 0 TeXcolorgray 1774 1138 a SDict begin H.S end 1774 1138 a 0 TeXcolorgray 0 TeXcolorgray 1774 1138 a SDict begin H.R end 1774 1138 a 1774 1138 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_aa73abbd02668c1d3a48e0b2e187be177) cvn H.B /DEST pdfmark end 1774 1138 a 0 TeXcolorgray 515 1176 a SDict begin H.S end 515 1176 a 515 1176 a SDict begin 12 H.A end 515 1176 a 515 1176 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.16) cvn H.B /DEST pdfmark end 515 1176 a 0.25 TeXcolorgray 146 x Fo(24.3.3.16)75 b(doub)o(le)19 b(CC\002ts::Column::scale)k(\()68 b(\))18 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 1506 a Fx(get)20 b(TSCALn)g(v)n(alue)515 1653 y(TSCALn)h(is)i(used)e(to)h(con) m(v)o(ert)e(a)i(data)g(array)e(represented)g(on)i(disk)f(in)h(inte)o (ger)f(format)f(as)j(\003oat-)515 1753 y(ing.)h(Useful)c(for)g(compact) f(storage)h(of)f(digitized)h(data.)p 0 TeXcolorgray 2176 1753 a SDict begin H.S end 2176 1753 a 0 TeXcolorgray 0 TeXcolorgray 2176 1753 a SDict begin H.R end 2176 1753 a 2176 1753 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a7cb97c498256253a4902c884a5424f1c) cvn H.B /DEST pdfmark end 2176 1753 a 0 TeXcolorgray 515 1808 a SDict begin H.S end 515 1808 a 515 1808 a SDict begin 12 H.A end 515 1808 a 515 1808 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.17) cvn H.B /DEST pdfmark end 515 1808 a 0.25 TeXcolorgray 129 x Fo(24.3.3.17)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h (CC\002ts::Column::write)24 b(\()37 b(const)20 b(std::vector)p Fu(<)g Fo(S)e Fu(>)g Fo(&)845 2037 y Fk(indata,)36 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 2221 a Fx(write)20 b(a)h(v)o(ector)e(of)h(v)n(alues)f(into)h(a)h (scalar)f(column)f(starting)h(with)g(\002rstRo)n(w)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2431 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2374 a SDict begin H.S end 515 2374 a 515 2374 a SDict begin 12 H.A end 515 2374 a 515 2374 a SDict begin [ /View [/XYZ H.V] /Dest (table.17) cvn H.B /DEST pdfmark end 515 2374 a 515 2477 2889 4 v 515 2477 V 515 2576 4 100 v 764 2546 a Ft(indata)p 1005 2576 V 59 w Fx(The)g(data)g(to)g(be)g(written.)p 3400 2576 V 515 2580 2889 4 v 515 2580 V 515 2679 4 100 v 700 2649 a Ft(\002r)o(stRow)p 1005 2679 V 61 w Fx(The)g(\002rst)h(ro) n(w)e(to)i(be)f(written)p 3400 2679 V 515 2683 2889 4 v 515 2683 V 0 TeXcolorgray 515 2912 a SDict begin H.S end 515 2912 a 0 TeXcolorgray 0 TeXcolorgray 515 2912 a SDict begin H.R end 515 2912 a 515 2912 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a5f3e2fe6f35970812ec010af5ed2ff0a) cvn H.B /DEST pdfmark end 515 2912 a 0 TeXcolorgray 515 2950 a SDict begin H.S end 515 2950 a 515 2950 a SDict begin 12 H.A end 515 2950 a 515 2950 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.18) cvn H.B /DEST pdfmark end 515 2950 a 0.25 TeXcolorgray 147 x Fo(24.3.3.18)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::write)k(\()36 b(const)20 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)e Fu(>)h Fo(&)845 3196 y Fk(indata,)36 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 3381 a Fx(write)20 b(a)h(v)n(alarray)d(of) i(v)n(alues)g(into)g(a)h(scalar)f(column)f(starting)h(with)g(\002rstRo) n(w)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3591 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3533 a SDict begin H.S end 515 3533 a 515 3533 a SDict begin 12 H.A end 515 3533 a 515 3533 a SDict begin [ /View [/XYZ H.V] /Dest (table.18) cvn H.B /DEST pdfmark end 515 3533 a 515 3636 2889 4 v 515 3636 V 515 3736 4 100 v 764 3706 a Ft(indata)p 1005 3736 V 59 w Fx(The)g(data)g(to)g(be)g(written.)p 3400 3736 V 515 3739 2889 4 v 515 3739 V 515 3839 4 100 v 700 3809 a Ft(\002r)o(stRow)p 1005 3839 V 61 w Fx(The)g(\002rst)h(ro) n(w)e(to)i(be)f(written)p 3400 3839 V 515 3842 2889 4 v 515 3842 V 0 TeXcolorgray 515 4072 a SDict begin H.S end 515 4072 a 0 TeXcolorgray 0 TeXcolorgray 515 4072 a SDict begin H.R end 515 4072 a 515 4072 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ae509fe7fb63dd53a12674eade9f8a53f) cvn H.B /DEST pdfmark end 515 4072 a 0 TeXcolorgray 515 4109 a SDict begin H.S end 515 4109 a 515 4109 a SDict begin 12 H.A end 515 4109 a 515 4109 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.19) cvn H.B /DEST pdfmark end 515 4109 a 0.25 TeXcolorgray 147 x Fo(24.3.3.19)75 b(template)p Fu(<)p Fo(typename)21 b(S)c Fu(>)g Fo(v)n(oid)i(CC\002ts::Column::write)j(\()36 b(S)17 b Fp(\003)g Fk(indata,)36 b Fo(long)19 b Fk(nRo)o(ws,)36 b Fo(long)845 4356 y Fk(\002r)o(stRo)o(w)f Fo(\))p 0 TeXcolorgray 515 4540 a Fx(write)20 b(a)h(C)g(array)e(of)h(size)h(nRo)n (ws)f(into)g(a)h(scalar)p 0 0 1 TeXcolorrgb 1942 4541 a SDict begin H.S end 1942 4541 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2210 4484 a SDict begin H.R end 2210 4484 a 2210 4540 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2210 4540 a 0 TeXcolorgray 20 w Fx(starting)f(with)h(ro)n(w)e(\002rstRo)n(w) -5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4750 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4693 a SDict begin H.S end 515 4693 a 515 4693 a SDict begin 12 H.A end 515 4693 a 515 4693 a SDict begin [ /View [/XYZ H.V] /Dest (table.19) cvn H.B /DEST pdfmark end 515 4693 a 515 4796 2889 4 v 515 4796 V 515 4895 4 100 v 764 4865 a Ft(indata)p 1005 4895 V 59 w Fx(The)20 b(data)g(to)g(be)g(written.)p 3400 4895 V 515 4899 2889 4 v 515 4899 V 515 4998 4 100 v 755 4968 a Ft(nRows)p 1005 4998 V 60 w Fx(The)g(size)h(of)e(the)i(data)f(array)f(to)h(be)h (written)p 3400 4998 V 515 5002 2889 4 v 515 5002 V 515 5101 4 100 v 700 5071 a Ft(\002r)o(stRow)p 1005 5101 V 61 w Fx(The)f(\002rst)h(ro)n(w)e(to)i(be)f(written)p 3400 5101 V 515 5104 2889 4 v 515 5104 V 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 61 66 TeXDict begin 61 65 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.61) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(61)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.S end 515 523 a 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.R end 515 523 a 515 523 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a73d57c6cf6453ba5c934afa1cca64035) cvn H.B /DEST pdfmark end 515 523 a 0 TeXcolorgray 515 560 a SDict begin H.S end 515 560 a 515 560 a SDict begin 12 H.A end 515 560 a 515 560 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.20) cvn H.B /DEST pdfmark end 515 560 a 0.25 TeXcolorgray 147 x Fo(24.3.3.20)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h (CC\002ts::Column::write)24 b(\()37 b(const)20 b(std::vector)p Fu(<)g Fo(S)e Fu(>)g Fo(&)845 807 y Fk(indata,)36 b Fo(long)18 b Fk(\002r)o(stRo)o(w)m(,)35 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue) 36 b Fo(\))p 0 TeXcolorgray 515 991 a Fx(write)20 b(a)g(v)o(ector)e(of) h(v)n(alues)h(into)f(a)h(scalar)g(column)e(starting)h(with)h(\002rstRo) n(w)-5 b(,)20 b(replacing)e(elements)515 1091 y(equal)h(to)i(nullV)-9 b(alue)19 b(with)h(the)p 0 0 1 TeXcolorrgb 1430 1092 a SDict begin H.S end 1430 1092 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1601 1034 a SDict begin H.R end 1601 1034 a 1601 1091 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1601 1091 a 0 TeXcolorgray 21 w Fx(null)g(v)n(alue.)515 1238 y(If)d Ft(nullV)-9 b(alue)16 b Fx(is)i(not)g(0,)f(the)h(appropriate)p 0 0 1 TeXcolorrgb 1714 1239 a SDict begin H.S end 1714 1239 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1885 1181 a SDict begin H.R end 1885 1181 a 1885 1238 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1885 1238 a 0 TeXcolorgray 18 w Fx(null)f(v)n(alue)g (will)h(be)g(substituted)f(for)g(all)h(elements)515 1337 y(of)25 b Ft(indata)g Fx(equal)g(to)g Fp(\003)p Ft(nullV)-9 b(alue)p Fx(.)39 b(F)o(or)26 b(inte)o(ger)e(type)h(columns)g(there)g (must)h(be)g(a)g(pre-e)o(xisting)515 1437 y(TNULLn)i(k)o(e)o(yw)o(ord)f (to)j(de\002ne)e(the)p 0 0 1 TeXcolorrgb 1634 1438 a SDict begin H.S end 1634 1438 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1804 1381 a SDict begin H.R end 1804 1381 a 1804 1437 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1804 1437 a 0 TeXcolorgray 30 w Fx(null)h(v)n(alue,)i(otherwise)d(a)p 0 0 1 TeXcolorrgb 2643 1438 a SDict begin H.S end 2643 1438 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 2943 1381 a SDict begin H.R end 2943 1381 a 2943 1437 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 2943 1437 a 0 TeXcolorgray 29 w Fx(e)o(xception)g(is)515 1536 y(thro)n(wn.)40 b(F)o(or)25 b(\003oating)g(point)g(columns,)g(the) p 0 0 1 TeXcolorrgb 1885 1537 a SDict begin H.S end 1885 1537 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2055 1480 a SDict begin H.R end 2055 1480 a 2055 1536 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2055 1536 a 0 TeXcolorgray 27 w Fx(null)g(is)h(the)g (IEEE)f(NaN)h(\(Not-a-Number\))515 1636 y(v)n(alue.)e(See)d(the)f (c\002tsio)h(\002ts_write_colnull)d(function)h(documentation)e(for)i (more)h(details.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1838 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1781 a SDict begin H.S end 515 1781 a 515 1781 a SDict begin 12 H.A end 515 1781 a 515 1781 a SDict begin [ /View [/XYZ H.V] /Dest (table.20) cvn H.B /DEST pdfmark end 515 1781 a 515 1884 2889 4 v 515 1884 V 515 1983 4 100 v 764 1953 a Ft(indata)p 1005 1983 V 59 w Fx(The)g(data)g(to)g(be)g (written.)p 3400 1983 V 515 1987 2889 4 v 515 1987 V 515 2086 4 100 v 700 2056 a Ft(\002r)o(stRow)p 1005 2086 V 61 w Fx(The)g(\002rst)h(ro)n(w)e(to)i(be)f(written)p 3400 2086 V 515 2090 2889 4 v 515 2090 V 515 2289 4 200 v 663 2159 a Ft(nullV)-9 b(alue)p 1005 2289 V 58 w Fx(Pointer)26 b(to)h(the)g(v)n(alue)f(for)h(which)f(equi)n(v)n(alent)f Ft(indata)h Fx(elements)h(will)g(be)g(re-)1037 2259 y(placed)19 b(in)i(the)f(\002le)h(with)f(the)g(appropriate)p 0 0 1 TeXcolorrgb 2298 2260 a SDict begin H.S end 2298 2260 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2469 2203 a SDict begin H.R end 2469 2203 a 2469 2259 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2469 2259 a 0 TeXcolorgray 21 w Fx(null)g(v)n(alue.)p 3400 2289 4 200 v 515 2292 2889 4 v 515 2292 V 0 TeXcolorgray 515 2522 a SDict begin H.S end 515 2522 a 0 TeXcolorgray 0 TeXcolorgray 515 2522 a SDict begin H.R end 515 2522 a 515 2522 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ae1529c918f00ce00419647715ae510ac) cvn H.B /DEST pdfmark end 515 2522 a 0 TeXcolorgray 515 2559 a SDict begin H.S end 515 2559 a 515 2559 a SDict begin 12 H.A end 515 2559 a 515 2559 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.21) cvn H.B /DEST pdfmark end 515 2559 a 0.25 TeXcolorgray 147 x Fo(24.3.3.21)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)g Fo(v)n(oid)h (CC\002ts::Column::write)k(\()36 b(const)20 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)e Fu(>)h Fo(&)845 2806 y Fk(indata,)36 b Fo(long)18 b Fk(\002r)o(stRo)o(w)m(,)35 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)36 b Fo(\))p 0 TeXcolorgray 515 2990 a Fx(write)28 b(a)g(v)n(alarray)e(of)h(v)n(alues)h(into)f(a)h(scalar)g (column)f(starting)g(with)h(\002rstRo)n(w)-5 b(,)29 b(replacing)e(ele-) 515 3090 y(ments)20 b(equal)f(to)i(nullV)-9 b(alue)19 b(with)h(the)p 0 0 1 TeXcolorrgb 1649 3091 a SDict begin H.S end 1649 3091 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1820 3033 a SDict begin H.R end 1820 3033 a 1820 3090 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1820 3090 a 0 TeXcolorgray 21 w Fx(null)g(v)n(alue.)515 3237 y(If)d Ft(nullV)-9 b(alue)16 b Fx(is)i(not)g(0,)f(the)h(appropriate)p 0 0 1 TeXcolorrgb 1714 3238 a SDict begin H.S end 1714 3238 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1885 3180 a SDict begin H.R end 1885 3180 a 1885 3237 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1885 3237 a 0 TeXcolorgray 18 w Fx(null)f(v)n(alue)g (will)h(be)g(substituted)f(for)g(all)h(elements)515 3336 y(of)25 b Ft(indata)g Fx(equal)g(to)g Fp(\003)p Ft(nullV)-9 b(alue)p Fx(.)39 b(F)o(or)26 b(inte)o(ger)e(type)h(columns)g(there)g (must)h(be)g(a)g(pre-e)o(xisting)515 3436 y(TNULLn)i(k)o(e)o(yw)o(ord)f (to)j(de\002ne)e(the)p 0 0 1 TeXcolorrgb 1634 3437 a SDict begin H.S end 1634 3437 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1804 3380 a SDict begin H.R end 1804 3380 a 1804 3436 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1804 3436 a 0 TeXcolorgray 30 w Fx(null)h(v)n(alue,)i(otherwise)d(a)p 0 0 1 TeXcolorrgb 2643 3437 a SDict begin H.S end 2643 3437 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 2943 3380 a SDict begin H.R end 2943 3380 a 2943 3436 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 2943 3436 a 0 TeXcolorgray 29 w Fx(e)o(xception)g(is)515 3535 y(thro)n(wn.)40 b(F)o(or)25 b(\003oating)g(point)g(columns,)g(the) p 0 0 1 TeXcolorrgb 1885 3536 a SDict begin H.S end 1885 3536 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2055 3479 a SDict begin H.R end 2055 3479 a 2055 3535 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2055 3535 a 0 TeXcolorgray 27 w Fx(null)g(is)h(the)g (IEEE)f(NaN)h(\(Not-a-Number\))515 3635 y(v)n(alue.)e(See)d(the)f (c\002tsio)h(\002ts_write_colnull)d(function)h(documentation)e(for)i (more)h(details.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3837 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3780 a SDict begin H.S end 515 3780 a 515 3780 a SDict begin 12 H.A end 515 3780 a 515 3780 a SDict begin [ /View [/XYZ H.V] /Dest (table.21) cvn H.B /DEST pdfmark end 515 3780 a 515 3883 2889 4 v 515 3883 V 515 3982 4 100 v 764 3952 a Ft(indata)p 1005 3982 V 59 w Fx(The)g(data)g(to)g(be)g (written.)p 3400 3982 V 515 3985 2889 4 v 515 3985 V 515 4085 4 100 v 700 4055 a Ft(\002r)o(stRow)p 1005 4085 V 61 w Fx(The)g(\002rst)h(ro)n(w)e(to)i(be)f(written)p 3400 4085 V 515 4088 2889 4 v 515 4088 V 515 4288 4 200 v 663 4158 a Ft(nullV)-9 b(alue)p 1005 4288 V 58 w Fx(Pointer)26 b(to)h(the)g(v)n(alue)f(for)h(which)f(equi)n(v)n(alent)f Ft(indata)h Fx(elements)h(will)g(be)g(re-)1037 4258 y(placed)19 b(in)i(the)f(\002le)h(with)f(the)g(appropriate)p 0 0 1 TeXcolorrgb 2298 4259 a SDict begin H.S end 2298 4259 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2469 4202 a SDict begin H.R end 2469 4202 a 2469 4258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2469 4258 a 0 TeXcolorgray 21 w Fx(null)g(v)n(alue.)p 3400 4288 4 200 v 515 4291 2889 4 v 515 4291 V 0 TeXcolorgray 515 4520 a SDict begin H.S end 515 4520 a 0 TeXcolorgray 0 TeXcolorgray 515 4520 a SDict begin H.R end 515 4520 a 515 4520 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_acac40215c2eab8f9db13683536a9ea71) cvn H.B /DEST pdfmark end 515 4520 a 0 TeXcolorgray 515 4558 a SDict begin H.S end 515 4558 a 515 4558 a SDict begin 12 H.A end 515 4558 a 515 4558 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.22) cvn H.B /DEST pdfmark end 515 4558 a 0.25 TeXcolorgray 146 x Fo(24.3.3.22)75 b(template)p Fu(<)p Fo(typename)21 b(S)c Fu(>)g Fo(v)n(oid)i (CC\002ts::Column::write)j(\()36 b(S)17 b Fp(\003)g Fk(indata,)36 b Fo(long)19 b Fk(nRo)o(ws,)36 b Fo(long)845 4804 y Fk(\002r)o(stRo)o (w)m(,)f Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)36 b Fo(\))p 0 TeXcolorgray 515 4988 a Fx(write)20 b(a)h(C)g(array)e(into)h (a)h(scalar)p 0 0 1 TeXcolorrgb 1453 4989 a SDict begin H.S end 1453 4989 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1721 4932 a SDict begin H.R end 1721 4932 a 1721 4988 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1721 4988 a 0 TeXcolorgray Fx(,)f(processing)f(unde\002ned)f(v)n(alues.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 62 67 TeXDict begin 62 66 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.62) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(62)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.22) cvn H.B /DEST pdfmark end 515 436 a 515 539 2889 4 v 515 539 V 515 639 4 100 v 764 609 a Ft(indata)p 1005 639 V 59 w Fx(The)20 b(data)g(to)g(be)g (written.)p 3400 639 V 515 642 2889 4 v 515 642 V 515 742 4 100 v 755 712 a Ft(nRows)p 1005 742 V 60 w Fx(The)g(size)h(of)e (the)i(data)f(array)f(to)h(be)h(written)p 3400 742 V 515 745 2889 4 v 515 745 V 515 845 4 100 v 700 815 a Ft(\002r)o(stRow)p 1005 845 V 61 w Fx(The)f(\002rst)h(ro)n(w)e(to)i(be) f(written)p 3400 845 V 515 848 2889 4 v 515 848 V 515 948 4 100 v 663 918 a Ft(nullV)-9 b(alue)p 1005 948 V 58 w Fx(Pointer)19 b(to)i(the)f(v)n(alue)g(in)g(the)g(input)g(array)f (to)h(be)g(set)h(to)g(unde\002ned)d(v)n(alues)p 3400 948 V 515 951 2889 4 v 515 951 V 0 TeXcolorgray 515 1181 a SDict begin H.S end 515 1181 a 0 TeXcolorgray 0 TeXcolorgray 515 1181 a SDict begin H.R end 515 1181 a 515 1181 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a9fc84f8c9cfc7aa45584f6115356bf81) cvn H.B /DEST pdfmark end 515 1181 a 0 TeXcolorgray 515 1218 a SDict begin H.S end 515 1218 a 515 1218 a SDict begin 12 H.A end 515 1218 a 515 1218 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.23) cvn H.B /DEST pdfmark end 515 1218 a 0.25 TeXcolorgray 147 x Fo(24.3.3.23)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)g Fo(v)n(oid)h (CC\002ts::Column::write)k(\()36 b(const)20 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)e Fu(>)h Fo(&)845 1465 y Fk(indata,)36 b Fo(long)18 b Fk(nRo)o(ws,)35 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 1649 a Fx(write)20 b(a)h(v)n(alarray)d(of) i(v)n(alues)g(into)g(a)h(range)e(of)h(ro)n(ws)g(of)g(a)g(v)o(ector)f (column.)515 1796 y(The)29 b(primary)g(use)h(of)f(this)i(is)f(for)g (\002x)o(ed)f(width)g(columns,)i(in)f(which)g(case)g(Column')-5 b(s)29 b(repeat)515 1895 y(attrib)n(ute)24 b(is)i(used)f(to)g (determine)f(ho)n(w)g(man)o(y)g(elements)h(are)g(written)f(to)i(each)e (ro)n(w;)j(if)f(indata.-)515 1995 y(size\(\))19 b(is)h(too)e(small)i (an)f(e)o(xception)e(will)j(be)f(thro)n(wn.)k(If)c(the)g(column)e(is)j (v)n(ariable)e(width,)h(the)g(call)515 2095 y(will)i(write)f (indata.size\(\)/nRo)n(ws)e(elements)i(to)h(each)f(ro)n(w)-5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2302 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2244 a SDict begin H.S end 515 2244 a 515 2244 a SDict begin 12 H.A end 515 2244 a 515 2244 a SDict begin [ /View [/XYZ H.V] /Dest (table.23) cvn H.B /DEST pdfmark end 515 2244 a 515 2347 2889 4 v 515 2347 V 515 2447 4 100 v 764 2417 a Ft(indata)p 1005 2447 V 59 w Fx(The)20 b(data)g(to)g(be)g(written.)p 3400 2447 V 515 2450 2889 4 v 515 2450 V 515 2550 4 100 v 755 2520 a Ft(nRows)p 1005 2550 V 60 w Fx(the)g(number)e(of)i(ro)n (ws)g(to)h(which)e(to)i(write)f(the)g(data.)p 3400 2550 V 515 2553 2889 4 v 515 2553 V 515 2653 4 100 v 700 2623 a Ft(\002r)o(stRow)p 1005 2653 V 61 w Fx(The)g(\002rst)h(ro)n(w)e(to)i (be)f(written)p 3400 2653 V 515 2656 2889 4 v 515 2656 V 0 TeXcolorgray 515 2886 a SDict begin H.S end 515 2886 a 0 TeXcolorgray 0 TeXcolorgray 515 2886 a SDict begin H.R end 515 2886 a 515 2886 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a17c0c46a47a511536db34be16230f0b5) cvn H.B /DEST pdfmark end 515 2886 a 0 TeXcolorgray 515 2923 a SDict begin H.S end 515 2923 a 515 2923 a SDict begin 12 H.A end 515 2923 a 515 2923 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.24) cvn H.B /DEST pdfmark end 515 2923 a 0.25 TeXcolorgray 147 x Fo(24.3.3.24)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::write)24 b(\()37 b(const)20 b(std::vector)p Fu(<)g Fo(S)e Fu(>)g Fo(&)845 3170 y Fk(indata,)36 b Fo(long)18 b Fk(nRo)o(ws,)35 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 3354 a Fx(write)20 b(a)h(v)o(ector)e(of)h(v)n(alues)f(into)h(a)h (range)e(of)h(ro)n(ws)g(of)g(a)h(v)o(ector)e(column)515 3501 y(The)29 b(primary)g(use)h(of)f(this)i(is)f(for)g(\002x)o(ed)f (width)g(columns,)i(in)f(which)g(case)g(Column')-5 b(s)29 b(repeat)515 3600 y(attrib)n(ute)24 b(is)i(used)f(to)g(determine)f(ho)n (w)g(man)o(y)g(elements)h(are)g(written)f(to)i(each)e(ro)n(w;)j(if)f (indata.-)515 3700 y(size\(\))19 b(is)h(too)e(small)i(an)f(e)o (xception)e(will)j(be)f(thro)n(wn.)k(If)c(the)g(column)e(is)j(v)n (ariable)e(width,)h(the)g(call)515 3800 y(will)i(write)f (indata.size\(\)/nRo)n(ws)e(elements)i(to)h(each)f(ro)n(w)-5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4007 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3949 a SDict begin H.S end 515 3949 a 515 3949 a SDict begin 12 H.A end 515 3949 a 515 3949 a SDict begin [ /View [/XYZ H.V] /Dest (table.24) cvn H.B /DEST pdfmark end 515 3949 a 515 4052 2889 4 v 515 4052 V 515 4152 4 100 v 764 4122 a Ft(indata)p 1005 4152 V 59 w Fx(The)20 b(data)g(to)g(be)g(written.)p 3400 4152 V 515 4155 2889 4 v 515 4155 V 515 4255 4 100 v 755 4225 a Ft(nRows)p 1005 4255 V 60 w Fx(the)g(number)e(of)i(ro)n (ws)g(to)h(which)e(to)i(write)f(the)g(data.)p 3400 4255 V 515 4258 2889 4 v 515 4258 V 515 4358 4 100 v 700 4328 a Ft(\002r)o(stRow)p 1005 4358 V 61 w Fx(The)g(\002rst)h(ro)n(w)e(to)i (be)f(written)p 3400 4358 V 515 4361 2889 4 v 515 4361 V 0 TeXcolorgray 515 4591 a SDict begin H.S end 515 4591 a 0 TeXcolorgray 0 TeXcolorgray 515 4591 a SDict begin H.R end 515 4591 a 515 4591 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_aa7a896f7365af06ed76c8c77b013ee1e) cvn H.B /DEST pdfmark end 515 4591 a 0 TeXcolorgray 515 4628 a SDict begin H.S end 515 4628 a 515 4628 a SDict begin 12 H.A end 515 4628 a 515 4628 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.25) cvn H.B /DEST pdfmark end 515 4628 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 627 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 63 68 TeXDict begin 63 67 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.63) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(63)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.3.3.25)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)j(CC\002ts::Column::write)i(\() 37 b(S)17 b Fp(\003)h Fk(indata,)37 b Fo(long)20 b Fk(nElements,)845 623 y Fo(long)e Fk(nRo)o(ws,)35 b Fo(long)19 b Fk(\002r)o(stRo)o(w)34 b Fo(\))p 0 TeXcolorgray 515 807 a Fx(write)20 b(a)h(C)g(array)e(of)h (v)n(alues)g(into)g(a)g(range)g(of)f(ro)n(ws)i(of)e(a)i(v)o(ector)e (column)515 954 y(Details)30 b(are)f(as)g(for)g(v)o(ector)f(input;)33 b(only)28 b(dif)n(ference)f(is)j(the)f(need)g(to)g(supply)f(the)h(size) h(of)f(the)515 1053 y(C-array)-5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1263 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1206 a SDict begin H.S end 515 1206 a 515 1206 a SDict begin 12 H.A end 515 1206 a 515 1206 a SDict begin [ /View [/XYZ H.V] /Dest (table.25) cvn H.B /DEST pdfmark end 515 1206 a 515 1309 2889 4 v 515 1309 V 515 1409 4 100 v 764 1379 a Ft(indata)p 1005 1409 V 59 w Fx(The)20 b(data)g(to)g(be)g(written.)p 3400 1409 V 515 1412 2889 4 v 515 1412 V 515 1512 4 100 v 630 1482 a Ft(nElements)p 1005 1512 V 60 w Fx(The)g(size)h(of)e (indata)p 3400 1512 V 515 1515 2889 4 v 515 1515 V 515 1615 4 100 v 755 1585 a Ft(nRows)p 1005 1615 V 60 w Fx(the)h(number)e (of)i(ro)n(ws)g(to)h(which)e(to)i(write)f(the)g(data.)p 3400 1615 V 515 1618 2889 4 v 515 1618 V 515 1717 4 100 v 700 1688 a Ft(\002r)o(stRow)p 1005 1717 V 61 w Fx(The)g(\002rst)h(ro) n(w)e(to)i(be)f(written)p 3400 1717 V 515 1721 2889 4 v 515 1721 V 0 TeXcolorgray 515 1949 a SDict begin H.S end 515 1949 a 0 TeXcolorgray 0 TeXcolorgray 515 1949 a SDict begin H.R end 515 1949 a 515 1949 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a5690eb92353a1b887cc8746bd1578353) cvn H.B /DEST pdfmark end 515 1949 a 0 TeXcolorgray 515 1986 a SDict begin H.S end 515 1986 a 515 1986 a SDict begin 12 H.A end 515 1986 a 515 1986 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.26) cvn H.B /DEST pdfmark end 515 1986 a 0.25 TeXcolorgray 147 x Fo(24.3.3.26)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::write)k(\()36 b(const)20 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)e Fu(>)h Fo(&)845 2233 y Fk(indata,)36 b Fo(long)18 b Fk(nRo)o(ws,)35 b Fo(long)18 b Fk(\002r)o(stRo)o(w)m(,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 2417 a Fx(write)20 b(a)h(v)n(alarray)d(of)i(v)n(alues)g(into)g(a)h(range)e (of)h(ro)n(ws)g(of)g(a)g(v)o(ector)f(column.)515 2564 y(see)i(v)o(ersion)d(without)i(unde\002ned)e(processing)h(for)g (details.)p 0 TeXcolorgray 2285 2564 a SDict begin H.S end 2285 2564 a 0 TeXcolorgray 0 TeXcolorgray 2285 2564 a SDict begin H.R end 2285 2564 a 2285 2564 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a00111b943e40d3f9276094615093d16f) cvn H.B /DEST pdfmark end 2285 2564 a 0 TeXcolorgray 515 2619 a SDict begin H.S end 515 2619 a 515 2619 a SDict begin 12 H.A end 515 2619 a 515 2619 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.27) cvn H.B /DEST pdfmark end 515 2619 a 0.25 TeXcolorgray 129 x Fo(24.3.3.27)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::write)24 b(\()37 b(const)20 b(std::vector)p Fu(<)g Fo(S)e Fu(>)g Fo(&)845 2847 y Fk(indata,)36 b Fo(long)18 b Fk(nRo)o(ws,)35 b Fo(long)18 b Fk(\002r)o(stRo)o(w)m(,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 3032 a Fx(write)21 b(a)h(v)o(ector)e(of)h(v)n(alues)g(into)g(a)h (range)e(of)h(ro)n(ws)g(of)g(a)h(v)o(ector)e(column,)g(processing)g (unde\002ned)515 3131 y(v)n(alues)515 3278 y(see)h(v)o(ersion)d (without)i(unde\002ned)e(processing)h(for)g(details.)p 0 TeXcolorgray 2285 3278 a SDict begin H.S end 2285 3278 a 0 TeXcolorgray 0 TeXcolorgray 2285 3278 a SDict begin H.R end 2285 3278 a 2285 3278 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a3dbc65c7f0ea3589ee4f81ce217e319d) cvn H.B /DEST pdfmark end 2285 3278 a 0 TeXcolorgray 515 3334 a SDict begin H.S end 515 3334 a 515 3334 a SDict begin 12 H.A end 515 3334 a 515 3334 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.28) cvn H.B /DEST pdfmark end 515 3334 a 0.25 TeXcolorgray 128 x Fo(24.3.3.28)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)j(CC\002ts::Column::write)i(\()37 b(S)17 b Fp(\003)h Fk(indata,)37 b Fo(long)20 b Fk(nElements,)845 3562 y Fo(long)e Fk(nRo)o(ws,)35 b Fo(long)19 b Fk(\002r)o(stRo)o(w)m (,)35 b Fo(S)16 b Fp(\003)h Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 3746 a Fx(write)19 b(a)g(C)g(array)f(of)g(v)n(alues) h(into)f(a)h(range)f(of)g(ro)n(ws)h(of)f(a)h(v)o(ector)f(column,)f (processing)h(unde\002ned)515 3846 y(v)n(alues.)515 3993 y(see)j(v)o(ersion)d(without)i(unde\002ned)e(processing)h(for)g (details.)p 0 TeXcolorgray 2285 3993 a SDict begin H.S end 2285 3993 a 0 TeXcolorgray 0 TeXcolorgray 2285 3993 a SDict begin H.R end 2285 3993 a 2285 3993 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a246fc3a403b5d9a83e7c607381d7d2f8) cvn H.B /DEST pdfmark end 2285 3993 a 0 TeXcolorgray 515 4048 a SDict begin H.S end 515 4048 a 515 4048 a SDict begin 12 H.A end 515 4048 a 515 4048 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.29) cvn H.B /DEST pdfmark end 515 4048 a 0.25 TeXcolorgray 129 x Fo(24.3.3.29)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::write)k(\()36 b(const)20 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)e Fu(>)h Fo(&)845 4277 y Fk(indata,)36 b Fo(const)18 b(std::vector)p Fu(<)h Fo(long)f Fu(>)f Fo(&)g Fk(vectorLengths,)38 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 4461 a Fx(write)25 b(a)h(v)n(alarray)e(of)h(v)n(alues)g(into)h(a)g (column)e(with)h(speci\002ed)h(number)d(of)i(entries)h(written)f(per) 515 4560 y(ro)n(w)-5 b(.)515 4707 y(Data)26 b(are)g(written)g(into)f(v) o(ectorLengths.size\(\))e(ro)n(ws,)k(with)f(v)o(ectorLength[)l(n])g (elements)g(writ-)515 4807 y(ten)d(to)g(ro)n(w)g(n+\002rstRo)n(w)g(-1.) 34 b(Although)21 b(primarily)h(intended)g(for)h(wrapping)e(calls)j(to)f (multiple)515 4907 y(v)n(ariable-width)e(v)o(ector)h(column)f(ro)n(ws,) j(it)g(may)f(also)g(be)g(used)g(to)g(write)h(a)f(v)n(ariable)f(number)g (of)515 5006 y(elements)e(to)g(\002x)o(ed-width)e(column)h(ro)n(ws.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 64 69 TeXDict begin 64 68 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.64) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.3)81 b(CC\002ts::Column)20 b(Class)h(Refer)o(ence)1400 b(64)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(When)15 b(writing)g(to)h(\002x)o(ed-width)e (column)g(ro)n(ws,)i(if)g(the)g(number)d(of)j(elements)f(sent)h(to)g(a) g(particular)515 623 y(ro)n(w)23 b(are)h(fe)n(wer)f(than)h(the)g (column')-5 b(s)23 b(repeat)g(v)n(alue,)h(the)g(remaining)e(elements)h (in)h(the)g(ro)n(w)g(will)515 722 y(not)c(be)g(modi\002ed.)515 869 y(Since)29 b(c\002tsio)g(does)g(not)g(support)e(null)i(v)n(alue)f (processing)g(for)g(v)n(ariable)g(width)h(columns)f(this)515 969 y(function)18 b(and)i(its)h(v)n(ariants)f(do)f(not)h(ha)n(v)o(e)g (v)o(ersion)f(which)g(process)h(unde\002ned)e(v)n(alues)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1179 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1121 a SDict begin H.S end 515 1121 a 515 1121 a SDict begin 12 H.A end 515 1121 a 515 1121 a SDict begin [ /View [/XYZ H.V] /Dest (table.26) cvn H.B /DEST pdfmark end 515 1121 a 515 1224 2889 4 v 515 1224 V 515 1324 4 100 v 764 1294 a Ft(indata)p 1005 1324 V 59 w Fx(The)i(data)g(to)g(be)g(written)p 3400 1324 V 515 1327 2889 4 v 515 1327 V 515 1527 4 200 v 741 1397 a Ft(vector-)713 1497 y(Lengths)p 1005 1527 V 1037 1397 a Fx(the)g(number)e(of)i(elements)g(to)h(write)f(to)g(each) g(successi)n(v)o(e)g(ro)n(w)-5 b(.)p 3400 1527 V 515 1530 2889 4 v 515 1530 V 515 1630 4 100 v 700 1600 a Ft(\002r)o(stRow)p 1005 1630 V 61 w Fx(the)20 b(\002rst)h(ro)n(w)f(to)g (be)g(written.)p 3400 1630 V 515 1633 2889 4 v 515 1633 V 0 TeXcolorgray 515 1863 a SDict begin H.S end 515 1863 a 0 TeXcolorgray 0 TeXcolorgray 515 1863 a SDict begin H.R end 515 1863 a 515 1863 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_acf2fc78379fcf87368be58a5af5e17e6) cvn H.B /DEST pdfmark end 515 1863 a 0 TeXcolorgray 515 1900 a SDict begin H.S end 515 1900 a 515 1900 a SDict begin 12 H.A end 515 1900 a 515 1900 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.30) cvn H.B /DEST pdfmark end 515 1900 a 0.25 TeXcolorgray 147 x Fo(24.3.3.30)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::Column::write)24 b(\()37 b(const)20 b(std::vector)p Fu(<)g Fo(S)e Fu(>)g Fo(&)845 2147 y Fk(indata,)36 b Fo(const)18 b(std::vector)p Fu(<)h Fo(long)f Fu(>)f Fo(&)g Fk(vectorLengths,)38 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 2331 a Fx(write)18 b(a)h(v)o(ector)f(of)g(v)n(alues)g(into)g(a)h (column)e(with)i(speci\002ed)f(number)f(of)h(entries)g(written)h(per)f (ro)n(w)-5 b(.)515 2478 y(Intended)15 b(for)i(writing)g(a)h(v)n(arying) e(number)f(of)i(elements)h(to)f(multiple)g(ro)n(ws)g(in)h(a)g(v)o (ector)e(column,)515 2577 y(this)27 b(may)f(be)h(used)f(for)g(either)h (v)n(ariable)e(or)i(\002x)o(ed-width)e(columns.)43 b(See)27 b(the)g(indata)f(v)n(alarray)515 2677 y(v)o(ersion)19 b(of)h(this)g(function)f(for)g(a)i(complete)e(description.)p 0 TeXcolorgray 2222 2677 a SDict begin H.S end 2222 2677 a 0 TeXcolorgray 0 TeXcolorgray 2222 2677 a SDict begin H.R end 2222 2677 a 2222 2677 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_aba3909f84c581320091c0e360de2ae94) cvn H.B /DEST pdfmark end 2222 2677 a 0 TeXcolorgray 515 2732 a SDict begin H.S end 515 2732 a 515 2732 a SDict begin 12 H.A end 515 2732 a 515 2732 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.31) cvn H.B /DEST pdfmark end 515 2732 a 0.25 TeXcolorgray 129 x Fo(24.3.3.31)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)j(CC\002ts::Column::write)i(\()37 b(S)17 b Fp(\003)h Fk(indata,)37 b Fo(long)20 b Fk(nElements,)845 2961 y Fo(const)e(std::vector)p Fu(<)i Fo(long)e Fu(>)e Fo(&)i Fk(vectorLengths,)37 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 3145 a Fx(write)18 b(a)g(C-array)f(of)g(v) n(alues)h(of)f(size)i(nElements)e(into)g(a)i(v)o(ector)d(column)h(with) h(speci\002ed)f(number)515 3245 y(of)j(entries)g(written)g(per)f(ro)n (w)-5 b(.)515 3392 y(Intended)15 b(for)i(writing)g(a)h(v)n(arying)e (number)f(of)i(elements)h(to)f(multiple)g(ro)n(ws)g(in)h(a)g(v)o(ector) e(column,)515 3491 y(this)27 b(may)f(be)h(used)f(for)g(either)h(v)n (ariable)e(or)i(\002x)o(ed-width)e(columns.)43 b(See)27 b(the)g(indata)f(v)n(alarray)515 3591 y(v)o(ersion)19 b(of)h(this)g(function)f(for)g(a)i(complete)e(description.)p 0 TeXcolorgray 2222 3591 a SDict begin H.S end 2222 3591 a 0 TeXcolorgray 0 TeXcolorgray 2222 3591 a SDict begin H.R end 2222 3591 a 2222 3591 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_af3c3c6cda70971b8f88fba3409222f91) cvn H.B /DEST pdfmark end 2222 3591 a 0 TeXcolorgray 515 3646 a SDict begin H.S end 515 3646 a 515 3646 a SDict begin 12 H.A end 515 3646 a 515 3646 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.32) cvn H.B /DEST pdfmark end 515 3646 a 0.25 TeXcolorgray 129 x Fo(24.3.3.32)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)i(CC\002ts::Column::writeArra)o(ys)j(\()38 b(const)19 b(std::vector)p Fu(<)845 3875 y Fo(std::v)o(alarra)o(y)p Fu(<)f Fo(S)f Fu(>)g(>)f Fo(&)h Fk(indata,)36 b Fo(long)18 b Fk(\002r)o(stRo)o(w)35 b Fo(\))p 0 TeXcolorgray 515 4059 a Fx(write)20 b(a)h(v)o(ector)e(of)h(v)n(alarray)e(objects)i(to)h (the)f(column,)e(starting)i(at)h(ro)n(w)f(\002rstRo)n(w)g Fu(>)p Fx(=)g(1)515 4206 y(Intended)15 b(for)i(writing)g(a)h(v)n (arying)e(number)f(of)i(elements)h(to)f(multiple)g(ro)n(ws)g(in)h(a)g (v)o(ector)e(column,)515 4305 y(this)27 b(may)f(be)h(used)f(for)g (either)g(v)n(ariable)g(or)g(\002x)o(ed-width)f(columns.)43 b(When)27 b(writing)f(to)h(\002x)o(ed-)515 4405 y(width)c(column)f(ro)n (ws,)j(if)f(the)f(number)f(of)h(elements)h(sent)g(to)g(a)g(particular)e (ro)n(w)h(are)h(fe)n(wer)f(than)515 4505 y(the)d(column')-5 b(s)19 b(repeat)h(v)n(alue,)f(the)h(remaining)f(elements)g(in)i(the)f (ro)n(w)g(will)h(not)f(be)g(modi\002ed.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4715 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4657 a SDict begin H.S end 515 4657 a 515 4657 a SDict begin 12 H.A end 515 4657 a 515 4657 a SDict begin [ /View [/XYZ H.V] /Dest (table.27) cvn H.B /DEST pdfmark end 515 4657 a 515 4760 2889 4 v 515 4760 V 515 4860 4 100 v 764 4830 a Ft(indata)p 1005 4860 V 59 w Fx(The)g(data)g(to)g(be)g(written)p 3400 4860 V 515 4863 2889 4 v 515 4863 V 515 4963 4 100 v 700 4933 a Ft(\002r)o(stRow)p 1005 4963 V 61 w Fx(the)g(\002rst)h(ro) n(w)f(to)g(be)g(written.)p 3400 4963 V 515 4966 2889 4 v 515 4966 V 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 65 70 TeXDict begin 65 69 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.65) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.4)81 b (CC\002ts::Column::Insuf\002cientElements)20 b(Class)h(Refer)o(ence)616 b(65)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.S end 515 523 a 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.R end 515 523 a 515 523 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_ab4c9789b84aaf531fcccfa76e19e4fc4) cvn H.B /DEST pdfmark end 515 523 a 0 TeXcolorgray 515 560 a SDict begin H.S end 515 560 a 515 560 a SDict begin 12 H.A end 515 560 a 515 560 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.33) cvn H.B /DEST pdfmark end 515 560 a 0.25 TeXcolorgray 147 x Fo(24.3.3.33)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)i (CC\002ts::Column::writeArra)o(ys)j(\()38 b(const)19 b(std::vector)p Fu(<)845 807 y Fo(std::v)o(alarra)o(y)p Fu(<)f Fo(S)f Fu(>)g(>)f Fo(&)h Fk(indata,)36 b Fo(long)18 b Fk(\002r)o(stRo)o(w)m(,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue) 35 b Fo(\))p 0 TeXcolorgray 515 991 a Fx(write)26 b(a)h(v)o(ector)f(of) g(v)n(alarray)f(objects)h(to)g(the)h(column,)f(starting)g(at)h(ro)n(w)f (\002rstRo)n(w)h Fu(>)p Fx(=)g(1,)h(pro-)515 1091 y(cessing)20 b(unde\002ned)e(v)n(alues)515 1238 y(see)j(v)o(ersion)d(without)i (unde\002ned)e(processing)h(for)g(details.)p 0 TeXcolorgray 2285 1238 a SDict begin H.S end 2285 1238 a 0 TeXcolorgray 0 TeXcolorgray 2285 1238 a SDict begin H.R end 2285 1238 a 2285 1238 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_a3329c1be8b0491661be582b59710ba32) cvn H.B /DEST pdfmark end 2285 1238 a 0 TeXcolorgray 515 1293 a SDict begin H.S end 515 1293 a 515 1293 a SDict begin 12 H.A end 515 1293 a 515 1293 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.3.3.34) cvn H.B /DEST pdfmark end 515 1293 a 0.25 TeXcolorgray 129 x Fo(24.3.3.34)75 b(doub)o(le)19 b(CC\002ts::Column::z)q(er)o(o)j(\()68 b(\))18 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 1606 a Fx(get)20 b(TZEROn)g(v)n(alue)515 1753 y(TZEROn)f(is)j(an)e (inte)o(ger)f(of)n(fset)h(used)f(in)i(the)f(implementation)e(of)i (unsigned)e(data)515 1900 y(The)i(documentation)d(for)i(this)i(class)g (w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 2113 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 2221 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 652 2329 a(\225)p 0 TeXcolorgray 41 w(ColumnT)-6 b(.h)p 0 TeXcolorgray 515 2542 a SDict begin H.S end 515 2542 a 0 TeXcolorgray 0 TeXcolorgray 515 2542 a SDict begin H.R end 515 2542 a 515 2542 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InsufficientElements) cvn H.B /DEST pdfmark end 515 2542 a 0 TeXcolorgray 515 2664 a SDict begin H.S end 515 2664 a 515 2664 a SDict begin 12 H.A end 515 2664 a 515 2664 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.4) cvn H.B /DEST pdfmark end 515 2664 a 0.25 TeXcolorgray 163 x Fq(24.4)89 b(CC\002ts::Column::Insuf\002cientElements)26 b(Class)21 b(Ref)o(erence)p 0 TeXcolorgray 515 3030 a Fx(Exception)d(thro)n(wn)h(if)i(the)f(data)g(supplied)f(for)g(a)i (write)f(operation)f(is)i(less)g(than)f(declared.)515 3177 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 3324 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::Column::Insuf)n (\002cientElements:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1300 3922 a @beginspecial 0 @llx 0 @lly 500 @urx 182.648407 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1InsufficientElements.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 182.648402 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.737500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::InsufficientElements) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::InsufficientElements) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 4273 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 4330 a SDict begin H.S end 515 4330 a 515 4330 a SDict begin 12 H.A end 515 4330 a 515 4330 a SDict begin [ /View [/XYZ H.V] /Dest (section*.12) cvn H.B /DEST pdfmark end 515 4330 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 4462 a Fx(\225)p 0 0 1 TeXcolorrgb 722 4463 a SDict begin H.S end 722 4463 a 0 0 1 TeXcolorrgb -1 x Fx(Insuf)n(\002cientElements)p 0 0 1 TeXcolorrgb 1407 4406 a SDict begin H.R end 1407 4406 a 1407 4462 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InsufficientElements_adcff54790608d00d99a0875aca20d637) cvn H.B /ANN pdfmark end 1407 4462 a 0 TeXcolorgray 21 w Fx(\(const)i(String)g(&msg,)f(bool)g (silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 4587 a Fl(Exception)h(ctor)-8 b(,)18 b(pr)m(e\002xes)i(the)e(string)h("F)m (itsErr)m(or:)j(not)d(enough)h(elements)f(supplied)h(for)e(write)840 4678 y(oper)o(ation:)25 b(")19 b(befor)m(e)h(the)f(speci\002c)h(messa)o (g)o(e)o(.)515 4815 y SDict begin H.S end 515 4815 a 515 4815 a SDict begin 12 H.A end 515 4815 a 515 4815 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.4.1) cvn H.B /DEST pdfmark end 515 4815 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 440 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 66 71 TeXDict begin 66 70 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.66) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.5)81 b(CC\002ts::Column::In)m(v)o (alidDataT)-6 b(ype)17 b(Class)k(Refer)o(ence)751 b(66)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.4.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 726 a Fx(Exception)g(thro)n(wn)h(if)i(the)f(data)g(supplied)f(for)g(a)i (write)f(operation)f(is)i(less)g(than)f(declared.)515 873 y(This)c(circumstance)g(generates)f(an)i(e)o(xception)d(to)j(a)n(v) n(oid)f(une)o(xpected)e(beha)n(viour)h(after)h(the)g(write)515 972 y(operation)i(is)j(completed.)j(It)c(can)g(be)g(a)n(v)n(oided)f(by) h(resizing)g(the)g(input)f(array)h(appropriately)-5 b(.)515 1112 y SDict begin H.S end 515 1112 a 515 1112 a SDict begin 12 H.A end 515 1112 a 515 1112 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.4.2) cvn H.B /DEST pdfmark end 515 1112 a 0.25 TeXcolorgray 129 x Fo(24.4.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1444 a SDict begin H.S end 515 1444 a 0 TeXcolorgray 0 TeXcolorgray 515 1444 a SDict begin H.R end 515 1444 a 515 1444 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InsufficientElements_adcff54790608d00d99a0875aca20d637) cvn H.B /DEST pdfmark end 515 1444 a 0 TeXcolorgray 515 1481 a SDict begin H.S end 515 1481 a 515 1481 a SDict begin 12 H.A end 515 1481 a 515 1481 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.4.2.1) cvn H.B /DEST pdfmark end 515 1481 a 0.25 TeXcolorgray 147 x Fo(24.4.2.1)75 b (CC\002ts::Column::Insuf\002)q(cient)q(Elemen)q(ts:)q(:Insu)q(f\002)q (cient)q(Elemen)q(ts)23 b(\()35 b(const)19 b(String)f(&)g Fk(msg,)35 b Fo(bool)811 1727 y Fk(silent)18 b(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 1912 a Fx(Exception)22 b(ctor)m(,)i (pre\002x)o(es)f(the)g(string)h("FitsError:)32 b(not)23 b(enough)f(elements)h(supplied)g(for)g(write)515 2011 y(operation:)g(")e(before)e(the)h(speci\002c)g(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2221 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2164 a SDict begin H.S end 515 2164 a 515 2164 a SDict begin 12 H.A end 515 2164 a 515 2164 a SDict begin [ /View [/XYZ H.V] /Dest (table.28) cvn H.B /DEST pdfmark end 515 2164 a 515 2267 2889 4 v 515 2267 V 515 2367 4 100 v 843 2337 a Ft(msg)p 1005 2367 V 60 w Fx(A)h(speci\002c)f(diagnostic)f(message,)h(usually)f(the)i (column)d(name)p 3400 2367 V 515 2370 2889 4 v 515 2370 V 515 2470 4 100 v 796 2440 a Ft(silent)p 1005 2470 V 61 w Fx(if)i(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 2441 a SDict begin H.S end 2047 2441 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 2383 a SDict begin H.R end 2714 2383 a 2714 2440 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 2440 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 2470 4 100 v 515 2473 2889 4 v 515 2473 V 515 2697 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 2906 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 3013 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 3222 a SDict begin H.S end 515 3222 a 0 TeXcolorgray 0 TeXcolorgray 515 3222 a SDict begin H.R end 515 3222 a 515 3222 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidDataType) cvn H.B /DEST pdfmark end 515 3222 a 0 TeXcolorgray 515 3343 a SDict begin H.S end 515 3343 a 515 3343 a SDict begin 12 H.A end 515 3343 a 515 3343 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.5) cvn H.B /DEST pdfmark end 515 3343 a 0.25 TeXcolorgray 163 x Fq(24.5)89 b(CC\002ts::Column::In)m(v)o(alidDataT)l(ype)24 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 3709 a Fx(Exception)d(thro) n(wn)h(for)h(in)m(v)n(alid)f(data)h(type)f(inputs.)515 3856 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 4003 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::Column::In)m(v)n (alidDataT)-7 b(ype:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1359 4599 a @beginspecial 0 @llx 0 @lly 500 @urx 201.005020 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1InvalidDataType.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 201.005025 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.487500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::InvalidDataType) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::InvalidDataType) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 4949 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 5006 a SDict begin H.S end 515 5006 a 515 5006 a SDict begin 12 H.A end 515 5006 a 515 5006 a SDict begin [ /View [/XYZ H.V] /Dest (section*.13) cvn H.B /DEST pdfmark end 515 5006 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 515 5156 2865 4 v 249 x Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 0 1 TeXcolorrgb eop end %%Page: 67 72 TeXDict begin 67 71 bop 0 0 1 TeXcolorrgb 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.67) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.6)81 b(CC\002ts::Column::In)m(v)o (alidNumberOfRo)o(ws)18 b(Class)j(Refer)o(ence)515 b(67)p 515 236 2865 4 v 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 523 a Fx(\225)p 0 0 1 TeXcolorrgb 722 541 a SDict begin H.S end 722 541 a 0 0 1 TeXcolorrgb -18 x Fx(In)m(v)n(alidDataT)-7 b(ype)p 0 0 1 TeXcolorrgb 1273 467 a SDict begin H.R end 1273 467 a 1273 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidDataType_abbb81fc1f80e951dfd27126b066e9444) cvn H.B /ANN pdfmark end 1273 523 a 0 TeXcolorgray 21 w Fx(\(const)19 b(String)h(&str=string\(\),)e (bool)i(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 648 a Fl(Exception)15 b(ctor)-8 b(,)15 b(pr)m(e\002xes)h(the)f (string)f("F)m(itsErr)m(or:)20 b(Incorr)m(ect)c(data)f(type:)21 b(")15 b(befor)m(e)g(the)g(speci\002c)840 739 y(messa)o(g)o(e)o(.)515 876 y SDict begin H.S end 515 876 a 515 876 a SDict begin 12 H.A end 515 876 a 515 876 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.5.1) cvn H.B /DEST pdfmark end 515 876 a 0.25 TeXcolorgray 131 x Fo(24.5.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 1210 a Fx(Exception)g(thro)n(wn)h (for)h(in)m(v)n(alid)f(data)h(type)f(inputs.)515 1357 y(This)33 b(e)o(xception)d(is)k(thro)n(wn)d(if)i(the)g(user)f(requests) h(an)f(implicit)h(data)f(type)g(con)m(v)o(ersion)e(to)j(a)515 1457 y(datatype)19 b(that)h(is)h(not)f(one)g(of)g(the)g(supported)e (types)i(\(see)g(\002tsio.h)h(for)e(details\).)515 1596 y SDict begin H.S end 515 1596 a 515 1596 a SDict begin 12 H.A end 515 1596 a 515 1596 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.5.2) cvn H.B /DEST pdfmark end 515 1596 a 0.25 TeXcolorgray 129 x Fo(24.5.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1928 a SDict begin H.S end 515 1928 a 0 TeXcolorgray 0 TeXcolorgray 515 1928 a SDict begin H.R end 515 1928 a 515 1928 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidDataType_abbb81fc1f80e951dfd27126b066e9444) cvn H.B /DEST pdfmark end 515 1928 a 0 TeXcolorgray 515 1965 a SDict begin H.S end 515 1965 a 515 1965 a SDict begin 12 H.A end 515 1965 a 515 1965 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.5.2.1) cvn H.B /DEST pdfmark end 515 1965 a 0.25 TeXcolorgray 147 x Fo(24.5.2.1)75 b (CC\002ts::Column::In)n(v)o(alidDataT)m(yp)q(e::)q(In)n(v)o(alidDat)q (aT)m(ype)24 b(\()35 b(const)19 b(String)f(&)g Fk(str)f(=)g Fr(string\(\))p Fk(,)811 2212 y Fo(bool)h Fk(silent)g(=)f Fr(true)34 b Fo(\))p 0 TeXcolorgray 515 2396 a Fx(Exception)19 b(ctor)m(,)h(pre\002x)o(es)g(the)g(string)h("FitsError:)26 b(Incorrect)18 b(data)j(type:)26 b(")21 b(before)f(the)g(speci\002c)515 2496 y(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2706 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2648 a SDict begin H.S end 515 2648 a 515 2648 a SDict begin 12 H.A end 515 2648 a 515 2648 a SDict begin [ /View [/XYZ H.V] /Dest (table.29) cvn H.B /DEST pdfmark end 515 2648 a 515 2751 2889 4 v 515 2751 V 515 2851 4 100 v 889 2821 a Ft(str)p 1005 2851 V 61 w Fx(A)h(speci\002c)f (diagnostic)f(message)p 3400 2851 V 515 2854 2889 4 v 515 2854 V 515 2954 4 100 v 796 2924 a Ft(silent)p 1005 2954 V 61 w Fx(if)h(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 2925 a SDict begin H.S end 2047 2925 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 2868 a SDict begin H.R end 2714 2868 a 2714 2924 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 2924 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 2954 4 100 v 515 2957 2889 4 v 515 2957 V 515 3187 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 3400 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 3508 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 3721 a SDict begin H.S end 515 3721 a 0 TeXcolorgray 0 TeXcolorgray 515 3721 a SDict begin H.R end 515 3721 a 515 3721 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidNumberOfRows) cvn H.B /DEST pdfmark end 515 3721 a 0 TeXcolorgray 515 3843 a SDict begin H.S end 515 3843 a 515 3843 a SDict begin 12 H.A end 515 3843 a 515 3843 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.6) cvn H.B /DEST pdfmark end 515 3843 a 0.25 TeXcolorgray 163 x Fq(24.6)89 b(CC\002ts::Column::In)m(v)o(alidNumberOfRo)o(ws)25 b(Class)c(Ref)o(erence)p 0 TeXcolorgray 515 4209 a Fx(Exception)c(thro) n(wn)g(if)i(user)f(enters)h(a)g(non-positi)n(v)o(e)d(number)h(for)h (the)g(number)f(of)h(ro)n(ws)h(to)g(write.)515 4356 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 4503 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::Column::In)m(v)n (alidNumberOfRo)n(ws:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 68 73 TeXDict begin 68 72 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.68) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.7)81 b(CC\002ts::Column::In)m(v)o(alidRo)o (wNumber)19 b(Class)i(Refer)o(ence)639 b(68)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1259 912 a @beginspecial 0 @llx 0 @lly 500 @urx 171.673813 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1InvalidNumberOfRows.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 171.673820 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.912500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::InvalidNumberOfRows) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::InvalidNumberOfRows) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1264 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 1321 a SDict begin H.S end 515 1321 a 515 1321 a SDict begin 12 H.A end 515 1321 a 515 1321 a SDict begin [ /View [/XYZ H.V] /Dest (section*.14) cvn H.B /DEST pdfmark end 515 1321 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1453 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1454 a SDict begin H.S end 722 1454 a 0 0 1 TeXcolorrgb -1 x Fx(In)m(v)n(alidNumberOfRo)n(ws)p 0 0 1 TeXcolorrgb 1499 1396 a SDict begin H.R end 1499 1396 a 1499 1453 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidNumberOfRows_a7cc6e2ce77b7c09c38fbb1d05a87f333) cvn H.B /ANN pdfmark end 1499 1453 a 0 TeXcolorgray 21 w Fx(\(size_t)i(number)m(,)d(bool)j (silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 1577 a Fl(Exception)h(ctor)-8 b(,)19 b(pr)m(e\002xes)i(the)f(string)f("F)m (its)g(Err)m(or:)24 b(number)d(of)e(r)m(ows)h(to)f(write)g(must)h(be)g (posi-)840 1669 y(tive)f(")g(befor)m(e)h(the)f(speci\002c)h(messa)o(g)o (e)o(.)515 1805 y SDict begin H.S end 515 1805 a 515 1805 a SDict begin 12 H.A end 515 1805 a 515 1805 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.6.1) cvn H.B /DEST pdfmark end 515 1805 a 0.25 TeXcolorgray 132 x Fo(24.6.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2140 a Fx(Exception)f(thro)n(wn)g(if)i(user)f(enters)h(a)g(non-positi)n(v)o (e)d(number)h(for)h(the)g(number)f(of)h(ro)n(ws)h(to)g(write.)515 2279 y SDict begin H.S end 515 2279 a 515 2279 a SDict begin 12 H.A end 515 2279 a 515 2279 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.6.2) cvn H.B /DEST pdfmark end 515 2279 a 0.25 TeXcolorgray 129 x Fo(24.6.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2611 a SDict begin H.S end 515 2611 a 0 TeXcolorgray 0 TeXcolorgray 515 2611 a SDict begin H.R end 515 2611 a 515 2611 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidNumberOfRows_a7cc6e2ce77b7c09c38fbb1d05a87f333) cvn H.B /DEST pdfmark end 515 2611 a 0 TeXcolorgray 515 2648 a SDict begin H.S end 515 2648 a 515 2648 a SDict begin 12 H.A end 515 2648 a 515 2648 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.6.2.1) cvn H.B /DEST pdfmark end 515 2648 a 0.25 TeXcolorgray 147 x Fo(24.6.2.1)75 b (CC\002ts::Column::In)n(v)o(alidNum)q(berOfRows::In)o(v)o(alidNu)q(mb)q (erOfRo)o(ws)24 b(\()36 b(siz)q(e)p 2842 2795 23 4 v 26 w(t)18 b Fk(n)o(umber)l(,)37 b Fo(bool)811 2895 y Fk(silent)18 b(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 3079 a Fx(Exception)15 b(ctor)m(,)i(pre\002x)o(es)f(the)i(string)e ("Fits)j(Error:)j(number)15 b(of)i(ro)n(ws)g(to)h(write)f(must)g(be)g (positi)n(v)o(e)515 3179 y(")j(before)f(the)h(speci\002c)h(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3389 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3331 a SDict begin H.S end 515 3331 a 515 3331 a SDict begin 12 H.A end 515 3331 a 515 3331 a SDict begin [ /View [/XYZ H.V] /Dest (table.30) cvn H.B /DEST pdfmark end 515 3331 a 515 3434 2889 4 v 515 3434 V 515 3534 4 100 v 723 3504 a Ft(number)p 1005 3534 V 59 w Fx(The)f(number)e(of)i(ro)n(ws)g(entered.)p 3400 3534 V 515 3537 2889 4 v 515 3537 V 515 3637 4 100 v 796 3607 a Ft(silent)p 1005 3637 V 61 w Fx(if)g(true,)g(print)g (message)g(whether)p 0 0 1 TeXcolorrgb 2047 3608 a SDict begin H.S end 2047 3608 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 3551 a SDict begin H.R end 2714 3551 a 2714 3607 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 3607 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 3637 4 100 v 515 3640 2889 4 v 515 3640 V 515 3859 a(The)g(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from) g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4063 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 4169 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 4374 a SDict begin H.S end 515 4374 a 0 TeXcolorgray 0 TeXcolorgray 515 4374 a SDict begin H.R end 515 4374 a 515 4374 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidRowNumber) cvn H.B /DEST pdfmark end 515 4374 a 0 TeXcolorgray 515 4493 a SDict begin H.S end 515 4493 a 515 4493 a SDict begin 12 H.A end 515 4493 a 515 4493 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.7) cvn H.B /DEST pdfmark end 515 4493 a 0.25 TeXcolorgray 163 x Fq(24.7)89 b(CC\002ts::Column::In) m(v)o(alidRo)o(wNumber)25 b(Class)20 b(Ref)o(erence)p 0 TeXcolorgray 515 4859 a Fx(Exception)e(thro)n(wn)h(on)h(attempting)f (to)h(read)g(a)g(ro)n(w)g(number)e(be)o(yond)g(the)j(end)e(of)h(a)h (table.)515 5006 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 69 74 TeXDict begin 69 73 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.69) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.8)81 b(CC\002ts::Column::In)m(v)o(alidRo)o (wP)o(arameter)17 b(Class)k(Refer)o(ence)557 b(69)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::Column::In)m(v)n(alidRo)n(wNumber:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1318 1121 a @beginspecial 0 @llx 0 @lly 500 @urx 187.793427 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1InvalidRowNumber.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 187.793427 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.662500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::InvalidRowNumber) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::InvalidRowNumber) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1473 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 1529 a SDict begin H.S end 515 1529 a 515 1529 a SDict begin 12 H.A end 515 1529 a 515 1529 a SDict begin [ /View [/XYZ H.V] /Dest (section*.15) cvn H.B /DEST pdfmark end 515 1529 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1662 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1663 a SDict begin H.S end 722 1663 a 0 0 1 TeXcolorrgb -1 x Fx(In)m(v)n(alidRo)n(wNumber)p 0 0 1 TeXcolorrgb 1379 1605 a SDict begin H.R end 1379 1605 a 1379 1662 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidRowNumber_a3d6db55872b6cdcdb5d18bd7014f1c91) cvn H.B /ANN pdfmark end 1379 1662 a 0 TeXcolorgray 21 w Fx(\(const)h(String)h(&diag,)f(bool)g (silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 1786 a Fl(Exception)d(ctor)-8 b(,)15 b(pr)m(e\002xes)h(the)f(string)g("F)m (itsErr)m(or:)20 b(In)m(valid)c(Row)e(Number)i(-)e(Column:)22 b(")15 b(befor)m(e)840 1877 y(the)k(speci\002c)h(messa)o(g)o(e)o(.)515 2014 y SDict begin H.S end 515 2014 a 515 2014 a SDict begin 12 H.A end 515 2014 a 515 2014 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.7.1) cvn H.B /DEST pdfmark end 515 2014 a 0.25 TeXcolorgray 132 x Fo(24.7.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2349 a Fx(Exception)g(thro)n(wn)h (on)h(attempting)f(to)h(read)g(a)g(ro)n(w)g(number)e(be)o(yond)g(the)j (end)e(of)h(a)h(table.)515 2488 y SDict begin H.S end 515 2488 a 515 2488 a SDict begin 12 H.A end 515 2488 a 515 2488 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.7.2) cvn H.B /DEST pdfmark end 515 2488 a 0.25 TeXcolorgray 129 x Fo(24.7.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2820 a SDict begin H.S end 515 2820 a 0 TeXcolorgray 0 TeXcolorgray 515 2820 a SDict begin H.R end 515 2820 a 515 2820 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidRowNumber_a3d6db55872b6cdcdb5d18bd7014f1c91) cvn H.B /DEST pdfmark end 515 2820 a 0 TeXcolorgray 515 2857 a SDict begin H.S end 515 2857 a 515 2857 a SDict begin 12 H.A end 515 2857 a 515 2857 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.7.2.1) cvn H.B /DEST pdfmark end 515 2857 a 0.25 TeXcolorgray 147 x Fo(24.7.2.1)75 b(CC\002ts::Column::In)n(v)o(alidRo)o(wNu)q(mb)q (er::In)o(v)o(alidRowNum)q(ber)24 b(\()36 b(const)20 b(String)f(&)f Fk(dia)o(g,)38 b Fo(bool)811 3104 y Fk(silent)18 b(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 3288 a Fx(Exception)17 b(ctor)m(,)i(pre\002x)o(es)g(the)g(string)g ("FitsError:)25 b(In)m(v)n(alid)17 b(Ro)n(w)j(Number)e(-)i(Column:)k(") c(before)515 3388 y(the)g(speci\002c)g(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3598 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3540 a SDict begin H.S end 515 3540 a 515 3540 a SDict begin 12 H.A end 515 3540 a 515 3540 a SDict begin [ /View [/XYZ H.V] /Dest (table.31) cvn H.B /DEST pdfmark end 515 3540 a 515 3643 2889 4 v 515 3643 V 515 3743 4 100 v 830 3713 a Ft(dia)o(g)p 1005 3743 V 59 w Fx(A)h(speci\002c)f(diagnostic)f(message,)h(usually)f (the)i(column)d(name.)p 3400 3743 V 515 3746 2889 4 v 515 3746 V 515 3846 4 100 v 796 3816 a Ft(silent)p 1005 3846 V 61 w Fx(if)i(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 3817 a SDict begin H.S end 2047 3817 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 3760 a SDict begin H.R end 2714 3760 a 2714 3816 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 3816 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 3846 4 100 v 515 3849 2889 4 v 515 3849 V 515 4047 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4235 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 4336 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 4524 a SDict begin H.S end 515 4524 a 0 TeXcolorgray 0 TeXcolorgray 515 4524 a SDict begin H.R end 515 4524 a 515 4524 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidRowParameter) cvn H.B /DEST pdfmark end 515 4524 a 0 TeXcolorgray 515 4640 a SDict begin H.S end 515 4640 a 515 4640 a SDict begin 12 H.A end 515 4640 a 515 4640 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.8) cvn H.B /DEST pdfmark end 515 4640 a 0.25 TeXcolorgray 163 x Fq(24.8)89 b(CC\002ts::Column::In)m(v)o(alidRo)o(wP)n(arameter)24 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 5006 a Fx(Exception)d(thro) n(wn)h(on)h(incorrect)f(ro)n(w)g(writing)h(request.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 70 75 TeXDict begin 70 74 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.70) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.8)81 b(CC\002ts::Column::In)m(v)o(alidRo)o (wP)o(arameter)17 b(Class)k(Refer)o(ence)557 b(70)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 670 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::Column::In)m(v)n(alidRo)n(wP)o(arameter:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1277 1268 a @beginspecial 0 @llx 0 @lly 500 @urx 176.211456 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1InvalidRowParameter.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 176.211454 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.837500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::InvalidRowParameter) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::InvalidRowParameter) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1620 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 1676 a SDict begin H.S end 515 1676 a 515 1676 a SDict begin 12 H.A end 515 1676 a 515 1676 a SDict begin [ /View [/XYZ H.V] /Dest (section*.16) cvn H.B /DEST pdfmark end 515 1676 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1808 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1809 a SDict begin H.S end 722 1809 a 0 0 1 TeXcolorrgb -1 x Fx(In)m(v)n(alidRo)n(wP)o(arameter)p 0 0 1 TeXcolorrgb 1442 1752 a SDict begin H.R end 1442 1752 a 1442 1808 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1InvalidRowParameter_aaf877174a872100ca6d426d554fd73dd) cvn H.B /ANN pdfmark end 1442 1808 a 0 TeXcolorgray 21 w Fx(\(const)i(String)f(&diag,)g(bool)h (silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 1933 a Fl(Exception)i(ctor)-8 b(,)20 b(pr)m(e\002xes)i(the)f(string)g("F)m (itsErr)m(or:)26 b(r)m(ow)20 b(of)o(fset)g(or)h(length)h(incompatible)f (with)840 2024 y(column)f(declar)o(ation)g(")f(befor)m(e)h(the)f (speci\002c)h(messa)o(g)o(e)o(.)515 2161 y SDict begin H.S end 515 2161 a 515 2161 a SDict begin 12 H.A end 515 2161 a 515 2161 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.8.1) cvn H.B /DEST pdfmark end 515 2161 a 0.25 TeXcolorgray 132 x Fo(24.8.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2495 a Fx(Exception)g(thro)n(wn)h(on)h(incorrect)f(ro)n(w)g (writing)h(request.)515 2642 y(This)i(e)o(xception)d(is)k(thro)n(wn)e (if)h(the)f(user)h(requests)f(writing)g(more)g(data)h(than)f(a)h(\002x) o(ed)g(width)f(ro)n(w)515 2742 y(can)g(accommodate.)26 b(An)c(e)o(xception)d(is)j(thro)n(wn)f(rather)f(than)h(a)h(truncation)e (because)g(it)i(is)h(lik)o(ely)515 2842 y(that)d(the)g(user)g(will)h (not)f(otherwise)g(realize)g(that)g(data)g(loss)h(is)g(happening.)515 2981 y SDict begin H.S end 515 2981 a 515 2981 a SDict begin 12 H.A end 515 2981 a 515 2981 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.8.2) cvn H.B /DEST pdfmark end 515 2981 a 0.25 TeXcolorgray 129 x Fo(24.8.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3313 a SDict begin H.S end 515 3313 a 0 TeXcolorgray 0 TeXcolorgray 515 3313 a SDict begin H.R end 515 3313 a 515 3313 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1InvalidRowParameter_aaf877174a872100ca6d426d554fd73dd) cvn H.B /DEST pdfmark end 515 3313 a 0 TeXcolorgray 515 3350 a SDict begin H.S end 515 3350 a 515 3350 a SDict begin 12 H.A end 515 3350 a 515 3350 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.8.2.1) cvn H.B /DEST pdfmark end 515 3350 a 0.25 TeXcolorgray 147 x Fo(24.8.2.1)75 b (CC\002ts::Column::In)n(v)o(alidRo)o(wP)n(aram)q(eter::)q(In)n(v)o (alidR)q(o)o(wP)n(aramet)q(er)24 b(\()37 b(const)20 b(String)f(&)g Fk(dia)o(g,)811 3597 y Fo(bool)f Fk(silent)g(=)f Fr(true)34 b Fo(\))p 0 TeXcolorgray 515 3781 a Fx(Exception)24 b(ctor)m(,)i (pre\002x)o(es)f(the)g(string)h("FitsError:)35 b(ro)n(w)25 b(of)n(fset)g(or)h(length)f(incompatible)e(with)515 3881 y(column)c(declaration)f(")j(before)e(the)h(speci\002c)g(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4091 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4033 a SDict begin H.S end 515 4033 a 515 4033 a SDict begin 12 H.A end 515 4033 a 515 4033 a SDict begin [ /View [/XYZ H.V] /Dest (table.32) cvn H.B /DEST pdfmark end 515 4033 a 515 4136 2889 4 v 515 4136 V 515 4236 4 100 v 830 4206 a Ft(dia)o(g)p 1005 4236 V 59 w Fx(A)h(speci\002c)f(diagnostic)f(message,)h(usually)f (the)i(column)d(name)p 3400 4236 V 515 4239 2889 4 v 515 4239 V 515 4339 4 100 v 796 4309 a Ft(silent)p 1005 4339 V 61 w Fx(if)i(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 4310 a SDict begin H.S end 2047 4310 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 4253 a SDict begin H.R end 2714 4253 a 2714 4309 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 4309 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 4339 4 100 v 515 4342 2889 4 v 515 4342 V 515 4536 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4721 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 4822 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 5006 a SDict begin H.S end 515 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5006 a SDict begin H.R end 515 5006 a 515 5006 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1NoNullValue) cvn H.B /DEST pdfmark end 515 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 249 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 71 76 TeXDict begin 71 75 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.71) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.9)81 b(CC\002ts::Column::NoNullV)-8 b(alue)19 b(Class)i(Refer)o(ence)891 b(71)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.9) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fq(24.9)89 b(CC\002ts::Column::NoNullV)l(alue)25 b(Class)20 b(Ref)o(erence)p 0 TeXcolorgray 515 726 a Fx(Exception)29 b(thro)n(wn)g(if)i(a)g(null)f (v)n(alue)g(is)i(speci\002ed)e(without)g(support)f(from)h(e)o(xisting)g (column)515 826 y(header)-5 b(.)515 972 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 1119 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::Column::NoNullV)-9 b(alue:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1418 1718 a @beginspecial 0 @llx 0 @lly 500 @urx 223.463684 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1NoNullValue.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 223.463687 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.237500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::NoNullValue) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::NoNullValue) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2069 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 2126 a SDict begin H.S end 515 2126 a 515 2126 a SDict begin 12 H.A end 515 2126 a 515 2126 a SDict begin [ /View [/XYZ H.V] /Dest (section*.17) cvn H.B /DEST pdfmark end 515 2126 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2258 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2259 a SDict begin H.S end 722 2259 a 0 0 1 TeXcolorrgb -1 x Fx(NoNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1160 2202 a SDict begin H.R end 1160 2202 a 1160 2258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1NoNullValue_afadcc0dd8cfeee82c4286469fc006e67) cvn H.B /ANN pdfmark end 1160 2258 a 0 TeXcolorgray 21 w Fx(\(const)20 b(String)g(&diag,)f(bool)g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2382 a Fl(Exception)j(ctor)-8 b(,)22 b(pr)m(e\002xes)g(the)g(string)f("F)m(its)f(Err)m(or:)28 b(No)21 b(null)g(value)h(speci\002ed)h(for)e(column:)29 b(")840 2474 y(befor)m(e)20 b(the)f(speci\002c)h(messa)o(g)o(e)o(.)515 2610 y SDict begin H.S end 515 2610 a 515 2610 a SDict begin 12 H.A end 515 2610 a 515 2610 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.9.1) cvn H.B /DEST pdfmark end 515 2610 a 0.25 TeXcolorgray 132 x Fo(24.9.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2945 a Fx(Exception)29 b(thro)n(wn)g(if)i(a)g(null)f(v)n(alue)g(is)i(speci\002ed)e(without)g (support)f(from)h(e)o(xisting)g(column)515 3045 y(header)-5 b(.)515 3191 y(This)23 b(e)o(xception)d(is)k(analogous)d(to)i(the)f(f)o (act)h(that)g(c\002tsio)g(returns)f(a)h(non-zero)d(status)k(code)e(if)h (T-)515 3291 y(NULLn)g(doesn')o(t)g(e)o(xist)h(an)g(a)h(null)e(v)n (alue)h(\(con)m(v)o(ert)e(all)i(input)g(data)g(with)g(the)g(null)g(v)n (alue)f(to)i(the)515 3391 y(TNULLn)j(k)o(e)o(yw)o(ord\))e(is)k (speci\002ed.)50 b(It)29 b(is)h(only)e(rele)n(v)n(ant)f(for)i(inte)o (ger)e(type)h(data)h(\(see)g(c\002tsio)515 3490 y(manual)19 b(for)g(details\).)515 3627 y SDict begin H.S end 515 3627 a 515 3627 a SDict begin 12 H.A end 515 3627 a 515 3627 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.9.2) cvn H.B /DEST pdfmark end 515 3627 a 0.25 TeXcolorgray 132 x Fo(24.9.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3961 a SDict begin H.S end 515 3961 a 0 TeXcolorgray 0 TeXcolorgray 515 3961 a SDict begin H.R end 515 3961 a 515 3961 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1NoNullValue_afadcc0dd8cfeee82c4286469fc006e67) cvn H.B /DEST pdfmark end 515 3961 a 0 TeXcolorgray 515 3999 a SDict begin H.S end 515 3999 a 515 3999 a SDict begin 12 H.A end 515 3999 a 515 3999 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.9.2.1) cvn H.B /DEST pdfmark end 515 3999 a 0.25 TeXcolorgray 147 x Fo(24.9.2.1)75 b(CC\002ts::Column::NoNullV)m(alue:)q(:No)q(NullV) m(alue)23 b(\()35 b(const)18 b(String)g(&)g Fk(dia)o(g,)35 b Fo(bool)18 b Fk(silent)g(=)f Fr(true)34 b Fo(\))p 0 TeXcolorgray 515 4330 a Fx(Exception)24 b(ctor)m(,)i(pre\002x)o(es)f (the)h(string)f("Fits)i(Error:)36 b(No)25 b(null)h(v)n(alue)f (speci\002ed)h(for)f(column:)35 b(")515 4430 y(before)19 b(the)h(speci\002c)g(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4640 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4582 a SDict begin H.S end 515 4582 a 515 4582 a SDict begin 12 H.A end 515 4582 a 515 4582 a SDict begin [ /View [/XYZ H.V] /Dest (table.33) cvn H.B /DEST pdfmark end 515 4582 a 515 4685 2889 4 v 515 4685 V 515 4785 4 100 v 830 4755 a Ft(dia)o(g)p 1005 4785 V 59 w Fx(A)h(speci\002c)f (diagnostic)f(message)p 3400 4785 V 515 4788 2889 4 v 515 4788 V 515 4888 4 100 v 796 4858 a Ft(silent)p 1005 4888 V 61 w Fx(if)h(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 4859 a SDict begin H.S end 2047 4859 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 4802 a SDict begin H.R end 2714 4802 a 2714 4858 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 4858 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 4888 4 100 v 515 4891 2889 4 v 515 4891 V 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 72 77 TeXDict begin 72 76 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.72) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.10)81 b(CC\002ts::Column::RangeErr)o(or)17 b(Class)k(Refer)o(ence)871 b(72)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(The)20 b(documentation)d(for)i(this)i(class)g (w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 736 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 844 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 1058 a SDict begin H.S end 515 1058 a 0 TeXcolorgray 0 TeXcolorgray 515 1058 a SDict begin H.R end 515 1058 a 515 1058 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1RangeError) cvn H.B /DEST pdfmark end 515 1058 a 0 TeXcolorgray 515 1179 a SDict begin H.S end 515 1179 a 515 1179 a SDict begin 12 H.A end 515 1179 a 515 1179 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.10) cvn H.B /DEST pdfmark end 515 1179 a 0.25 TeXcolorgray 163 x Fq(24.10)89 b(CC\002ts::Column::Rang)q(eErr)o(or)22 b(Class)e(Ref)o (erence)p 0 TeXcolorgray 515 1545 a Fx(e)o(xception)e(to)i(be)h(thro)n (wn)d(for)i(inputs)g(that)g(cause)g(range)f(errors)h(in)g(column)f (read)g(operations.)515 1692 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 1839 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::Column::RangeError:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1433 2437 a @beginspecial 0 @llx 0 @lly 500 @urx 229.885056 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1RangeError.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 229.885057 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.175000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::RangeError) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::RangeError) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2789 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 2846 a SDict begin H.S end 515 2846 a 515 2846 a SDict begin 12 H.A end 515 2846 a 515 2846 a SDict begin [ /View [/XYZ H.V] /Dest (section*.18) cvn H.B /DEST pdfmark end 515 2846 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2978 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2996 a SDict begin H.S end 722 2996 a 0 0 1 TeXcolorrgb -18 x Fx(RangeError)p 0 0 1 TeXcolorrgb 1110 2924 a SDict begin H.R end 1110 2924 a 1110 2978 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1RangeError_acc6fd24ee9941747185427552ff802b0) cvn H.B /ANN pdfmark end 1110 2978 a 0 TeXcolorgray 20 w Fx(\(const)i(String)g(&msg,)f(bool)h(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 3102 a Fl(Exception)j(ctor)-8 b(,)23 b(pr)m(e\002xes)h(the)e(string)h("F)m(itsErr)m(or:)29 b(Rang)o(e)23 b(err)m(or)g(in)f(oper)o(ation)i(")e(befor)m(e)i(the)840 3193 y(speci\002c)c(messa)o(g)o(e)o(.)515 3330 y SDict begin H.S end 515 3330 a 515 3330 a SDict begin 12 H.A end 515 3330 a 515 3330 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.10.1) cvn H.B /DEST pdfmark end 515 3330 a 0.25 TeXcolorgray 132 x Fo(24.10.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3665 a Fx(e)o(xception)g(to)i(be)h(thro)n(wn)d(for)i (inputs)g(that)g(cause)g(range)f(errors)h(in)g(column)f(read)g (operations.)515 3812 y(Range)h(errors)f(here)h(mean)f(\(last)i Fu(<)f Fx(\002rst\))h(in)f(a)h(request)e(to)i(read)e(a)i(range)e(of)h (ro)n(ws.)515 3951 y SDict begin H.S end 515 3951 a 515 3951 a SDict begin 12 H.A end 515 3951 a 515 3951 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.10.2) cvn H.B /DEST pdfmark end 515 3951 a 0.25 TeXcolorgray 129 x Fo(24.10.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4283 a SDict begin H.S end 515 4283 a 0 TeXcolorgray 0 TeXcolorgray 515 4283 a SDict begin H.R end 515 4283 a 515 4283 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1RangeError_acc6fd24ee9941747185427552ff802b0) cvn H.B /DEST pdfmark end 515 4283 a 0 TeXcolorgray 515 4320 a SDict begin H.S end 515 4320 a 515 4320 a SDict begin 12 H.A end 515 4320 a 515 4320 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.10.2.1) cvn H.B /DEST pdfmark end 515 4320 a 0.25 TeXcolorgray 147 x Fo(24.10.2.1)75 b(CC\002ts::Column::Rang)q(eErr)o(or::R)q(ang)q(eErr)o (or)23 b(\()34 b(const)19 b(String)f(&)f Fk(msg,)35 b Fo(bool)19 b Fk(silent)f(=)e Fr(true)34 b Fo(\))p 0 TeXcolorgray 515 4651 a Fx(Exception)27 b(ctor)m(,)k(pre\002x)o(es)d(the)h(string)g ("FitsError:)43 b(Range)28 b(error)g(in)i(operation)d(")j(before)e(the) 515 4751 y(speci\002c)20 b(message.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 73 78 TeXDict begin 73 77 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.73) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.11)81 b(CC\002ts::Column::Wr)o(ongColumnT) -6 b(ype)17 b(Class)k(Refer)o(ence)596 b(73)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.34) cvn H.B /DEST pdfmark end 515 436 a 515 539 2889 4 v 515 539 V 515 639 4 100 v 843 609 a Ft(msg)p 1005 639 V 60 w Fx(A)21 b(speci\002c)f(diagnostic)f (message)p 3400 639 V 515 642 2889 4 v 515 642 V 515 742 4 100 v 796 712 a Ft(silent)p 1005 742 V 61 w Fx(if)h(true,)g (print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 713 a SDict begin H.S end 2047 713 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 655 a SDict begin H.R end 2714 655 a 2714 712 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 712 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 742 4 100 v 515 745 2889 4 v 515 745 V 515 975 a(The)g(documentation)d (for)i(this)i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f (\002les:)p 0 TeXcolorgray 652 1188 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 1296 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 1509 a SDict begin H.S end 515 1509 a 0 TeXcolorgray 0 TeXcolorgray 515 1509 a SDict begin H.R end 515 1509 a 515 1509 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1WrongColumnType) cvn H.B /DEST pdfmark end 515 1509 a 0 TeXcolorgray 515 1631 a SDict begin H.S end 515 1631 a 515 1631 a SDict begin 12 H.A end 515 1631 a 515 1631 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.11) cvn H.B /DEST pdfmark end 515 1631 a 0.25 TeXcolorgray 163 x Fq(24.11)89 b(CC\002ts::Column::Wr)o(ongColumnT)l(ype)23 b(Class)e(Ref)o(erence)p 0 TeXcolorgray 515 1997 a Fx(Exception)d(thro) n(wn)h(on)h(attempting)f(to)h(access)h(a)f(scalar)h(column)e(as)i(v)o (ector)e(data.)515 2144 y Fr(#include)48 b Fu(<)p Fr(Column.h)p Fu(>)515 2291 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::Column::WrongColumnT)-7 b(ype:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1312 2889 a @beginspecial 0 @llx 0 @lly 500 @urx 186.046509 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Column_1_1WrongColumnType.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 186.046512 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.687500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Column::WrongColumnType) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Column::WrongColumnType) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 3241 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 3297 a SDict begin H.S end 515 3297 a 515 3297 a SDict begin 12 H.A end 515 3297 a 515 3297 a SDict begin [ /View [/XYZ H.V] /Dest (section*.19) cvn H.B /DEST pdfmark end 515 3297 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3429 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3447 a SDict begin H.S end 722 3447 a 0 0 1 TeXcolorrgb -18 x Fx(WrongColumnT)-7 b(ype)p 0 0 1 TeXcolorrgb 1384 3373 a SDict begin H.R end 1384 3373 a 1384 3429 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column_1_1WrongColumnType_a4f6c37a9e65c940421b9909bc0f773ef) cvn H.B /ANN pdfmark end 1384 3429 a 0 TeXcolorgray 21 w Fx(\(const)20 b(String)g(&diag,)f(bool)g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 3554 a Fl(Exception)31 b(ctor)-8 b(,)32 b(pr)m(e\002xes)g(the)e(string)g("F)m(itsErr)m(or:)44 b(Attempt)29 b(to)h(r)m(eturn)h(scalar)g(data)f(fr)m(om)840 3645 y(vector)20 b(column,)f(or)g(vice)g(ver)o(sa)h(-)f(Column:)k(")c (befor)m(e)h(the)f(speci\002c)h(messa)o(g)o(e)o(.)515 3782 y SDict begin H.S end 515 3782 a 515 3782 a SDict begin 12 H.A end 515 3782 a 515 3782 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.11.1) cvn H.B /DEST pdfmark end 515 3782 a 0.25 TeXcolorgray 132 x Fo(24.11.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 4117 a Fx(Exception)g(thro)n(wn)h (on)h(attempting)f(to)h(access)h(a)f(scalar)h(column)e(as)i(v)o(ector)e (data.)515 4263 y(This)i(e)o(xception)d(will)k(be)f(thro)n(wn)e(if)i (the)g(user)f(tries)i(to)e(call)i(a)f(read/write)f(operation)e(with)j (a)g(sig-)515 4363 y(nature)f(appropriate)f(for)h(a)i(v)o(ector)d (column)h(on)h(a)g(scalar)h(column,)d(or)i(vice)g(v)o(ersa.)27 b(F)o(or)21 b(e)o(xample)515 4463 y(in)29 b(the)f(case)h(of)g(write)g (operations,)g(the)f(v)o(ector)g(v)o(ersions)f(require)h(the)g (speci\002cation)g(of)h(\(a\))f(a)515 4562 y(number)16 b(of)h(ro)n(ws)h(to)g(write)g(o)o(v)o(er)m(,)f(\(b\))g(a)h(v)o(ector)f (of)g(lengths)h(to)g(write)g(to)g(each)f(ro)n(w)h(or)g(\(c\))f(a)h (subset)515 4662 y(speci\002cation.)28 b(The)21 b(scalar)h(v)o(ersions) e(only)h(require)f(a)i(number)e(of)h(ro)n(ws)g(if)h(the)f(input)g (array)g(is)h(a)515 4762 y(plain)e(C-array)-5 b(,)18 b(otherwise)i(the)g(range)f(to)h(be)h(written)f(is)h(the)f(size)h(of)f (the)g(input)f(v)o(ector)-5 b(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 74 79 TeXDict begin 74 78 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.74) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(74)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.11.2) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.11.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.S end 515 726 a 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.R end 515 726 a 515 726 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Column_1_1WrongColumnType_a4f6c37a9e65c940421b9909bc0f773ef) cvn H.B /DEST pdfmark end 515 726 a 0 TeXcolorgray 515 763 a SDict begin H.S end 515 763 a 515 763 a SDict begin 12 H.A end 515 763 a 515 763 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.11.2.1) cvn H.B /DEST pdfmark end 515 763 a 0.25 TeXcolorgray 147 x Fo(24.11.2.1)75 b(CC\002ts::Column::Wr)o(ongCo)q(lumn)q(T)m(ype:)q(:Wr)o(on)q(gCo)q (lum)q(nT)m(ype)24 b(\()36 b(const)19 b(String)f(&)g Fk(dia)o(g,)37 b Fo(bool)845 1010 y Fk(silent)18 b(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 1194 a Fx(Exception)17 b(ctor)m(,)h(pre\002x)o(es)g(the)g(string)h("FitsError:)24 b(Attempt)18 b(to)h(return)f(scalar)g(data)h(from)f(v)o(ector)515 1294 y(column,)g(or)i(vice)g(v)o(ersa)g(-)g(Column:)25 b(")20 b(before)f(the)h(speci\002c)h(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1504 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1446 a SDict begin H.S end 515 1446 a 515 1446 a SDict begin 12 H.A end 515 1446 a 515 1446 a SDict begin [ /View [/XYZ H.V] /Dest (table.35) cvn H.B /DEST pdfmark end 515 1446 a 515 1549 2889 4 v 515 1549 V 515 1649 4 100 v 830 1619 a Ft(dia)o(g)p 1005 1649 V 59 w Fx(A)g(speci\002c)f(diagnostic)f(message,)h(usually)f (the)i(column)d(name.)p 3400 1649 V 515 1652 2889 4 v 515 1652 V 515 1752 4 100 v 796 1722 a Ft(silent)p 1005 1752 V 61 w Fx(if)i(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 1723 a SDict begin H.S end 2047 1723 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 1666 a SDict begin H.R end 2714 1666 a 2714 1722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 1722 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 3400 1752 4 100 v 515 1755 2889 4 v 515 1755 V 515 1974 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 2178 a(\225)p 0 TeXcolorgray 41 w(Column.h)p 0 TeXcolorgray 652 2283 a(\225)p 0 TeXcolorgray 41 w(Column.cxx)p 0 TeXcolorgray 515 2487 a SDict begin H.S end 515 2487 a 0 TeXcolorgray 0 TeXcolorgray 515 2487 a SDict begin H.R end 515 2487 a 515 2487 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU) cvn H.B /DEST pdfmark end 515 2487 a 0 TeXcolorgray 515 2607 a SDict begin H.S end 515 2607 a 515 2607 a SDict begin 12 H.A end 515 2607 a 515 2607 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.12) cvn H.B /DEST pdfmark end 515 2607 a 0.25 TeXcolorgray 163 x Fq(24.12)89 b(CC\002ts::ExtHDU)23 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 2973 a Fx(base)g(class)h(for)f(all)p 0 0 1 TeXcolorrgb 1087 2974 a SDict begin H.S end 1087 2974 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1257 2917 a SDict begin H.R end 1257 2917 a 1257 2973 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1257 2973 a 0 TeXcolorgray 21 w Fx(e)o(xtension)f(HDUs,)h (i.e.)25 b(Image)20 b(Extensions)f(and)g(T)-7 b(ables.)515 3120 y Fr(#include)48 b Fu(<)p Fr(ExtHDU.h)p Fu(>)515 3267 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::ExtHDU:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 698 4333 a @beginspecial 0 @llx 0 @lly 500 @urx 189.125290 @ury 1133 @rhi @setspecial %%BeginDocument: classCCfits_1_1ExtHDU.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 189.125296 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.643750 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 4 def /cols 3 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::ExtHDU) cw (CCfits::HDU) cw (CCfits::ImageExt< T >) cw (CCfits::Table) cw (CCfits::AsciiTable) cw (CCfits::BinTable) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::ExtHDU) 0.500000 2.000000 box (CCfits::HDU) 0.500000 3.000000 box (CCfits::ImageExt< T >) 0.000000 1.000000 box (CCfits::Table) 1.000000 1.000000 box (CCfits::AsciiTable) 0.500000 0.000000 box (CCfits::BinTable) 1.500000 0.000000 box % ----- relations ----- solid 0 0.500000 2.000000 out solid 1 0.500000 3.000000 in solid 1 0.500000 1.250000 out solid 0.000000 1.000000 2.000000 conn solid 0 0.000000 1.750000 in solid 0 1.000000 1.750000 in solid 1 1.000000 0.250000 out solid 0.500000 1.500000 1.000000 conn solid 0 0.500000 0.750000 in solid 0 1.500000 0.750000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 4682 a Fo(Classes)p 0 TeXcolorgray 515 4740 a SDict begin H.S end 515 4740 a 515 4740 a SDict begin 12 H.A end 515 4740 a 515 4740 a SDict begin [ /View [/XYZ H.V] /Dest (section*.20) cvn H.B /DEST pdfmark end 515 4740 a 0 TeXcolorgray 652 4869 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 4887 a SDict begin H.S end 904 4887 a 0 0 1 TeXcolorrgb -18 x Fx(WrongExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1631 4812 a SDict begin H.R end 1631 4812 a 1631 4869 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1631 4869 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 4991 a Fl(Exception)20 b(to)f(be)g(thr)m(own)g(on)g(unmatc)o(hed)i(e)o(xtension)e(types.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 75 80 TeXDict begin 75 79 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.75) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(75)p 515 236 2865 4 v 0 TeXcolorgray 0.25 TeXcolorgray 515 523 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 580 a SDict begin H.S end 515 580 a 515 580 a SDict begin 12 H.A end 515 580 a 515 580 a SDict begin [ /View [/XYZ H.V] /Dest (section*.21) cvn H.B /DEST pdfmark end 515 580 a 0 TeXcolorgray 0 TeXcolorgray 652 712 a Fx(\225)p 0 TeXcolorgray 722 712 a SDict begin H.S end 722 712 a 0 TeXcolorgray 0 TeXcolorgray 722 712 a SDict begin H.R end 722 712 a 722 712 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a58be2cbfe5c11246e8c2269e3ffe69ee) cvn H.B /DEST pdfmark end 722 712 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 713 a SDict begin H.S end 743 713 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1038 658 a SDict begin H.R end 1038 658 a 1038 712 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a58be2cbfe5c11246e8c2269e3ffe69ee) cvn H.B /ANN pdfmark end 1038 712 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1283 713 a SDict begin H.S end 1283 713 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1578 658 a SDict begin H.R end 1578 658 a 1578 712 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1578 712 a 0 TeXcolorgray 20 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 836 a Fl(copy)i(constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 944 a Fx(\225)p 0 TeXcolorgray 722 944 a SDict begin H.S end 722 944 a 0 TeXcolorgray 0 TeXcolorgray 722 944 a SDict begin H.R end 722 944 a 722 944 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a99d509bf1374ace30a48508dffad25d5) cvn H.B /DEST pdfmark end 722 944 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 945 a SDict begin H.S end 981 945 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1340 890 a SDict begin H.R end 1340 890 a 1340 944 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a99d509bf1374ace30a48508dffad25d5) cvn H.B /ANN pdfmark end 1340 944 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1069 a Fl(destructor)p 0 TeXcolorgray 652 1177 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)15 b(v)n(oid)p 0 0 1 TeXcolorrgb 1117 1178 a SDict begin H.S end 1117 1178 a 0 0 1 TeXcolorrgb -1 x Fx(addColumn)p 0 0 1 TeXcolorrgb 1504 1121 a SDict begin H.R end 1504 1121 a 1504 1177 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) cvn H.B /ANN pdfmark end 1504 1177 a 0 TeXcolorgray 16 w Fx(\()p 0 0 1 TeXcolorrgb 1548 1195 a SDict begin H.S end 1548 1195 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 1900 1121 a SDict begin H.R end 1900 1121 a 1900 1177 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1900 1177 a 0 TeXcolorgray 16 w Fx(type,)16 b(const)f(String)g(&columnName,)e(long)h(repeat-)722 1276 y(W)m(idth,)i(const)f(String)g(&colUnit=String\(""\),)e(long)h (decimals=-1,)h(size_t)g(columnNumber=0\))p 0 TeXcolorgray 0 TeXcolorgray 840 1501 a Fl(add)20 b(a)f(ne)o(w)g(column)h(to)f(an)g (e)o(xisting)g(table)p 0 0 1 TeXcolorrgb 1992 1502 a SDict begin H.S end 1992 1502 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2154 1453 a SDict begin H.R end 2154 1453 a 2154 1501 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2154 1501 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 1609 a Fx(\225)p 0 TeXcolorgray 722 1609 a SDict begin H.S end 722 1609 a 0 TeXcolorgray 0 TeXcolorgray 722 1609 a SDict begin H.R end 722 1609 a 722 1609 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_ada85c7b4b9b38f6e410db8794779ed60) cvn H.B /DEST pdfmark end 722 1609 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 1610 a SDict begin H.S end 981 1610 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1160 1555 a SDict begin H.R end 1160 1555 a 1160 1609 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1160 1609 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1243 1610 a SDict begin H.S end 1243 1610 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1423 1552 a SDict begin H.R end 1423 1552 a 1423 1609 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ada85c7b4b9b38f6e410db8794779ed60) cvn H.B /ANN pdfmark end 1423 1609 a 0 TeXcolorgray 21 w Fx(\(FITSBase)h Fp(\003)p Fx(p\))g(const)g(=0)p 0 TeXcolorgray 0 TeXcolorgray 840 1733 a Fl(virtual)f(copy)h(constructor)p 0 TeXcolorgray 652 1841 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)p 0 0 1 TeXcolorrgb 973 1842 a SDict begin H.S end 973 1842 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1240 1785 a SDict begin H.R end 1240 1785 a 1240 1841 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1240 1841 a 0 TeXcolorgray 34 w Fx(&)p 0 0 1 TeXcolorrgb 1372 1842 a SDict begin H.S end 1372 1842 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 1621 1785 a SDict begin H.R end 1621 1785 a 1621 1841 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) cvn H.B /ANN pdfmark end 1621 1841 a 0 TeXcolorgray 34 w Fx(\(const)33 b(String)f(&colName,)j(bool)d(caseSensiti)n(v)o(e=true\))722 1941 y(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2065 a Fl(r)m(eturn)20 b(a)f(r)m(efer)m(ence)h(to)f(a)p 0 0 1 TeXcolorrgb 1527 2066 a SDict begin H.S end 1527 2066 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1691 2015 a SDict begin H.R end 1691 2015 a 1691 2065 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1691 2065 a 0 TeXcolorgray 18 w Fl(column)20 b(speci\002ed)g(by)f(name)o(.)p 0 TeXcolorgray 652 2173 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)p 0 0 1 TeXcolorrgb 960 2174 a SDict begin H.S end 960 2174 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1227 2117 a SDict begin H.R end 1227 2117 a 1227 2173 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1227 2173 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1333 2174 a SDict begin H.S end 1333 2174 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 1583 2117 a SDict begin H.R end 1583 2117 a 1583 2173 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a06d5f1ebd32e0228790c8b4e4b57e2e4) cvn H.B /ANN pdfmark end 1583 2173 a 0 TeXcolorgray 20 w Fx(\(int)h(colInde)o(x\))e(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2298 a Fl(r)m(eturn)i(a)f(r)m(efer)m (ence)h(to)f(a)p 0 0 1 TeXcolorrgb 1527 2299 a SDict begin H.S end 1527 2299 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1691 2247 a SDict begin H.R end 1691 2247 a 1691 2298 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1691 2298 a 0 TeXcolorgray 18 w Fl(column)20 b(speci\002ed)g(by)f(column)h(inde)o(x.)p 0 TeXcolorgray 652 2406 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(const)g(std::map)p Fu(<)f Fx(string,)p 0 0 1 TeXcolorrgb 1778 2407 a SDict begin H.S end 1778 2407 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2046 2349 a SDict begin H.R end 2046 2349 a 2046 2406 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2046 2406 a 0 TeXcolorgray 21 w Fp(\003)h Fu(>)g Fx(&)p 0 0 1 TeXcolorrgb 2300 2407 a SDict begin H.S end 2300 2407 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 2549 2349 a SDict begin H.R end 2549 2349 a 2549 2406 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ab121d5ab64abcc0a5df4ca7955bec2e9) cvn H.B /ANN pdfmark end 2549 2406 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2530 a Fl(r)m(eturn)g(a)f(r)m(efer)m(ence)h(to)f(the)g(arr)o(ay)h (containing)g(the)f(columns.)p 0 TeXcolorgray 652 2638 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)h(v)n(oid)p 0 0 1 TeXcolorrgb 1127 2639 a SDict begin H.S end 1127 2639 a 0 0 1 TeXcolorrgb -1 x Fx(deleteColumn)p 0 0 1 TeXcolorrgb 1592 2582 a SDict begin H.R end 1592 2582 a 1592 2638 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_aaee3fda1eb075ef4ee7a9178114bd00d) cvn H.B /ANN pdfmark end 1592 2638 a 0 TeXcolorgray 21 w Fx(\(const)g(String)g(&columnName\))p 0 TeXcolorgray 0 TeXcolorgray 840 2763 a Fl(delete)g(a)f(column)g(in)g(a)p 0 0 1 TeXcolorrgb 1465 2764 a SDict begin H.S end 1465 2764 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1628 2712 a SDict begin H.R end 1628 2712 a 1628 2763 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1628 2763 a 0 TeXcolorgray 19 w Fl(e)o(xtension)19 b(by)h(name)o(.)p 0 TeXcolorgray 652 2870 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(long)p 0 0 1 TeXcolorrgb 1128 2888 a SDict begin H.S end 1128 2888 a 0 0 1 TeXcolorrgb -18 x Fx(getRo)n(wsize)p 0 0 1 TeXcolorrgb 1513 2814 a SDict begin H.R end 1513 2814 a 1513 2870 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a5a480387701525f75ea450dac7510f23) cvn H.B /ANN pdfmark end 1513 2870 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2995 a Fl(r)m(eturn)g(the)f(optimal)g(number)h(of)f (r)m(ows)g(to)f(r)m(ead)i(or)f(write)g(at)f(a)h(time)p 0 TeXcolorgray 652 3103 a Fx(\225)p 0 TeXcolorgray 41 w(bool)p 0 0 1 TeXcolorrgb 891 3121 a SDict begin H.S end 891 3121 a 0 0 1 TeXcolorrgb -18 x Fx(isCompressed)p 0 0 1 TeXcolorrgb 1356 3047 a SDict begin H.R end 1356 3047 a 1356 3103 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a9942fedcef3502a764ee25b143acdfb1) cvn H.B /ANN pdfmark end 1356 3103 a 0 TeXcolorgray 21 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3227 a Fl(r)m(eturn)g(true)f(if)f(ima)o(g)o(e)i(is)f(stor)m(ed)g (using)h(compr)m(ession.)p 0 TeXcolorgray 652 3335 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(v)n(oid)p 0 0 1 TeXcolorrgb 1127 3336 a SDict begin H.S end 1127 3336 a 0 0 1 TeXcolorrgb -1 x Fx(mak)o(eThisCurrent)p 0 0 1 TeXcolorrgb 1707 3279 a SDict begin H.R end 1707 3279 a 1707 3335 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a16730a075858cd50bfa3daad60c0a1c0) cvn H.B /ANN pdfmark end 1707 3335 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3460 a Fl(mo)o(ve)g(the)f(\002ts\002le)g(pointer)h(to)f(this)f (curr)m(ent)p 0 0 1 TeXcolorrgb 1997 3461 a SDict begin H.S end 1997 3461 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2159 3412 a SDict begin H.R end 2159 3412 a 2159 3460 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2159 3460 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 3568 a Fx(\225)p 0 TeXcolorgray 722 3568 a SDict begin H.S end 722 3568 a 0 TeXcolorgray 0 TeXcolorgray 722 3568 a SDict begin H.R end 722 3568 a 722 3568 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_af1128c49f0381473feff2cd9e5650dce) cvn H.B /DEST pdfmark end 722 3568 a 0 TeXcolorgray 21 w Fx(const)i(String)g(&)p 0 0 1 TeXcolorrgb 1248 3569 a SDict begin H.S end 1248 3569 a 0 0 1 TeXcolorrgb -1 x Fx(name)p 0 0 1 TeXcolorrgb 1428 3530 a SDict begin H.R end 1428 3530 a 1428 3568 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_af1128c49f0381473feff2cd9e5650dce) cvn H.B /ANN pdfmark end 1428 3568 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3692 a Fl(r)m(eturn)g(the)f(name)h(of)e(the)h(e)o (xtension.)p 0 TeXcolorgray 652 3800 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)h(int)p 0 0 1 TeXcolorrgb 1068 3801 a SDict begin H.S end 1068 3801 a 0 0 1 TeXcolorrgb -1 x Fx(numCols)p 0 0 1 TeXcolorrgb 1368 3744 a SDict begin H.R end 1368 3744 a 1368 3800 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_af63318f88dad6665781c9d699324a3a3) cvn H.B /ANN pdfmark end 1368 3800 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3925 a Fl(r)m(eturn)g(the)f(number)h(of)f(Columns)g(in)g(the)p 0 0 1 TeXcolorrgb 1948 3926 a SDict begin H.S end 1948 3926 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 2111 3874 a SDict begin H.R end 2111 3874 a 2111 3925 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2111 3925 a 0 TeXcolorgray 19 w Fl(\(the)19 b(TFIELDS)e(k)o(e)n(ywor)m(d\).)p 0 TeXcolorgray 652 4033 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)k(S)c Fg(>)722 4132 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 4133 a SDict begin H.S end 889 4133 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 4076 a SDict begin H.R end 1032 4076 a 1032 4132 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a1ea37193efa315fd47f0f104f08aae88) cvn H.B /ANN pdfmark end 1032 4132 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&image\))p 0 TeXcolorgray 0 TeXcolorgray 840 4257 a Fl(Read)f(ima)o(g)o(e)f(data)h(into)f(container)-8 b(.)p 0 TeXcolorgray 652 4365 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 4465 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 904 4466 a SDict begin H.S end 904 4466 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1047 4408 a SDict begin H.R end 1047 4408 a 1047 4465 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a26d0af71eaf7ad073ba160143c2a8f56) cvn H.B /ANN pdfmark end 1047 4465 a 0 TeXcolorgray 35 w Fx(\(std::v)n(alarray)p Fu(<)33 b Fx(S)j Fu(>)f Fx(&image,)j(long)c(\002rst,)39 b(long)34 b(nElements,)k(S)e Fp(\003)p Fx(null-)722 4564 y(V)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4689 a Fl(r)m(ead)20 b(part)g(of)e(an)i(ima)o(g)o(e) g(arr)o(ay)l(,)f(pr)m(ocessing)h(null)f(values.)p 0 TeXcolorgray 652 4797 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 4896 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 895 4897 a SDict begin H.S end 895 4897 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1038 4840 a SDict begin H.R end 1038 4840 a 1038 4896 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a7a72093d5babb15f212ab3018536e98e) cvn H.B /ANN pdfmark end 1038 4896 a 0 TeXcolorgray 27 w Fx(\(std::v)n(alarray)p Fu(<)24 b Fx(S)k Fu(>)e Fx(&image,)h(const)f(std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)g Fx(&\002rst,)i(long)722 4996 y(nElements,)19 b(S)i Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 76 81 TeXDict begin 76 80 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.76) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(76)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(r)m(ead)20 b(part)g(of)e(an)i(ima)o(g)o(e)g(arr)o(ay)l(,)f(pr)m (ocessing)h(null)f(values.)p 0 TeXcolorgray 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 722 631 a SDict begin H.S end 722 631 a 0 TeXcolorgray 0 TeXcolorgray 722 631 a SDict begin H.R end 722 631 a 722 631 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a37d651c1eb3f2ac633fd03a01c33573e) cvn H.B /DEST pdfmark end 722 631 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 731 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 891 732 a SDict begin H.S end 891 732 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1034 674 a SDict begin H.R end 1034 674 a 1034 731 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a37d651c1eb3f2ac633fd03a01c33573e) cvn H.B /ANN pdfmark end 1034 731 a 0 TeXcolorgray 24 w Fx(\(std::v)n(alarray)p Fu(<)j Fx(S)j Fu(>)g Fx(&image,)f(const)g(std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)h Fx(&\002rstV)-9 b(erte)o(x,)722 830 y(const)20 b(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&lastV)-9 b(erte)o(x,)19 b(const)h(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&stride\))p 0 TeXcolorgray 0 TeXcolorgray 840 955 a Fl(r)m(ead)g(an)g(ima)o(g)o(e)f(subset)p 0 TeXcolorgray 0 TeXcolorgray 652 1063 a Fx(\225)p 0 TeXcolorgray 722 1063 a SDict begin H.S end 722 1063 a 0 TeXcolorgray 0 TeXcolorgray 722 1063 a SDict begin H.R end 722 1063 a 722 1063 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a8062cc5b2902b4c55991e126f52fb37b) cvn H.B /DEST pdfmark end 722 1063 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1162 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1163 a SDict begin H.S end 889 1163 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 1106 a SDict begin H.R end 1032 1106 a 1032 1162 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a8062cc5b2902b4c55991e126f52fb37b) cvn H.B /ANN pdfmark end 1032 1162 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&image,)e(long)g (\002rst,)i(long)e(nElements\))p 0 TeXcolorgray 0 TeXcolorgray 840 1287 a Fl(r)m(ead)h(an)g(ima)o(g)o(e)f(section)h(starting)f(at)g(a) g(speci\002ed)h(pixel)p 0 TeXcolorgray 0 TeXcolorgray 652 1395 a Fx(\225)p 0 TeXcolorgray 722 1395 a SDict begin H.S end 722 1395 a 0 TeXcolorgray 0 TeXcolorgray 722 1395 a SDict begin H.R end 722 1395 a 722 1395 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a768bf03f9c90df0c6b8c4fc6ae227fe5) cvn H.B /DEST pdfmark end 722 1395 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 1494 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 895 1495 a SDict begin H.S end 895 1495 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1038 1438 a SDict begin H.R end 1038 1438 a 1038 1494 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a768bf03f9c90df0c6b8c4fc6ae227fe5) cvn H.B /ANN pdfmark end 1038 1494 a 0 TeXcolorgray 27 w Fx(\(std::v)n(alarray)p Fu(<)24 b Fx(S)k Fu(>)e Fx(&image,)h(const)f(std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)g Fx(&\002rst,)i(long)722 1594 y(nElements\))p 0 TeXcolorgray 0 TeXcolorgray 840 1719 a Fl(r)m(ead)20 b(an)g(ima)o(g)o(e)f(section)h(starting)f(at)g(a)g (location)g(speci\002ed)i(by)e(an)g(n-tuple)p 0 TeXcolorgray 652 1826 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1926 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 891 1927 a SDict begin H.S end 891 1927 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1034 1870 a SDict begin H.R end 1034 1870 a 1034 1926 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a8d4afc93c3eb152b88e985cadee31f42) cvn H.B /ANN pdfmark end 1034 1926 a 0 TeXcolorgray 24 w Fx(\(std::v)n(alarray)p Fu(<)j Fx(S)j Fu(>)g Fx(&image,)f(const)g(std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)h Fx(&\002rstV)-9 b(erte)o(x,)722 2026 y(const)31 b(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&lastV)-9 b(erte)o(x,)33 b(const)e(std::v)o(ector)p Fu(<)e Fx(long)h Fu(>)i Fx(&stride,)h(S)722 2125 y Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2250 a Fl(r)m(ead)20 b(an)g(ima)o(g)o(e)f(subset)h(into)f(valarr)o (ay)h(ima)o(g)o(e)o(,)g(pr)m(ocessing)g(null)f(values)p 0 TeXcolorgray 0 TeXcolorgray 652 2358 a Fx(\225)p 0 TeXcolorgray 722 2358 a SDict begin H.S end 722 2358 a 0 TeXcolorgray 0 TeXcolorgray 722 2358 a SDict begin H.R end 722 2358 a 722 2358 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) cvn H.B /DEST pdfmark end 722 2358 a 0 TeXcolorgray 16 w Fx(virtual)c(v)n(oid)p 0 0 1 TeXcolorrgb 1132 2359 a SDict begin H.S end 1132 2359 a 0 0 1 TeXcolorrgb -1 x Fx(readData)p 0 0 1 TeXcolorrgb 1432 2302 a SDict begin H.R end 1432 2302 a 1432 2358 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) cvn H.B /ANN pdfmark end 1432 2358 a 0 TeXcolorgray 16 w Fx(\(bool)f(readFlag=f)o(alse,)h(const)g (std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&k)o(e)o(ys=std-)722 2457 y(::v)o(ector)p Fu(<)k Fx(String)h Fu(>)p Fx(\(\)\)=0)p 0 TeXcolorgray 0 TeXcolorgray 840 2582 a Fl(r)m(ead)g(data)g(fr)m(om)p 0 0 1 TeXcolorrgb 1301 2583 a SDict begin H.S end 1301 2583 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1463 2534 a SDict begin H.R end 1463 2534 a 1463 2582 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1463 2582 a 0 TeXcolorgray 19 w Fl(depending)h(on)e(r)m (eadFla)o(g)h(and)g(k)o(e)n(ys.)p 0 TeXcolorgray 652 2690 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(long)p 0 0 1 TeXcolorrgb 1128 2691 a SDict begin H.S end 1128 2691 a 0 0 1 TeXcolorrgb -1 x Fx(ro)n(ws)p 0 0 1 TeXcolorrgb 1287 2652 a SDict begin H.R end 1287 2652 a 1287 2690 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ab94cb470d13b5a574728c49589963a36) cvn H.B /ANN pdfmark end 1287 2690 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2814 a Fl(r)m(eturn)g(the)f(number)h (of)f(r)m(ows)g(in)f(the)h(e)o(xtension.)p 0 TeXcolorgray 0 TeXcolorgray 652 2922 a Fx(\225)p 0 TeXcolorgray 722 2922 a SDict begin H.S end 722 2922 a 0 TeXcolorgray 0 TeXcolorgray 722 2922 a SDict begin H.R end 722 2922 a 722 2922 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a5e2785377c404f05dc948db844c6eec7) cvn H.B /DEST pdfmark end 722 2922 a 0 TeXcolorgray 21 w Fx(int)p 0 0 1 TeXcolorrgb 851 2923 a SDict begin H.S end 851 2923 a 0 0 1 TeXcolorrgb -1 x Fx(v)o(ersion)p 0 0 1 TeXcolorrgb 1095 2866 a SDict begin H.R end 1095 2866 a 1095 2922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a5e2785377c404f05dc948db844c6eec7) cvn H.B /ANN pdfmark end 1095 2922 a 0 TeXcolorgray 20 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3047 a Fl(r)m(eturn)g(the)f(e)o(xtension)g(ver)o(sion)h(number)-8 b(.)p 0 TeXcolorgray 0 TeXcolorgray 652 3155 a Fx(\225)p 0 TeXcolorgray 722 3155 a SDict begin H.S end 722 3155 a 0 TeXcolorgray 0 TeXcolorgray 722 3155 a SDict begin H.R end 722 3155 a 722 3155 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_aa01c75db71c10def95aac15f1ab31c56) cvn H.B /DEST pdfmark end 722 3155 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 3156 a SDict begin H.S end 910 3156 a 0 0 1 TeXcolorrgb -1 x Fx(v)o(ersion)p 0 0 1 TeXcolorrgb 1153 3099 a SDict begin H.R end 1153 3099 a 1153 3155 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_aa01c75db71c10def95aac15f1ab31c56) cvn H.B /ANN pdfmark end 1153 3155 a 0 TeXcolorgray 21 w Fx(\(int)20 b(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3279 a Fl(set)f(the)g(e)o(xtension)g (ver)o(sion)h(number)p 0 TeXcolorgray 652 3387 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 3487 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 3488 a SDict begin H.S end 884 3488 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1055 3431 a SDict begin H.R end 1055 3431 a 1055 3487 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) cvn H.B /ANN pdfmark end 1055 3487 a 0 TeXcolorgray 15 w Fx(\(const)e(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&\002rst,)i(long)d(nElements,)h(const)g (std::v)n(alarray)p Fu(<)722 3587 y Fx(S)21 b Fu(>)f Fx(&data,)g(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3711 a Fl(Write)20 b(a)f(set)h(of)f(pixels)g(to)h (an)g(ima)o(g)o(e)g(e)o(xtension)g(with)f(the)h(\002r)o(st)f(pixel)h (speci\002ed)h(by)e(an)h(n-tuple)o(,)840 3802 y(pr)m(ocessing)g (unde\002ned)i(data.)p 0 TeXcolorgray 652 3910 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)f(S)c Fg(>)722 4010 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 890 4011 a SDict begin H.S end 890 4011 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1061 3954 a SDict begin H.R end 1061 3954 a 1061 4010 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_aa404733a67606f27fc75c26ca65c283d) cvn H.B /ANN pdfmark end 1061 4010 a 0 TeXcolorgray 22 w Fx(\(long)j(\002rst,)i(long)f(nElements,)f (const)i(std::v)n(alarray)p Fu(<)d Fx(S)j Fu(>)g Fx(&data,)f(S)h Fp(\003)p Fx(null-)722 4110 y(V)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4234 a Fl(write)18 b(arr)o(ay)h(to)f(ima)o(g)o(e)h (starting)f(with)f(a)i(speci\002ed)g(pixel)f(and)h(allowing)f (unde\002ned)j(data)d(to)g(be)840 4325 y(pr)m(ocessed)p 0 TeXcolorgray 0 TeXcolorgray 652 4433 a Fx(\225)p 0 TeXcolorgray 722 4433 a SDict begin H.S end 722 4433 a 0 TeXcolorgray 0 TeXcolorgray 722 4433 a SDict begin H.R end 722 4433 a 722 4433 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a7d507e3cc7d2bf23bc68091ea72467d9) cvn H.B /DEST pdfmark end 722 4433 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)j(S)c Fg(>)722 4533 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 4534 a SDict begin H.S end 884 4534 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1055 4477 a SDict begin H.R end 1055 4477 a 1055 4533 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a7d507e3cc7d2bf23bc68091ea72467d9) cvn H.B /ANN pdfmark end 1055 4533 a 0 TeXcolorgray 15 w Fx(\(const)e(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&\002rst,)i(long)d(nElements,)h(const)g(std::v)n(alarray)p Fu(<)722 4633 y Fx(S)21 b Fu(>)f Fx(&data\))p 0 TeXcolorgray 0 TeXcolorgray 840 4757 a Fl(write)f(arr)o(ay)g(starting)g(fr)m(om)g (speci\002ed)h(n-tuple)o(,)f(without)g(unde\002ned)i(data)f(pr)m (ocessing)p 0 TeXcolorgray 0 TeXcolorgray 652 4865 a Fx(\225)p 0 TeXcolorgray 722 4865 a SDict begin H.S end 722 4865 a 0 TeXcolorgray 0 TeXcolorgray 722 4865 a SDict begin H.R end 722 4865 a 722 4865 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a51de27149b24a20f35c6449615380799) cvn H.B /DEST pdfmark end 722 4865 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 4965 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 4966 a SDict begin H.S end 889 4966 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 4908 a SDict begin H.R end 1060 4908 a 1060 4965 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a51de27149b24a20f35c6449615380799) cvn H.B /ANN pdfmark end 1060 4965 a 0 TeXcolorgray 20 w Fx(\(long)i(\002rst,)i(long)e(nElements,)g (const)h(std::v)n(alarray)p Fu(<)f Fx(S)i Fu(>)f Fx(&data\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 77 82 TeXDict begin 77 81 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.77) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(77)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(write)19 b(arr)o(ay)g(starting)g(fr)m(om)g(speci\002ed)h(pixel)f (number)-8 b(,)19 b(without)g(unde\002ned)i(data)f(pr)m(ocessing)p 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 731 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 896 732 a SDict begin H.S end 896 732 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1067 674 a SDict begin H.R end 1067 674 a 1067 731 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a1f3af0a3897c9ad9d6653ca510e69852) cvn H.B /ANN pdfmark end 1067 731 a 0 TeXcolorgray 28 w Fx(\(const)26 b(std::v)o(ector)p Fu(<)g Fx(long)g Fu(>)i Fx(&\002rstV)-9 b(erte)o(x,)27 b(const)g(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)722 830 y Fx(&lastV)-9 b(erte)o(x,)19 b(const)h(std::v)n(alarray)p Fu(<)e Fx(S)j Fu(>)g Fx(&data\))p 0 TeXcolorgray 0 TeXcolorgray 840 955 a Fl(write)e(a)g(subset)g(\(g)o (ener)o(alize)h(slice\))f(of)g(data)g(to)g(the)g(ima)o(g)o(e)p 0.25 TeXcolorgray 515 1223 a Fo(Static)f(Pub)o(lic)g(Member)g (Functions)p 0 TeXcolorgray 515 1280 a SDict begin H.S end 515 1280 a 515 1280 a SDict begin 12 H.A end 515 1280 a 515 1280 a SDict begin [ /View [/XYZ H.V] /Dest (section*.22) cvn H.B /DEST pdfmark end 515 1280 a 0 TeXcolorgray 652 1412 a Fx(\225)p 0 TeXcolorgray 41 w(static)26 b(v)n(oid)p 0 0 1 TeXcolorrgb 1094 1413 a SDict begin H.S end 1094 1413 a 0 0 1 TeXcolorrgb -1 x Fx(readHduName)p 0 0 1 TeXcolorrgb 1578 1356 a SDict begin H.R end 1578 1356 a 1578 1412 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a921ed3185671c8647e844d4a60e9296f) cvn H.B /ANN pdfmark end 1578 1412 a 0 TeXcolorgray 26 w Fx(\(const)e (\002ts\002le)i Fp(\003)p Fx(fptr)m(,)e(int)h(hduInde)o(x,)e(String)h (&hduName,)722 1512 y(int)d(&hduV)-9 b(ersion\))p 0 TeXcolorgray 0 TeXcolorgray 840 1636 a Fl(r)m(ead)20 b(e)o(xtension)g(name)o(.)p 0.25 TeXcolorgray 515 1904 a Fo(Pr)o(otected)e(Member)g(Functions)p 0 TeXcolorgray 515 1961 a SDict begin H.S end 515 1961 a 515 1961 a SDict begin 12 H.A end 515 1961 a 515 1961 a SDict begin [ /View [/XYZ H.V] /Dest (section*.23) cvn H.B /DEST pdfmark end 515 1961 a 0 TeXcolorgray 0 TeXcolorgray 652 2093 a Fx(\225)p 0 TeXcolorgray 722 2093 a SDict begin H.S end 722 2093 a 0 TeXcolorgray 0 TeXcolorgray 722 2093 a SDict begin H.R end 722 2093 a 722 2093 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_abed636de0e6946e23bc08a6e5b315e00) cvn H.B /DEST pdfmark end 722 2093 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 2094 a SDict begin H.S end 743 2094 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1038 2039 a SDict begin H.R end 1038 2039 a 1038 2093 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_abed636de0e6946e23bc08a6e5b315e00) cvn H.B /ANN pdfmark end 1038 2093 a 0 TeXcolorgray 21 w Fx(\(FITSBase)i Fp(\003)p Fx(p,)g(HduT)-7 b(ype)19 b(xtype,)g(const)h(String)f(&hduName,)f(int)j (v)o(ersion\))p 0 TeXcolorgray 0 TeXcolorgray 840 2218 a Fl(default)f(constructor)-8 b(,)19 b(r)m(equir)m(ed)i(as)e(Standar)m (d)i(Libr)o(ary)e(Container)g(content.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2326 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2327 a SDict begin H.S end 722 2327 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1017 2272 a SDict begin H.R end 1017 2272 a 1017 2326 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a389580abe139d17f485ba9fd31e17f3f) cvn H.B /ANN pdfmark end 1017 2326 a 0 TeXcolorgray 21 w Fx(\(FITSBase)i Fp(\003)p Fx(p,)f(HduT)-7 b(ype)19 b(xtype,)g(const)h(String)g(&hduName,)e(int)j (bitpix,)e(int)722 2425 y(naxis,)h(const)g(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&ax)o(es,)g(int)g(v)o(ersion\))p 0 TeXcolorgray 0 TeXcolorgray 840 2550 a Fl(writing)f(constructor)-8 b(.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2658 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2659 a SDict begin H.S end 722 2659 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1017 2604 a SDict begin H.R end 1017 2604 a 1017 2658 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ae7f51b15ead23e1daccd9db009e7162a) cvn H.B /ANN pdfmark end 1017 2658 a 0 TeXcolorgray 21 w Fx(\(FITSBase)21 b Fp(\003)p Fx(p,)e(HduT)-7 b(ype)19 b(xtype,)g(int)h(number\))p 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 2783 a SDict begin H.S end 840 2783 a 0 0 1 TeXcolorrgb -1 x Fl(ExtHDU)p 0 0 1 TeXcolorrgb 1102 2734 a SDict begin H.R end 1102 2734 a 1102 2782 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1102 2782 a 0 TeXcolorgray 19 w Fl(constructor)g(for)f(g)o(etting)g (ExtHDUs)f(by)i(number)-8 b(.)p 0 TeXcolorgray 0 TeXcolorgray 652 2890 a Fx(\225)p 0 TeXcolorgray 722 2890 a SDict begin H.S end 722 2890 a 0 TeXcolorgray 0 TeXcolorgray 722 2890 a SDict begin H.R end 722 2890 a 722 2890 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a010ebcefb99b5855c5347cfa0ce30dec) cvn H.B /DEST pdfmark end 722 2890 a 0 TeXcolorgray 21 w Fx(long)p 0 0 1 TeXcolorrgb 911 2908 a SDict begin H.S end 911 2908 a 0 0 1 TeXcolorrgb -18 x Fx(gcount)p 0 0 1 TeXcolorrgb 1137 2843 a SDict begin H.R end 1137 2843 a 1137 2890 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a010ebcefb99b5855c5347cfa0ce30dec) cvn H.B /ANN pdfmark end 1137 2890 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3015 a Fl(r)m(eturn)g(r)m (equir)m(ed)h(gcount)f(k)o(e)n(ywor)m(d)g(value)p 0 TeXcolorgray 0 TeXcolorgray 652 3123 a Fx(\225)p 0 TeXcolorgray 722 3123 a SDict begin H.S end 722 3123 a 0 TeXcolorgray 0 TeXcolorgray 722 3123 a SDict begin H.R end 722 3123 a 722 3123 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a7c62fe03c55892e7bb4a126b775c72e6) cvn H.B /DEST pdfmark end 722 3123 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 3141 a SDict begin H.S end 910 3141 a 0 0 1 TeXcolorrgb -18 x Fx(gcount)p 0 0 1 TeXcolorrgb 1136 3076 a SDict begin H.R end 1136 3076 a 1136 3123 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a7c62fe03c55892e7bb4a126b775c72e6) cvn H.B /ANN pdfmark end 1136 3123 a 0 TeXcolorgray 20 w Fx(\(long)g(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3247 a Fl(set)f(r)m(equir)m(ed)i(gcount)f(k)o(e)n(ywor)m(d)g(value) p 0 TeXcolorgray 0 TeXcolorgray 652 3355 a Fx(\225)p 0 TeXcolorgray 722 3355 a SDict begin H.S end 722 3355 a 0 TeXcolorgray 0 TeXcolorgray 722 3355 a SDict begin H.R end 722 3355 a 722 3355 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a088cce4e4843ea71af6047355be29c9d) cvn H.B /DEST pdfmark end 722 3355 a 0 TeXcolorgray 21 w Fx(long)p 0 0 1 TeXcolorrgb 911 3373 a SDict begin H.S end 911 3373 a 0 0 1 TeXcolorrgb -18 x Fx(pcount)p 0 0 1 TeXcolorrgb 1137 3308 a SDict begin H.R end 1137 3308 a 1137 3355 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a088cce4e4843ea71af6047355be29c9d) cvn H.B /ANN pdfmark end 1137 3355 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3480 a Fl(r)m(eturn)g(r)m(equir)m(ed)h(pcount)f(k)o (e)n(ywor)m(d)g(value)p 0 TeXcolorgray 0 TeXcolorgray 652 3588 a Fx(\225)p 0 TeXcolorgray 722 3588 a SDict begin H.S end 722 3588 a 0 TeXcolorgray 0 TeXcolorgray 722 3588 a SDict begin H.R end 722 3588 a 722 3588 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a306b179a8566fdb70d54747f9857f089) cvn H.B /DEST pdfmark end 722 3588 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 3606 a SDict begin H.S end 910 3606 a 0 0 1 TeXcolorrgb -18 x Fx(pcount)p 0 0 1 TeXcolorrgb 1136 3541 a SDict begin H.R end 1136 3541 a 1136 3588 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a306b179a8566fdb70d54747f9857f089) cvn H.B /ANN pdfmark end 1136 3588 a 0 TeXcolorgray 20 w Fx(\(long)g(v)n (alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3712 a Fl(set)f(r)m(equir)m (ed)i(pcount)f(k)o(e)n(ywor)m(d)g(value)p 0 TeXcolorgray 652 3820 a Fx(\225)p 0 TeXcolorgray 41 w(HduT)-7 b(ype)p 0 0 1 TeXcolorrgb 1050 3821 a SDict begin H.S end 1050 3821 a 0 0 1 TeXcolorrgb -1 x Fx(xtension)p 0 0 1 TeXcolorrgb 1331 3764 a SDict begin H.R end 1331 3764 a 1331 3820 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ad3a43454577309abb2ec1ebe97d3375b) cvn H.B /ANN pdfmark end 1331 3820 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3945 a Fl(r)m(eturn)g(the)f (e)o(xtension)g(type)p 0 TeXcolorgray 0 TeXcolorgray 652 4053 a Fx(\225)p 0 TeXcolorgray 722 4053 a SDict begin H.S end 722 4053 a 0 TeXcolorgray 0 TeXcolorgray 722 4053 a SDict begin H.R end 722 4053 a 722 4053 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_aa3b17f06451c8d1bf07e1e1829749c04) cvn H.B /DEST pdfmark end 722 4053 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 4054 a SDict begin H.S end 910 4054 a 0 0 1 TeXcolorrgb -1 x Fx(xtension)p 0 0 1 TeXcolorrgb 1191 3996 a SDict begin H.R end 1191 3996 a 1191 4053 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_aa3b17f06451c8d1bf07e1e1829749c04) cvn H.B /ANN pdfmark end 1191 4053 a 0 TeXcolorgray 21 w Fx(\(HduT)-7 b(ype)18 b(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4177 a Fl(set)h(the)g(e)o(xtension)g(type)515 4314 y SDict begin H.S end 515 4314 a 515 4314 a SDict begin 12 H.A end 515 4314 a 515 4314 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.12.1) cvn H.B /DEST pdfmark end 515 4314 a 0.25 TeXcolorgray 131 x Fo(24.12.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 4648 a Fx(base)i(class)h(for)f(all)p 0 0 1 TeXcolorrgb 1087 4649 a SDict begin H.S end 1087 4649 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1257 4592 a SDict begin H.R end 1257 4592 a 1257 4648 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1257 4648 a 0 TeXcolorgray 21 w Fx(e)o(xtension)f(HDUs,)h (i.e.)25 b(Image)20 b(Extensions)f(and)g(T)-7 b(ables.)p 0 0 1 TeXcolorrgb 515 4796 a SDict begin H.S end 515 4796 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 810 4741 a SDict begin H.R end 810 4741 a 810 4795 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 810 4795 a 0 TeXcolorgray 24 w Fx(needs)23 b(to)g(ha)n(v)o(e)g(the)g(combined)f(public)g(interf)o(ace)h(of)p 0 0 1 TeXcolorrgb 2428 4796 a SDict begin H.S end 2428 4796 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2610 4739 a SDict begin H.R end 2610 4739 a 2610 4795 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2610 4795 a 0 TeXcolorgray 24 w Fx(objects)23 b(and)g(images.)34 b(It)515 4895 y(achie)n(v)o(es)17 b(this)h(by)f(pro)o(viding)e(the)j(same)g(set)g(of)g(read)f(and)g (write)h(operations)e(as)p 0 0 1 TeXcolorrgb 2842 4896 a SDict begin H.S end 2842 4896 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 3068 4841 a SDict begin H.R end 3068 4841 a 3068 4895 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 3068 4895 a 0 TeXcolorgray Fx(,)i(and)f(also)515 4994 y(pro)o(viding)f(the)j (same)f(operations)g(for)g(e)o(xtracting)f(columns)h(from)f(the)i(e)o (xtension)f(as)h(does)p 0 0 1 TeXcolorrgb 3197 4995 a SDict begin H.S end 3197 4995 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 3379 4938 a SDict begin H.R end 3379 4938 a 3379 4994 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 3379 4994 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 78 83 TeXDict begin 78 82 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.78) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(78)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx([)o(after)32 b(which)f(the)g(column)f(interf) o(ace)h(is)h(accessible])o(.)60 b(Dif)n(ferentiation)29 b(between)i(e)o(xtension)515 623 y(types)22 b(operates)h(by)f(e)o (xception)f(handling:)29 b(.i.e.)k(attempting)22 b(to)h(access)g(image) f(data)h(structures)515 722 y(on)31 b(a)p 0 0 1 TeXcolorrgb 699 723 a SDict begin H.S end 699 723 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 881 666 a SDict begin H.R end 881 666 a 881 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 881 722 a 0 TeXcolorgray 33 w Fx(object)31 b(through)e(the)p 0 0 1 TeXcolorrgb 1573 723 a SDict begin H.S end 1573 723 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1868 668 a SDict begin H.R end 1868 668 a 1868 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1868 722 a 0 TeXcolorgray 32 w Fx(interf)o(ace)i(will)h (or)g(trying)e(to)i(return)e(a)p 0 0 1 TeXcolorrgb 3111 723 a SDict begin H.S end 3111 723 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 3379 666 a SDict begin H.R end 3379 666 a 3379 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 3379 722 a 0 TeXcolorgray 515 822 a Fx(reference)18 b(from)h(an)i(Image)e(e)o (xtension)f(will)j(both)f(thro)n(w)f(an)h(e)o(xception)515 961 y SDict begin H.S end 515 961 a 515 961 a SDict begin 12 H.A end 515 961 a 515 961 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.12.2) cvn H.B /DEST pdfmark end 515 961 a 0.25 TeXcolorgray 129 x Fo(24.12.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1293 a SDict begin H.S end 515 1293 a 0 TeXcolorgray 0 TeXcolorgray 515 1293 a SDict begin H.R end 515 1293 a 515 1293 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a389580abe139d17f485ba9fd31e17f3f) cvn H.B /DEST pdfmark end 515 1293 a 0 TeXcolorgray 515 1330 a SDict begin H.S end 515 1330 a 515 1330 a SDict begin 12 H.A end 515 1330 a 515 1330 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.2.1) cvn H.B /DEST pdfmark end 515 1330 a 0.25 TeXcolorgray 147 x Fo(24.12.2.1)75 b(CC\002ts::ExtHDU::ExtHDU)25 b(\()41 b(FITSBase)21 b Fp(\003)f Fk(p,)42 b Fo(HduT)l(ype)22 b Fk(xtype)q(,)43 b Fo(const)21 b(String)h(&)845 1577 y Fk(hduName)q(,)39 b Fo(int)19 b Fk(bitpix,)39 b Fo(int)20 b Fk(naxis,)38 b Fo(const)19 b(std::vector)p Fu(<)i Fo(long)e Fu(>)f Fo(&)h Fk(ax)o(es,)38 b Fo(int)19 b Fk(ver)o(sion)38 b Fo(\))845 1677 y Fr([protected])p 0 TeXcolorgray 515 1861 a Fx(writing)19 b(constructor)-5 b(.)515 2008 y(The)28 b(writing)h(constructor)d(forces)j(the)g(user)f(to)h(supply)f(a)h(name) g(for)f(the)p 0 0 1 TeXcolorrgb 2754 2009 a SDict begin H.S end 2754 2009 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2933 1954 a SDict begin H.R end 2933 1954 a 2933 2008 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2933 2008 a 0 TeXcolorgray Fx(.)52 b(The)28 b(bitpix,)515 2107 y(nax)o(es)22 b(and)g(naxis)h(data) g(required)e(by)i(this)g(constructor)e(are)i(required)p 0 0 1 TeXcolorrgb 2602 2108 a SDict begin H.S end 2602 2108 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2773 2051 a SDict begin H.R end 2773 2051 a 2773 2107 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2773 2107 a 0 TeXcolorgray 24 w Fx(k)o(e)o(yw)o(ords)e (for)h(an)o(y)515 2207 y(HDUs.)p 0 TeXcolorgray 773 2207 a SDict begin H.S end 773 2207 a 0 TeXcolorgray 0 TeXcolorgray 773 2207 a SDict begin H.R end 773 2207 a 773 2207 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_ae7f51b15ead23e1daccd9db009e7162a) cvn H.B /DEST pdfmark end 773 2207 a 0 TeXcolorgray 515 2245 a SDict begin H.S end 515 2245 a 515 2245 a SDict begin 12 H.A end 515 2245 a 515 2245 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.2.2) cvn H.B /DEST pdfmark end 515 2245 a 0.25 TeXcolorgray 146 x Fo(24.12.2.2)75 b(CC\002ts::ExtHDU::ExtHDU)25 b(\()42 b(FITSBase)21 b Fp(\003)f Fk(p,)43 b Fo(HduT)l(ype)23 b Fk(xtype)q(,)44 b Fo(int)21 b Fk(n)o(umber)43 b Fo(\))845 2491 y Fr([protected])p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2676 a SDict begin H.S end 515 2676 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 810 2621 a SDict begin H.R end 810 2621 a 810 2675 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 810 2675 a 0 TeXcolorgray 21 w Fx(constructor)18 b(for)h(getting)h(ExtHDUs) g(by)g(number)-5 b(.)515 2822 y(Necessary)15 b(since)h(EXTNAME)f(is)i (a)f(reserv)o(ed,)f(not)g(required,)g(k)o(e)o(yw)o(ord.)22 b(But)16 b(a)g(synthetic)f(name)515 2922 y(is)21 b(supplied)e(by)h (static)p 0 0 1 TeXcolorrgb 1193 2923 a SDict begin H.S end 1193 2923 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU::readHduName)p 0 0 1 TeXcolorrgb 2018 2865 a SDict begin H.R end 2018 2865 a 2018 2922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a921ed3185671c8647e844d4a60e9296f) cvn H.B /ANN pdfmark end 2018 2922 a 0 TeXcolorgray 21 w Fx(which)g(is)h(called)f(by)f(this)i(constructor)-5 b(.)515 3061 y SDict begin H.S end 515 3061 a 515 3061 a SDict begin 12 H.A end 515 3061 a 515 3061 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.12.3) cvn H.B /DEST pdfmark end 515 3061 a 0.25 TeXcolorgray 129 x Fo(24.12.3)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3393 a SDict begin H.S end 515 3393 a 0 TeXcolorgray 0 TeXcolorgray 515 3393 a SDict begin H.R end 515 3393 a 515 3393 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a1a4ee80da434b132a5b9015e3d939c11) cvn H.B /DEST pdfmark end 515 3393 a 0 TeXcolorgray 515 3430 a SDict begin H.S end 515 3430 a 515 3430 a SDict begin 12 H.A end 515 3430 a 515 3430 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.1) cvn H.B /DEST pdfmark end 515 3430 a 0.25 TeXcolorgray 147 x Fo(24.12.3.1)75 b(v)n(oid)19 b(CC\002ts::ExtHDU::ad)o(dColum)q(n)24 b(\()36 b Fy(V)-8 b(alueT)i(ype)17 b Fk(type)q(,)37 b Fo(const)19 b(String)g(&)f Fk(columnName)q(,)845 3677 y Fo(long)h Fk(repeatWidth,)39 b Fo(const)19 b(String)g(&)f Fk(colUnit)i(=)e Fr(String\(""\))p Fk(,)35 b Fo(long)19 b Fk(decimals)g(=)f Fr(-1)p Fk(,)845 3776 y Fo(siz)q(e)p 966 3776 23 4 v 26 w(t)g Fk(columnNumber)i(=)d Fr(0)34 b Fo(\))71 b Fr([virtual])p 0 TeXcolorgray 515 3960 a Fx(add)19 b(a)i(ne)n(w)f(column)f(to)h(an)g (e)o(xisting)g(table)p 0 0 1 TeXcolorrgb 1789 3961 a SDict begin H.S end 1789 3961 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1969 3906 a SDict begin H.R end 1969 3906 a 1969 3960 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1969 3960 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4170 a Fo(P)n(arameter)o(s) p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4113 a SDict begin H.S end 515 4113 a 515 4113 a SDict begin 12 H.A end 515 4113 a 515 4113 a SDict begin [ /View [/XYZ H.V] /Dest (table.36) cvn H.B /DEST pdfmark end 515 4113 a 515 4216 2889 4 v 515 4216 V 515 4316 4 100 v 838 4286 a Ft(type)p 1005 4316 V 60 w Fx(The)g(data)g(type)g(of)f(the)i(column)d(to)j(be)f (added)p 3400 4316 V 515 4319 2889 4 v 515 4319 V 515 4518 4 200 v 704 4389 a Ft(column-)783 4488 y(Name)p 1005 4518 V 1037 4389 a Fx(The)g(name)f(of)h(the)g(column)f(to)i(be)f (added)p 3400 4518 V 515 4522 2889 4 v 515 4522 V 515 4820 4 299 v 573 4591 a Ft(r)m(epeatW)-5 b(idth)p 1005 4820 V 60 w Fx(for)21 b(a)h(string)f(v)n(alued,)f(this)j(is)f(the)g (width)f(of)g(a)h(string.)29 b(F)o(or)21 b(a)h(numeric)e(column)1037 4691 y(it)28 b(supplies)f(the)g(v)o(ector)f(length)g(of)h(the)g(ro)n (ws.)46 b(It)28 b(is)g(ignored)d(for)i(ascii)h(table)1037 4791 y(numeric)19 b(data.)p 3400 4820 V 515 4824 2889 4 v 515 4824 V 515 4923 4 100 v 727 4894 a Ft(colUnit)p 1005 4923 V 60 w Fx(an)h(optional)f(\002eld)h(specifying)f(the)h(units) g(of)g(the)g(data)h(\(TUNITn\))p 3400 4923 V 515 4927 2889 4 v 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 79 84 TeXDict begin 79 83 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.79) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(79)p 515 236 2865 4 v 0 TeXcolorgray 515 523 2889 4 v 515 722 4 200 v 681 593 a Ft(decimals)p 1005 722 V 60 w Fx(optional)21 b(parameter)f (specifying)h(the)h(number)e(of)i(decimals)g(for)g(an)g(ascii)h(nu-) 1037 692 y(meric)d(column)p 3400 722 V 515 726 2889 4 v 515 726 V 515 1224 4 499 v 704 795 a Ft(column-)709 895 y(Number)p 1005 1224 V 1037 795 a Fx(optional)30 b(parameter)g(specifying)g(column)g(number)g(to)i(be)f(created.)59 b(If)31 b(not)1037 895 y(speci\002ed)c(the)g(column)e(is)j(added)e(to)h (the)g(end.)45 b(If)27 b(speci\002ed,)h(the)f(column)f(is)1037 995 y(inserted)18 b(and)g(the)h(columns)f(already)g(read)g(are)h (reinde)o(x)o(ed.)j(This)d(parameter)e(is)1037 1094 y(pro)o(vided)i(as) j(a)g(con)m(v)o(enience)c(to)k(support)e(e)o(xisting)h(code)g(rather)f (than)h(recom-)1037 1194 y(mended.)p 3400 1224 V 515 1227 2889 4 v 515 1227 V 515 1457 a(Reimplemented)d(in)p 0 0 1 TeXcolorrgb 1147 1458 a SDict begin H.S end 1147 1458 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1763 1401 a SDict begin H.R end 1763 1401 a 1763 1457 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable_a245630609bfb16d581263b7ee868ce10) cvn H.B /ANN pdfmark end 1763 1457 a 0 TeXcolorgray Fx(,)20 b(and)p 0 0 1 TeXcolorrgb 1945 1458 a SDict begin H.S end 1945 1458 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::BinT)-7 b(able)p 0 0 1 TeXcolorrgb 2506 1401 a SDict begin H.R end 2506 1401 a 2506 1457 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable_a60e89ab762910b76155da983554d433d) cvn H.B /ANN pdfmark end 2506 1457 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1604 a SDict begin H.S end 515 1604 a 0 TeXcolorgray 0 TeXcolorgray 515 1604 a SDict begin H.R end 515 1604 a 515 1604 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) cvn H.B /DEST pdfmark end 515 1604 a 0 TeXcolorgray 515 1641 a SDict begin H.S end 515 1641 a 515 1641 a SDict begin 12 H.A end 515 1641 a 515 1641 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.2) cvn H.B /DEST pdfmark end 515 1641 a 0.25 TeXcolorgray 147 x Fo(24.12.3.2)75 b Fy(Column)17 b Fo(&)h(CC\002ts::ExtHDU::column)23 b(\()35 b(const)19 b(String)f(&)g Fk(colName)q(,)36 b Fo(bool)19 b Fk(caseSensitive)g(=) 845 1888 y Fr(true)33 b Fo(\))18 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 2072 a Fx(return)19 b(a)h(reference)f(to)h(a)p 0 0 1 TeXcolorrgb 1264 2073 a SDict begin H.S end 1264 2073 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1446 2016 a SDict begin H.R end 1446 2016 a 1446 2072 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1446 2072 a 0 TeXcolorgray 21 w Fx(column)19 b(speci\002ed)h(by)f(name.)515 2219 y(If)25 b(the)g Ft(caseSensitive)f Fx(parameter)g(is)i(set)g(to)f(f)o(alse,)i(the)e(search)g(will)h(be)f (case-insensiti)n(v)o(e.)39 b(The)515 2318 y(o)o(v)o(erridden)16 b(base)k(class)h(implementation)p 0 0 1 TeXcolorrgb 1784 2319 a SDict begin H.S end 1784 2319 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU::column)p 0 0 1 TeXcolorrgb 2374 2262 a SDict begin H.R end 2374 2262 a 2374 2318 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) cvn H.B /ANN pdfmark end 2374 2318 a 0 TeXcolorgray 20 w Fx(thro)n(ws)f(an)g(e)o(xception,)d (which)j(is)515 2418 y(thus)g(the)g(action)g(to)g(be)g(tak)o(en)g(if)g (self)h(is)g(an)f(image)g(e)o(xtension)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2629 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2587 a SDict begin H.S end 515 2587 a 515 2587 a SDict begin 12 H.A end 515 2587 a 515 2587 a SDict begin [ /View [/XYZ H.V] /Dest (table.37) cvn H.B /DEST pdfmark end 515 2587 a 0.5 TeXcolorgray 515 2690 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2690 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2789 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 2789 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 558 2776 a SDict begin H.S end 558 2776 a 0 0 1 TeXcolorrgb -17 x Ft(Wr)l(ongExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1263 2706 a SDict begin H.R end 1263 2706 a 1263 2759 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1263 2759 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 2789 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 2789 2263 100 v 0 TeXcolorgray 60 w Fx(see)21 b(abo)o(v)o(e)p 0.5 TeXcolorgray 3557 2789 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2793 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2793 V 0 TeXcolorgray 515 3022 a(Reimplemented)d(in)p 0 0 1 TeXcolorrgb 1147 3023 a SDict begin H.S end 1147 3023 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 2966 a SDict begin H.R end 1587 2966 a 1587 3022 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_ae578460dd522485e48ccd8f4536e5531) cvn H.B /ANN pdfmark end 1587 3022 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 3169 a SDict begin H.S end 515 3169 a 0 TeXcolorgray 0 TeXcolorgray 515 3169 a SDict begin H.R end 515 3169 a 515 3169 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a06d5f1ebd32e0228790c8b4e4b57e2e4) cvn H.B /DEST pdfmark end 515 3169 a 0 TeXcolorgray 515 3207 a SDict begin H.S end 515 3207 a 515 3207 a SDict begin 12 H.A end 515 3207 a 515 3207 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.3) cvn H.B /DEST pdfmark end 515 3207 a 0.25 TeXcolorgray 147 x Fo(24.12.3.3)75 b Fy(Column)17 b Fo(&)g(CC\002ts::ExtHDU::column)23 b(\()35 b(int)18 b Fk(colInde)o(x)35 b Fo(\))18 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 3538 a Fx(return)19 b(a)h(reference)f(to)h(a)p 0 0 1 TeXcolorrgb 1264 3539 a SDict begin H.S end 1264 3539 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1446 3482 a SDict begin H.R end 1446 3482 a 1446 3538 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1446 3538 a 0 TeXcolorgray 21 w Fx(column)19 b(speci\002ed)h(by)f (column)g(inde)o(x.)515 3685 y(This)f(v)o(ersion)e(is)j(pro)o(vided)d (for)h(con)m(v)o(enience;)f(the)i(')l(return)e(by)h(name')g(v)o(ersion) g(is)i(more)e(ef)n(\002cient)515 3784 y(because)i(columns)g(are)h (stored)g(in)g(an)h(associati)n(v)o(e)e(array)h(sorted)f(by)h(name.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3995 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3953 a SDict begin H.S end 515 3953 a 515 3953 a SDict begin 12 H.A end 515 3953 a 515 3953 a SDict begin [ /View [/XYZ H.V] /Dest (table.38) cvn H.B /DEST pdfmark end 515 3953 a 0.5 TeXcolorgray 515 4056 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4056 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4156 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 4156 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 558 4143 a SDict begin H.S end 558 4143 a 0 0 1 TeXcolorrgb -17 x Ft(Wr)l(ongExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1263 4072 a SDict begin H.R end 1263 4072 a 1263 4126 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1263 4126 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 4156 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 4156 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)19 b(if)i Fp(\003)p Fx(this)f(is)h(an)f(image)g(e)o(xtension.)p 0.5 TeXcolorgray 3557 4156 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4159 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4159 V 0 TeXcolorgray 515 4373 a(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 4374 a SDict begin H.S end 1147 4374 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 4317 a SDict begin H.R end 1587 4317 a 1587 4373 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a67eb478179846fc940e202476b4c08a3) cvn H.B /ANN pdfmark end 1587 4373 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 4520 a SDict begin H.S end 515 4520 a 0 TeXcolorgray 0 TeXcolorgray 515 4520 a SDict begin H.R end 515 4520 a 515 4520 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_ab121d5ab64abcc0a5df4ca7955bec2e9) cvn H.B /DEST pdfmark end 515 4520 a 0 TeXcolorgray 515 4558 a SDict begin H.S end 515 4558 a 515 4558 a SDict begin 12 H.A end 515 4558 a 515 4558 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.4) cvn H.B /DEST pdfmark end 515 4558 a 0.25 TeXcolorgray 146 x Fo(24.12.3.4)75 b(const)22 b(map)p Fu(<)e Fo(string,)j Fy(Column)d Fp(\003)g Fu(>)g Fo(&)g(CC\002ts::ExtHDU::column)26 b(\()82 b(\))21 b(const)845 4804 y Fr([virtual])p 0 TeXcolorgray 515 4988 a Fx(return)e(a)h(reference)f(to)h(the)g(array)g(containing)e (the)i(columns.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 80 85 TeXDict begin 80 84 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.80) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(80)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 495 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 452 a SDict begin H.S end 515 452 a 515 452 a SDict begin 12 H.A end 515 452 a 515 452 a SDict begin [ /View [/XYZ H.V] /Dest (table.39) cvn H.B /DEST pdfmark end 515 452 a 0.5 TeXcolorgray 515 555 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 555 V 0 TeXcolorgray 0.5 TeXcolorgray 515 655 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 655 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 558 642 a SDict begin H.S end 558 642 a 0 0 1 TeXcolorrgb -17 x Ft(Wr)l(ongExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1263 571 a SDict begin H.R end 1263 571 a 1263 625 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1263 625 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 655 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 655 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)19 b(if)i Fp(\003)p Fx(this)f(is)h(an)f(image)g(e)o(xtension.)p 0.5 TeXcolorgray 3557 655 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 658 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 658 V 0 TeXcolorgray 515 888 a(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 889 a SDict begin H.S end 1147 889 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 832 a SDict begin H.R end 1587 832 a 1587 888 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a573b295bfdd242a99d97d0d3a1dd4982) cvn H.B /ANN pdfmark end 1587 888 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1035 a SDict begin H.S end 515 1035 a 0 TeXcolorgray 0 TeXcolorgray 515 1035 a SDict begin H.R end 515 1035 a 515 1035 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_aaee3fda1eb075ef4ee7a9178114bd00d) cvn H.B /DEST pdfmark end 515 1035 a 0 TeXcolorgray 515 1072 a SDict begin H.S end 515 1072 a 515 1072 a SDict begin 12 H.A end 515 1072 a 515 1072 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.5) cvn H.B /DEST pdfmark end 515 1072 a 0.25 TeXcolorgray 147 x Fo(24.12.3.5)75 b(v)n(oid)18 b(CC\002ts::ExtHDU::deleteColum)q(n)23 b(\()35 b(const)18 b(String)g(&)g Fk(columnName)36 b Fo(\))72 b Fr([)o(virtual])p 0 TeXcolorgray 515 1403 a Fx(delete)20 b(a)g(column)f(in)i(a)p 0 0 1 TeXcolorrgb 1204 1404 a SDict begin H.S end 1204 1404 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1387 1347 a SDict begin H.R end 1387 1347 a 1387 1403 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1387 1403 a 0 TeXcolorgray 20 w Fx(e)o(xtension)19 b(by)h(name.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1613 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1556 a SDict begin H.S end 515 1556 a 515 1556 a SDict begin 12 H.A end 515 1556 a 515 1556 a SDict begin [ /View [/XYZ H.V] /Dest (table.40) cvn H.B /DEST pdfmark end 515 1556 a 0.5 TeXcolorgray 515 1659 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1659 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1858 4 200 v 0 TeXcolorgray 704 1729 a Ft(column-)783 1828 y(Name)p 0.5 TeXcolorgray 1005 1858 V 0 TeXcolorgray 1037 1729 a Fx(The)g(name)f(of)h(the)g(column)f(to)i(be)f(deleted.)p 0.5 TeXcolorgray 3400 1858 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1861 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1861 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 2138 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2095 a SDict begin H.S end 515 2095 a 515 2095 a SDict begin 12 H.A end 515 2095 a 515 2095 a SDict begin [ /View [/XYZ H.V] /Dest (table.41) cvn H.B /DEST pdfmark end 515 2095 a 0.5 TeXcolorgray 515 2198 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2198 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2298 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 2298 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 558 2285 a SDict begin H.S end 558 2285 a 0 0 1 TeXcolorrgb -17 x Ft(Wr)l(ongExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1263 2214 a SDict begin H.R end 1263 2214 a 1263 2268 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1263 2268 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 2298 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 2298 2263 100 v 0 TeXcolorgray 60 w Fx(if)21 b(e)o(xtension)e(is)i(an)f(image.)p 0.5 TeXcolorgray 3557 2298 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2301 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2301 V 0 TeXcolorgray 515 2531 a(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 2532 a SDict begin H.S end 1147 2532 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 2475 a SDict begin H.R end 1587 2475 a 1587 2531 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a19bde9d4a37a2ee07016ef627e5fecde) cvn H.B /ANN pdfmark end 1587 2531 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 2678 a SDict begin H.S end 515 2678 a 0 TeXcolorgray 0 TeXcolorgray 515 2678 a SDict begin H.R end 515 2678 a 515 2678 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a5a480387701525f75ea450dac7510f23) cvn H.B /DEST pdfmark end 515 2678 a 0 TeXcolorgray 515 2715 a SDict begin H.S end 515 2715 a 515 2715 a SDict begin 12 H.A end 515 2715 a 515 2715 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.6) cvn H.B /DEST pdfmark end 515 2715 a 0.25 TeXcolorgray 147 x Fo(24.12.3.6)75 b(long)18 b(CC\002ts::ExtHDU::g)q(etRo)o(wsiz)q(e)k(\() 68 b(\))18 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 3046 a Fx(return)19 b(the)h(optimal)f(number)g(of)h(ro)n(ws)g(to)g (read)g(or)g(write)g(at)h(a)f(time)515 3193 y(A)j(wrapper)e(for)h(the)g (CFITSIO)h(function)d(\002ts_get_ro)n(wsize,)i(useful)g(for)g (obtaining)e(maximum)515 3293 y(I/O)g(ef)n(\002cienc)o(y)-5 b(.)23 b(This)e(will)g(thro)n(w)e(if)h(it)h(is)g(not)f(called)g(for)g (a)p 0 0 1 TeXcolorrgb 2278 3294 a SDict begin H.S end 2278 3294 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2460 3236 a SDict begin H.R end 2460 3236 a 2460 3293 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2460 3293 a 0 TeXcolorgray 21 w Fx(e)o(xtension.)515 3440 y(Reimplemented)18 b(in)p 0 0 1 TeXcolorrgb 1147 3441 a SDict begin H.S end 1147 3441 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 3383 a SDict begin H.R end 1587 3383 a 1587 3440 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a54e2948a7603a058c6a3cd99f0806ac9) cvn H.B /ANN pdfmark end 1587 3440 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 3587 a SDict begin H.S end 515 3587 a 0 TeXcolorgray 0 TeXcolorgray 515 3587 a SDict begin H.R end 515 3587 a 515 3587 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a9942fedcef3502a764ee25b143acdfb1) cvn H.B /DEST pdfmark end 515 3587 a 0 TeXcolorgray 515 3624 a SDict begin H.S end 515 3624 a 515 3624 a SDict begin 12 H.A end 515 3624 a 515 3624 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.7) cvn H.B /DEST pdfmark end 515 3624 a 0.25 TeXcolorgray 147 x Fo(24.12.3.7)75 b(bool)18 b(CC\002ts::ExtHDU::isCompressed)24 b(\()68 b(\))18 b(const)p 0 TeXcolorgray 515 3955 a Fx(return)h(true)h (if)g(image)g(is)h(stored)f(using)f(compression.)515 4102 y(This)24 b(is)h(simply)e(a)h(wrapper)f(around)f(the)h(CFITSIO)h (\002ts_is_compressed_image)d(function.)34 b(It)515 4201 y(will)21 b(thro)n(w)e(if)i(this)f(is)h(not)f(an)g(Image)g(e)o (xtension.)p 0 TeXcolorgray 1983 4201 a SDict begin H.S end 1983 4201 a 0 TeXcolorgray 0 TeXcolorgray 1983 4201 a SDict begin H.R end 1983 4201 a 1983 4201 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a16730a075858cd50bfa3daad60c0a1c0) cvn H.B /DEST pdfmark end 1983 4201 a 0 TeXcolorgray 515 4257 a SDict begin H.S end 515 4257 a 515 4257 a SDict begin 12 H.A end 515 4257 a 515 4257 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.8) cvn H.B /DEST pdfmark end 515 4257 a 0.25 TeXcolorgray 129 x Fo(24.12.3.8)75 b(v)n(oid)18 b(CC\002ts::ExtHDU::makeThisCu)q (rrent)23 b(\()69 b(\))17 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 4570 a Fx(mo)o(v)o(e)18 b(the)j(\002ts\002le)g (pointer)e(to)h(this)h(current)p 0 0 1 TeXcolorrgb 1806 4571 a SDict begin H.S end 1806 4571 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1986 4516 a SDict begin H.R end 1986 4516 a 1986 4570 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1986 4570 a 0 TeXcolorgray Fx(.)515 4717 y(This)28 b(function)e(should)h(ne) n(v)o(er)g(need)g(to)h(be)g(called)g(by)f(the)h(user)g(since)g(it)h(is) g(called)f(internally)515 4816 y(whene)n(v)o(er)18 b(required.)515 4963 y(Reimplemented)g(from)p 0 0 1 TeXcolorrgb 1243 4964 a SDict begin H.S end 1243 4964 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1682 4907 a SDict begin H.R end 1682 4907 a 1682 4963 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_af0bbec3fe5f6b41ff4a95feff6600d57) cvn H.B /ANN pdfmark end 1682 4963 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 81 86 TeXDict begin 81 85 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.81) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(81)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a SDict begin H.S end 515 523 a 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.R end 515 523 a 515 523 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_af63318f88dad6665781c9d699324a3a3) cvn H.B /DEST pdfmark end 515 523 a 0 TeXcolorgray 515 560 a SDict begin H.S end 515 560 a 515 560 a SDict begin 12 H.A end 515 560 a 515 560 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.9) cvn H.B /DEST pdfmark end 515 560 a 0.25 TeXcolorgray 147 x Fo(24.12.3.9)75 b(int)18 b(CC\002ts::ExtHDU::n)o(umCols)24 b(\()68 b(\))17 b(const)73 b Fr([virtual])p 0 TeXcolorgray 515 891 a Fx(return)19 b(the)h(number)e(of)i(Columns)g(in)g(the)p 0 0 1 TeXcolorrgb 1748 892 a SDict begin H.S end 1748 892 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1931 835 a SDict begin H.R end 1931 835 a 1931 891 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1931 891 a 0 TeXcolorgray 21 w Fx(\(the)19 b(TFIELDS)h(k)o(e)o (yw)o(ord\).)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1103 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1060 a SDict begin H.S end 515 1060 a 515 1060 a SDict begin 12 H.A end 515 1060 a 515 1060 a SDict begin [ /View [/XYZ H.V] /Dest (table.42) cvn H.B /DEST pdfmark end 515 1060 a 0.5 TeXcolorgray 515 1163 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1163 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1263 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 1263 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 558 1250 a SDict begin H.S end 558 1250 a 0 0 1 TeXcolorrgb -17 x Ft(Wr)l(ongExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1263 1179 a SDict begin H.R end 1263 1179 a 1263 1233 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1263 1233 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 1263 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 1263 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)19 b(if)i Fp(\003)p Fx(this)f(is)h(an)f(image)g(e)o(xtension.)p 0.5 TeXcolorgray 3557 1263 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1266 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1266 V 0 TeXcolorgray 515 1496 a(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 1497 a SDict begin H.S end 1147 1497 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 1440 a SDict begin H.R end 1587 1440 a 1587 1496 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) cvn H.B /ANN pdfmark end 1587 1496 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1643 a SDict begin H.S end 515 1643 a 0 TeXcolorgray 0 TeXcolorgray 515 1643 a SDict begin H.R end 515 1643 a 515 1643 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a1ea37193efa315fd47f0f104f08aae88) cvn H.B /DEST pdfmark end 515 1643 a 0 TeXcolorgray 515 1680 a SDict begin H.S end 515 1680 a 515 1680 a SDict begin 12 H.A end 515 1680 a 515 1680 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.10) cvn H.B /DEST pdfmark end 515 1680 a 0.25 TeXcolorgray 147 x Fo(24.12.3.10)75 b(template)p Fu(<)p Fo(typename)21 b(S)16 b Fu(>)h Fo(v)n(oid)h(CC\002ts::ExtHDU::read)k(\()34 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)f Fu(>)g Fo(&)g Fk(ima)o(g)q(e)35 b Fo(\))p 0 TeXcolorgray 515 2011 a Fx(Read)20 b(image)g(data)g(into)g(container)-5 b(.)515 2158 y(The)16 b(container)f(image)h(contains)g(the)h(entire)f(image)g (array)g(after)h(the)f(call.)24 b(This)17 b(and)f(all)i(the)e(other)515 2258 y(v)n(ariants)21 b(of)p 0 0 1 TeXcolorrgb 890 2273 a SDict begin H.S end 890 2273 a 0 0 1 TeXcolorrgb -15 x Fx(read\(\))p 0 0 1 TeXcolorrgb 1088 2201 a SDict begin H.R end 1088 2201 a 1088 2258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a1ea37193efa315fd47f0f104f08aae88) cvn H.B /ANN pdfmark end 1088 2258 a 0 TeXcolorgray 23 w Fx(thro)n(w)g(a)p 0 0 1 TeXcolorrgb 1384 2276 a SDict begin H.S end 1384 2276 a 0 0 1 TeXcolorrgb -18 x Fx(WrongExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 2111 2201 a SDict begin H.R end 2111 2201 a 2111 2258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 2111 2258 a 0 TeXcolorgray 22 w Fx(e)o(xception)20 b(if)j(called)f(for)f(a)p 0 0 1 TeXcolorrgb 2950 2259 a SDict begin H.S end 2950 2259 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 3133 2201 a SDict begin H.R end 3133 2201 a 3133 2258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 3133 2258 a 0 TeXcolorgray 22 w Fx(object.)p 0 TeXcolorgray 515 2357 a SDict begin H.S end 515 2357 a 0 TeXcolorgray 0 TeXcolorgray 515 2357 a SDict begin H.R end 515 2357 a 515 2357 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a26d0af71eaf7ad073ba160143c2a8f56) cvn H.B /DEST pdfmark end 515 2357 a 0 TeXcolorgray 515 2395 a SDict begin H.S end 515 2395 a 515 2395 a SDict begin 12 H.A end 515 2395 a 515 2395 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.11) cvn H.B /DEST pdfmark end 515 2395 a 0.25 TeXcolorgray 147 x Fo(24.12.3.11)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)h (CC\002ts::ExtHDU::read)k(\()36 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)g Fu(>)f Fo(&)h Fk(ima)o(g)q(e)q(,)879 2641 y Fo(long)g Fk(\002r)o(st,)35 b Fo(long)19 b Fk(nElements,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 2825 a Fx(read)19 b(part)h(of)g(an)g(image)g(array) -5 b(,)19 b(processing)f(null)i(v)n(alues.)515 2972 y(Implicit)j(data)h (con)m(v)o(ersion)d(is)j(supported)e(\(i.e.)35 b(user)24 b(does)f(not)h(need)f(to)h(kno)n(w)e(the)i(type)f(of)h(the)515 3072 y(data)c(stored.)k(A)p 0 0 1 TeXcolorrgb 1004 3090 a SDict begin H.S end 1004 3090 a 0 0 1 TeXcolorrgb -18 x Fx(WrongExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1731 3016 a SDict begin H.R end 1731 3016 a 1731 3072 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1731 3072 a 0 TeXcolorgray 20 w Fx(e)o(xtension)19 b(is)i(thro)n(wn)e(if)h Fp(\003)p Fx(this)h(is)g(not)f(an)g(image.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3282 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3225 a SDict begin H.S end 515 3225 a 515 3225 a SDict begin 12 H.A end 515 3225 a 515 3225 a SDict begin [ /View [/XYZ H.V] /Dest (table.43) cvn H.B /DEST pdfmark end 515 3225 a 0.5 TeXcolorgray 515 3328 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3328 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3427 4 100 v 0 TeXcolorgray 775 3397 a Ft(ima)o(g)o(e)p 0.5 TeXcolorgray 1005 3427 V 0 TeXcolorgray 60 w Fx(The)g(recei)n(ving)e(container)m(,)g (a)j(std::v)n(alarray)e(reference)p 0.5 TeXcolorgray 3400 3427 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3431 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3431 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3530 4 100 v 0 TeXcolorgray 848 3500 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 3530 V 0 TeXcolorgray 61 w Fx(The)h(\002rst)h(pix)o(el)e(from)g(the)i(array) e(to)h(read)g([)o(a)h(long)e(v)n(alue])p 0.5 TeXcolorgray 3400 3530 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3533 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3533 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3633 4 100 v 0 TeXcolorgray 630 3603 a Ft(nElements)p 0.5 TeXcolorgray 1005 3633 V 0 TeXcolorgray 60 w Fx(The)h(number)e(of)i(v)n(alues)g(to)g(read)p 0.5 TeXcolorgray 3400 3633 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3636 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3636 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3836 4 200 v 0 TeXcolorgray 663 3706 a Ft(nullV)-9 b(alue)p 0.5 TeXcolorgray 1005 3836 V 0 TeXcolorgray 58 w Fx(A)27 b(pointer)e(containing)f(the)i(v)n(alue)g(in)g(the)g(table)g(to)h(be)f (considered)e(as)j(unde-)1037 3806 y(\002ned.)d(See)d(c\002tsio)g(for)e (details)p 0.5 TeXcolorgray 3400 3836 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3839 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3839 V 0 TeXcolorgray 0 TeXcolorgray 515 4069 a SDict begin H.S end 515 4069 a 0 TeXcolorgray 0 TeXcolorgray 515 4069 a SDict begin H.R end 515 4069 a 515 4069 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a7a72093d5babb15f212ab3018536e98e) cvn H.B /DEST pdfmark end 515 4069 a 0 TeXcolorgray 515 4106 a SDict begin H.S end 515 4106 a 515 4106 a SDict begin 12 H.A end 515 4106 a 515 4106 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.12) cvn H.B /DEST pdfmark end 515 4106 a 0.25 TeXcolorgray 147 x Fo(24.12.3.12)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)h (CC\002ts::ExtHDU::read)k(\()36 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)g Fu(>)f Fo(&)h Fk(ima)o(g)q(e)q(,)879 4353 y Fo(const)h(std::vector)p Fu(<)g Fo(long)f Fu(>)f Fo(&)g Fk(\002r)o(st,)35 b Fo(long)18 b Fk(nElements,)36 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)36 b Fo(\))p 0 TeXcolorgray 515 4537 a Fx(read)19 b(part)h(of)g(an)g(image)g(array) -5 b(,)19 b(processing)f(null)i(v)n(alues.)515 4684 y(As)h(abo)o(v)o(e) d(e)o(xcept)h(for)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 82 87 TeXDict begin 82 86 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.82) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(82)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.44) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 738 4 200 v 0 TeXcolorgray 848 609 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 738 V 0 TeXcolorgray 61 w Fx(a)25 b(v)o(ector)p Fu(<)p Fx(long)p Fu(>)d Fx(representing)h(an)i(n-tuple)f (gi)n(ving)f(the)i(coordinates)f(in)h(the)1037 708 y(image)20 b(of)f(the)i(\002rst)g(pix)o(el.)p 0.5 TeXcolorgray 3400 738 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 742 V 0 TeXcolorgray 0 TeXcolorgray 515 972 a SDict begin H.S end 515 972 a 0 TeXcolorgray 0 TeXcolorgray 515 972 a SDict begin H.R end 515 972 a 515 972 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a8d4afc93c3eb152b88e985cadee31f42) cvn H.B /DEST pdfmark end 515 972 a 0 TeXcolorgray 515 1009 a SDict begin H.S end 515 1009 a 515 1009 a SDict begin 12 H.A end 515 1009 a 515 1009 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.13) cvn H.B /DEST pdfmark end 515 1009 a 0.25 TeXcolorgray 147 x Fo(24.12.3.13)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)f Fo(v)n(oid)h (CC\002ts::ExtHDU::read)k(\()36 b(std::v)o(alarra)o(y)p Fu(<)18 b Fo(S)g Fu(>)f Fo(&)h Fk(ima)o(g)q(e)q(,)879 1255 y Fo(const)h(std::vector)p Fu(<)h Fo(long)g Fu(>)d Fo(&)h Fk(\002r)o(stV)l(er)q(te)o(x,)38 b Fo(const)19 b(std::vector)p Fu(<)h Fo(long)f Fu(>)f Fo(&)g Fk(lastV)l(er)q(te)o(x,) 879 1355 y Fo(const)h(std::vector)p Fu(<)g Fo(long)f Fu(>)f Fo(&)g Fk(stride)q(,)35 b Fo(S)16 b Fp(\003)h Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 1539 a Fx(read)19 b(an)h(image)g(subset)g(into)g(v)n(alarray)f(image,)g (processing)g(null)h(v)n(alues)515 1686 y(The)j(image)f(subset)i(is)g (de\002ned)e(by)h(tw)o(o)h(v)o(ertices)f(and)f(a)i(stride)g(indicating) e(the)h(')l(denseness')f(of)515 1786 y(the)j(v)n(alues)h(to)g(be)f (pick)o(ed)g(in)h(each)f(dimension)g(\(a)h(stride)f(=)h(\(1,1,1,...\)) 39 b(means)26 b(picking)e(e)n(v)o(ery)515 1885 y(pix)o(el)e(in)h(e)n(v) o(ery)e(dimension,)g(whereas)h(stride)h(=)g(\(2,2,2,...\))30 b(means)22 b(picking)f(e)n(v)o(ery)g(other)h(v)n(alue)515 1985 y(in)e(each)g(dimension.)p 0 TeXcolorgray 1165 1985 a SDict begin H.S end 1165 1985 a 0 TeXcolorgray 0 TeXcolorgray 1165 1985 a SDict begin H.R end 1165 1985 a 1165 1985 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a921ed3185671c8647e844d4a60e9296f) cvn H.B /DEST pdfmark end 1165 1985 a 0 TeXcolorgray 515 2023 a SDict begin H.S end 515 2023 a 515 2023 a SDict begin 12 H.A end 515 2023 a 515 2023 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.14) cvn H.B /DEST pdfmark end 515 2023 a 0.25 TeXcolorgray 146 x Fo(24.12.3.14)75 b(static)18 b(v)n(oid)h(CC\002ts::ExtHDU::readHduName)k(\()35 b(const)19 b(\002ts\002le)g Fp(\003)d Fk(fptr)l(,)36 b Fo(int)18 b Fk(hduInde)o(x,)37 b Fo(String)879 2269 y(&)17 b Fk(hduName)q(,)36 b Fo(int)18 b(&)f Fk(hduV)l(er)o(sion)37 b Fo(\))71 b Fr([static])p 0 TeXcolorgray 515 2453 a Fx(read)19 b(e)o(xtension)g(name.)515 2600 y(Used)k(primarily)f(to)h (allo)n(w)h(e)o(xtensions)e(to)h(be)g(speci\002ed)g(by)p 0 0 1 TeXcolorrgb 2326 2601 a SDict begin H.S end 2326 2601 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2506 2546 a SDict begin H.R end 2506 2546 a 2506 2600 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2506 2600 a 0 TeXcolorgray 24 w Fx(number)e(and)i(pro)o (vide)e(their)515 2700 y(name)26 b(for)h(the)g(associati)n(v)o(e)g (array)f(that)h(contains)g(them.)45 b(Alternati)n(v)o(ely)-5 b(,)27 b(if)h(there)e(is)i(no)f(name)515 2799 y(k)o(e)o(yw)o(ord)18 b(in)i(the)h(e)o(xtension,)d(one)i(is)h(synthesized)e(from)g(the)h (inde)o(x.)p 0 TeXcolorgray 2548 2799 a SDict begin H.S end 2548 2799 a 0 TeXcolorgray 0 TeXcolorgray 2548 2799 a SDict begin H.R end 2548 2799 a 2548 2799 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_ab94cb470d13b5a574728c49589963a36) cvn H.B /DEST pdfmark end 2548 2799 a 0 TeXcolorgray 515 2855 a SDict begin H.S end 515 2855 a 515 2855 a SDict begin 12 H.A end 515 2855 a 515 2855 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.15) cvn H.B /DEST pdfmark end 515 2855 a 0.25 TeXcolorgray 128 x Fo(24.12.3.15)75 b(long)18 b(CC\002ts::ExtHDU::r)o(o)o(ws)k(\()68 b(\))18 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 3168 a Fx(return)19 b(the)h(number)e(of)i(ro)n(ws)g(in)h(the)f(e)o (xtension.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3362 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3319 a SDict begin H.S end 515 3319 a 515 3319 a SDict begin 12 H.A end 515 3319 a 515 3319 a SDict begin [ /View [/XYZ H.V] /Dest (table.45) cvn H.B /DEST pdfmark end 515 3319 a 0.5 TeXcolorgray 515 3422 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3422 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3522 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 3522 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 558 3509 a SDict begin H.S end 558 3509 a 0 0 1 TeXcolorrgb -17 x Ft(Wr)l(ongExtensionT)-6 b(ype)p 0 0 1 TeXcolorrgb 1263 3438 a SDict begin H.R end 1263 3438 a 1263 3492 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1263 3492 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 3522 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 3522 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)19 b(if)i Fp(\003)p Fx(this)f(is)h(an)f(image)g(e)o(xtension.)p 0.5 TeXcolorgray 3557 3522 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3525 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3525 V 0 TeXcolorgray 515 3755 a(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 3756 a SDict begin H.S end 1147 3756 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::T)-7 b(able)p 0 0 1 TeXcolorrgb 1587 3699 a SDict begin H.R end 1587 3699 a 1587 3755 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a63b3ceb651637d7e73fd4a787b136450) cvn H.B /ANN pdfmark end 1587 3755 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 3902 a SDict begin H.S end 515 3902 a 0 TeXcolorgray 0 TeXcolorgray 515 3902 a SDict begin H.R end 515 3902 a 515 3902 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) cvn H.B /DEST pdfmark end 515 3902 a 0 TeXcolorgray 515 3939 a SDict begin H.S end 515 3939 a 515 3939 a SDict begin 12 H.A end 515 3939 a 515 3939 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.16) cvn H.B /DEST pdfmark end 515 3939 a 0.25 TeXcolorgray 147 x Fo(24.12.3.16)75 b(template)p Fu(<)p Fo(typename)21 b(S)c Fu(>)g Fo(v)n(oid)i(CC\002ts::ExtHDU::write)i(\()35 b(const)19 b(std::vector)p Fu(<)g Fo(long)g Fu(>)e Fo(&)879 4186 y Fk(\002r)o(st,)35 b Fo(long)18 b Fk(nElements,)36 b Fo(const)19 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)f Fu(>)f Fo(&)h Fk(data,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 4370 a Fx(Write)22 b(a)h(set)g(of)e(pix)o (els)h(to)g(an)g(image)g(e)o(xtension)e(with)j(the)f(\002rst)g(pix)o (el)g(speci\002ed)f(by)h(an)g(n-tuple,)515 4470 y(processing)d (unde\002ned)f(data.)515 4616 y(All)26 b(the)g(o)o(v)o(erloaded)d(v)o (ersions)i(of)p 0 0 1 TeXcolorrgb 1566 4617 a SDict begin H.S end 1566 4617 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU::write)p 0 0 1 TeXcolorrgb 2078 4560 a SDict begin H.R end 2078 4560 a 2078 4616 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) cvn H.B /ANN pdfmark end 2078 4616 a 0 TeXcolorgray 27 w Fx(perform)f(operations)g(on)i Fp(\003)p Fx(this)g(if)g(it)h(is)g (an)515 4716 y(image)16 b(and)g(thro)n(w)g(a)p 0 0 1 TeXcolorrgb 1135 4734 a SDict begin H.S end 1135 4734 a 0 0 1 TeXcolorrgb -18 x Fx(WrongExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1862 4660 a SDict begin H.R end 1862 4660 a 1862 4716 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /ANN pdfmark end 1862 4716 a 0 TeXcolorgray 17 w Fx(e)o(xception)15 b(if)i(not.)24 b(Where)16 b(appropriate,)f (alternate)515 4816 y(v)o(ersions)k(allo)n(w)h(unde\002ned)e(data)i(to) h(be)f(processed)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 83 88 TeXDict begin 83 87 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.83) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.12)81 b(CC\002ts::ExtHDU)19 b(Class)h(Refer)o(ence)1336 b(83)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.46) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 738 4 200 v 0 TeXcolorgray 848 609 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 738 V 0 TeXcolorgray 61 w Fx(an)26 b(n-tuple)e(of)i(dimension)e(equal)h(to)h(the)g(image)f(dimension)g (specifying)f(the)1037 708 y(\002rst)d(pix)o(el)e(in)i(the)f(range)f (to)h(be)h(written)p 0.5 TeXcolorgray 3400 738 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 742 V 0 TeXcolorgray 0.5 TeXcolorgray 515 841 4 100 v 0 TeXcolorgray 630 811 a Ft(nElements)p 0.5 TeXcolorgray 1005 841 V 0 TeXcolorgray 60 w Fx(number)d(of)i(pix)o (els)g(to)g(be)g(written)p 0.5 TeXcolorgray 3400 841 V 0 TeXcolorgray 0.5 TeXcolorgray 515 845 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 845 V 0 TeXcolorgray 0.5 TeXcolorgray 515 944 4 100 v 0 TeXcolorgray 829 914 a Ft(data)p 0.5 TeXcolorgray 1005 944 V 0 TeXcolorgray 59 w Fx(array)f(of)h(data)g(to)g(be)h(written)p 0.5 TeXcolorgray 3400 944 V 0 TeXcolorgray 0.5 TeXcolorgray 515 948 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 948 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1147 4 200 v 0 TeXcolorgray 663 1017 a Ft(nullV)-9 b(alue)p 0.5 TeXcolorgray 1005 1147 V 0 TeXcolorgray 58 w Fx(pointer)23 b(to)h(null)g(v)n(alue)f(\(data)h (with)g(this)g(v)n(alue)g(written)f(as)i(unde\002ned;)f(needs)1037 1117 y(the)c(BLANK)h(k)o(e)o(yw)o(ord)d(to)i(ha)n(v)o(e)g(been)g (speci\002ed\).)p 0.5 TeXcolorgray 3400 1147 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1150 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1150 V 0 TeXcolorgray 0 TeXcolorgray 515 1380 a SDict begin H.S end 515 1380 a 0 TeXcolorgray 0 TeXcolorgray 515 1380 a SDict begin H.R end 515 1380 a 515 1380 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_aa404733a67606f27fc75c26ca65c283d) cvn H.B /DEST pdfmark end 515 1380 a 0 TeXcolorgray 515 1417 a SDict begin H.S end 515 1417 a 515 1417 a SDict begin 12 H.A end 515 1417 a 515 1417 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.17) cvn H.B /DEST pdfmark end 515 1417 a 0.25 TeXcolorgray 147 x Fo(24.12.3.17)75 b(template)p Fu(<)p Fo(typename)21 b(S)d Fu(>)g Fo(v)n(oid)h (CC\002ts::ExtHDU::write)j(\()36 b(long)19 b Fk(\002r)o(st,)37 b Fo(long)19 b Fk(nElements,)879 1664 y Fo(const)g(std::v)o(alarra)o(y) p Fu(<)f Fo(S)e Fu(>)h Fo(&)g Fk(data,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 1848 a Fx(write)24 b(array)f(to)h(image)g(starting)g(with)g(a)g (speci\002ed)g(pix)o(el)g(and)f(allo)n(wing)g(unde\002ned)f(data)i(to)h (be)515 1948 y(processed)515 2095 y(parameters)20 b(after)h(the)h (\002rst)g(are)f(as)i(for)e(v)o(ersion)f(with)i(n-tuple)e(specifying)g (\002rst)i(element.)28 b(these)515 2194 y(tw)o(o)18 b(v)o(ersion)f(are) h(equi)n(v)n(alent,)e(e)o(xcept)i(that)g(it)h(is)g(possible)e(for)h (the)g(\002rst)h(pix)o(el)e(number)g(to)h(e)o(xceed)515 2294 y(the)i(range)f(of)h(32-bit)f(inte)o(gers,)g(which)h(is)h(ho)n(w)f (long)f(datatype)g(is)i(commonly)d(implemented.)p 0 TeXcolorgray 3318 2294 a SDict begin H.S end 3318 2294 a 0 TeXcolorgray 0 TeXcolorgray 3318 2294 a SDict begin H.R end 3318 2294 a 3318 2294 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_a1f3af0a3897c9ad9d6653ca510e69852) cvn H.B /DEST pdfmark end 3318 2294 a 0 TeXcolorgray 515 2349 a SDict begin H.S end 515 2349 a 515 2349 a SDict begin 12 H.A end 515 2349 a 515 2349 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.18) cvn H.B /DEST pdfmark end 515 2349 a 0.25 TeXcolorgray 129 x Fo(24.12.3.18)75 b(template)p Fu(<)p Fo(typename)21 b(S)c Fu(>)g Fo(v)n(oid)i (CC\002ts::ExtHDU::write)i(\()35 b(const)19 b(std::vector)p Fu(<)g Fo(long)g Fu(>)e Fo(&)879 2578 y Fk(\002r)o(stV)l(er)q(te)o(x,) 38 b Fo(const)20 b(std::vector)p Fu(<)g Fo(long)f Fu(>)f Fo(&)g Fk(lastV)l(er)q(te)o(x,)38 b Fo(const)20 b(std::v)o(alarra)o(y)p Fu(<)f Fo(S)f Fu(>)f Fo(&)879 2677 y Fk(data)35 b Fo(\))p 0 TeXcolorgray 515 2862 a Fx(write)20 b(a)h(subset)f(\(generalize)f (slice\))h(of)g(data)g(to)g(the)h(image)515 3008 y(A)d(generalized)e (slice/subset)i(is)h(a)f(subset)g(of)g(the)g(image)f(\(e.g.)23 b(one)18 b(plane)f(of)g(a)i(data)e(cube)g(of)h(size)515 3108 y Fu(<)p Fx(=)h(the)h(dimension)e(of)h(the)g(cube\).)24 b(It)c(is)g(speci\002ed)g(by)f(tw)o(o)g(opposite)g(v)o(ertices.)24 b(The)19 b(equi)n(v)n(alent)515 3208 y(c\002tsio)f(call)g(does)f(not)g (support)f(unde\002ned)g(data)h(processing)f(so)i(there)f(is)h(no)g(v)o (ersion)e(that)h(allo)n(ws)515 3307 y(a)j(null)g(v)n(alue)g(to)g(be)g (speci\002ed.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3517 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3460 a SDict begin H.S end 515 3460 a 515 3460 a SDict begin 12 H.A end 515 3460 a 515 3460 a SDict begin [ /View [/XYZ H.V] /Dest (table.47) cvn H.B /DEST pdfmark end 515 3460 a 0.5 TeXcolorgray 515 3563 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3563 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3762 4 200 v 0 TeXcolorgray 642 3633 a Ft(\002r)o(stV)-9 b(erte)n(x)p 0.5 TeXcolorgray 1005 3762 V 0 TeXcolorgray 61 w Fx(the)56 b(coordinates)f(specifying)g(lo)n(wer)g(and)h(upper)f(v) o(ertices)h(of)g(the)g(n-)1037 3732 y(dimensional)19 b(slice)p 0.5 TeXcolorgray 3400 3762 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3766 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3766 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3865 4 100 v 0 TeXcolorgray 651 3835 a Ft(lastV)-9 b(erte)n(x)p 0.5 TeXcolorgray 1005 3865 V 0 TeXcolorgray 0.5 TeXcolorgray 3400 3865 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3868 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3868 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3968 4 100 v 0 TeXcolorgray 829 3938 a(data)p 0.5 TeXcolorgray 1005 3968 V 0 TeXcolorgray 59 w Fx(The)20 b(data)g(to)g(be)g(written)p 0.5 TeXcolorgray 3400 3968 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3971 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3971 V 0 TeXcolorgray 0 TeXcolorgray 515 4162 a SDict begin H.S end 515 4162 a 0 TeXcolorgray 0 TeXcolorgray 515 4162 a SDict begin H.R end 515 4162 a 515 4162 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_ad3a43454577309abb2ec1ebe97d3375b) cvn H.B /DEST pdfmark end 515 4162 a 0 TeXcolorgray 515 4199 a SDict begin H.S end 515 4199 a 515 4199 a SDict begin 12 H.A end 515 4199 a 515 4199 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.12.3.19) cvn H.B /DEST pdfmark end 515 4199 a 0.25 TeXcolorgray 147 x Fo(24.12.3.19)75 b(HduT)l(ype)20 b(CC\002ts::ExtHDU::xtension)j (\()68 b(\))18 b(const)72 b Fr([inline,)48 b(protected])p 0 TeXcolorgray 515 4531 a Fx(return)19 b(the)h(e)o(xtension)f(type)515 4677 y(allo)n(wed)g(v)n(alues)h(are)g(ImageHDU,)f(AsciiTbl,)h(and)g (BinaryTbl)515 4824 y(The)g(documentation)d(for)i(this)i(class)g(w)o (as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 5006 a(\225)p 0 TeXcolorgray 41 w(ExtHDU.h)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 84 89 TeXDict begin 84 88 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.84) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.13)81 b(CC\002ts::ExtHDU::Wr)o (ongExtensionT)-6 b(ype)16 b(Class)21 b(Refer)o(ence)508 b(84)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(ExtHDU.cxx)p 0 TeXcolorgray 652 631 a(\225)p 0 TeXcolorgray 41 w(ExtHDUT)-6 b(.h)p 0 TeXcolorgray 515 844 a SDict begin H.S end 515 844 a 0 TeXcolorgray 0 TeXcolorgray 515 844 a SDict begin H.R end 515 844 a 515 844 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType) cvn H.B /DEST pdfmark end 515 844 a 0 TeXcolorgray 515 966 a SDict begin H.S end 515 966 a 515 966 a SDict begin 12 H.A end 515 966 a 515 966 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.13) cvn H.B /DEST pdfmark end 515 966 a 0.25 TeXcolorgray 163 x Fq(24.13)89 b(CC\002ts::ExtHDU::Wr)o(ongExtensionT)l(ype)23 b(Class)e(Ref)o(erence) p 0 TeXcolorgray 515 1332 a Fx(Exception)d(to)i(be)h(thro)n(wn)d(on)i (unmatched)e(e)o(xtension)h(types.)515 1479 y Fr(#include)48 b Fu(<)p Fr(ExtHDU.h)p Fu(>)515 1626 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::ExtHDU::WrongExtensionT)-7 b(ype:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1274 2224 a @beginspecial 0 @llx 0 @lly 500 @urx 175.438599 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1ExtHDU_1_1WrongExtensionType.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 175.438596 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.850000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::ExtHDU::WrongExtensionType) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::ExtHDU::WrongExtensionType) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2575 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 2632 a SDict begin H.S end 515 2632 a 515 2632 a SDict begin 12 H.A end 515 2632 a 515 2632 a SDict begin [ /View [/XYZ H.V] /Dest (section*.24) cvn H.B /DEST pdfmark end 515 2632 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2764 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2782 a SDict begin H.S end 722 2782 a 0 0 1 TeXcolorrgb -18 x Fx(WrongExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1449 2708 a SDict begin H.R end 1449 2708 a 1449 2764 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType_a1c51f9e5196cb93fc2afee6ad95665cd) cvn H.B /ANN pdfmark end 1449 2764 a 0 TeXcolorgray 21 w Fx(\(const)19 b(String)h(&msg,)g(bool)f (silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2889 a Fl(Exception)i(ctor)-8 b(,)21 b(pr)m(e\002xes)h(the)e(string)h("F)m (its)f(Err)m(or:)26 b(wr)m(ong)20 b(e)o(xtension)h(type")h(befor)m(e)f (the)g(spe-)840 2980 y(ci\002c)f(messa)o(g)o(e)o(.)515 3117 y SDict begin H.S end 515 3117 a 515 3117 a SDict begin 12 H.A end 515 3117 a 515 3117 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.13.1) cvn H.B /DEST pdfmark end 515 3117 a 0.25 TeXcolorgray 131 x Fo(24.13.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3451 a Fx(Exception)g(to)i(be)h (thro)n(wn)d(on)i(unmatched)e(e)o(xtension)h(types.)515 3598 y(This)24 b(e)o(xception)e(is)i(to)g(be)g(thro)n(wn)e(if)i(the)g (user)g(requested)e(a)i(particular)f(e)o(xtension)f(and)h(it)i(does)515 3698 y(not)20 b(correspond)d(to)k(the)f(e)o(xpected)e(type.)515 3837 y SDict begin H.S end 515 3837 a 515 3837 a SDict begin 12 H.A end 515 3837 a 515 3837 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.13.2) cvn H.B /DEST pdfmark end 515 3837 a 0.25 TeXcolorgray 129 x Fo(24.13.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4169 a SDict begin H.S end 515 4169 a 0 TeXcolorgray 0 TeXcolorgray 515 4169 a SDict begin H.R end 515 4169 a 515 4169 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ExtHDU_1_1WrongExtensionType_a1c51f9e5196cb93fc2afee6ad95665cd) cvn H.B /DEST pdfmark end 515 4169 a 0 TeXcolorgray 515 4206 a SDict begin H.S end 515 4206 a 515 4206 a SDict begin 12 H.A end 515 4206 a 515 4206 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.13.2.1) cvn H.B /DEST pdfmark end 515 4206 a 0.25 TeXcolorgray 147 x Fo(24.13.2.1)75 b(CC\002ts::ExtHDU::Wr)o(ongExtension)q(T)m(ype::)q(Wr)o(ong)q(Exten)q (sion)q(T)l(yp)q(e)24 b(\()36 b(const)19 b(String)g(&)f Fk(msg,)845 4453 y Fo(bool)g Fk(silent)g(=)f Fr(true)34 b Fo(\))p 0 TeXcolorgray 515 4637 a Fx(Exception)13 b(ctor)m(,)j (pre\002x)o(es)e(the)i(string)f("Fits)h(Error:)21 b(wrong)14 b(e)o(xtension)g(type")h(before)f(the)h(speci\002c)515 4737 y(message.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)g(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h (f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 85 90 TeXDict begin 85 89 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.85) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(85)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.48) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 843 609 a Ft(msg)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 60 w Fx(A)21 b(speci\002c)f (diagnostic)f(message)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 4 100 v 0 TeXcolorgray 796 712 a Ft(silent)p 0.5 TeXcolorgray 1005 742 V 0 TeXcolorgray 61 w Fx(if)h(true,)g(print)g (message)g(whether)p 0 0 1 TeXcolorrgb 2047 713 a SDict begin H.S end 2047 713 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 655 a SDict begin H.R end 2714 655 a 2714 712 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 712 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 742 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 V 0 TeXcolorgray 515 970 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 1180 a(\225)p 0 TeXcolorgray 41 w(ExtHDU.h)p 0 TeXcolorgray 652 1287 a(\225)p 0 TeXcolorgray 41 w(ExtHDU.cxx)p 0 TeXcolorgray 515 1496 a SDict begin H.S end 515 1496 a 0 TeXcolorgray 0 TeXcolorgray 515 1496 a SDict begin H.R end 515 1496 a 515 1496 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS) cvn H.B /DEST pdfmark end 515 1496 a 0 TeXcolorgray 515 1617 a SDict begin H.S end 515 1617 a 515 1617 a SDict begin 12 H.A end 515 1617 a 515 1617 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.14) cvn H.B /DEST pdfmark end 515 1617 a 0.25 TeXcolorgray 163 x Fq(24.14)89 b(CC\002ts::FITS)23 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 1983 a Fx(Memory)e(object)i(representation)e(of)i(a) h(disk)p 0 0 1 TeXcolorrgb 1843 1984 a SDict begin H.S end 1843 1984 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2014 1927 a SDict begin H.R end 2014 1927 a 2014 1983 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2014 1983 a 0 TeXcolorgray 20 w Fx(\002le.)515 2130 y Fr(#include)48 b Fu(<)p Fr(FITS.h)p Fu(>)p 0.25 TeXcolorgray 515 2397 a Fo(Classes)p 0 TeXcolorgray 515 2455 a SDict begin H.S end 515 2455 a 515 2455 a SDict begin 12 H.A end 515 2455 a 515 2455 a SDict begin [ /View [/XYZ H.V] /Dest (section*.25) cvn H.B /DEST pdfmark end 515 2455 a 0 TeXcolorgray 652 2585 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2586 a SDict begin H.S end 904 2586 a 0 0 1 TeXcolorrgb -1 x Fx(CantCreate)p 0 0 1 TeXcolorrgb 1278 2529 a SDict begin H.R end 1278 2529 a 1278 2585 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /ANN pdfmark end 1278 2585 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2709 a Fl(thr)m(own)19 b(on)h(failur)m(e)f(to)g(cr)m(eate)h(ne)o(w)e(\002le)p 0 TeXcolorgray 652 2816 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2834 a SDict begin H.S end 904 2834 a 0 0 1 TeXcolorrgb -18 x Fx(CantOpen)p 0 0 1 TeXcolorrgb 1241 2760 a SDict begin H.R end 1241 2760 a 1241 2816 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1CantOpen) cvn H.B /ANN pdfmark end 1241 2816 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2939 a Fl(thr)m(own)h(on)h(failur)m (e)f(to)g(open)h(e)o(xisting)e(\002le)p 0 TeXcolorgray 652 3046 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3047 a SDict begin H.S end 904 3047 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchHDU)p 0 0 1 TeXcolorrgb 1352 2990 a SDict begin H.R end 1352 2990 a 1352 3046 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /ANN pdfmark end 1352 3046 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3170 a Fl(e)o(xception)i(thr)m(own)f(by)p 0 0 1 TeXcolorrgb 1460 3171 a SDict begin H.S end 1460 3171 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1622 3122 a SDict begin H.R end 1622 3122 a 1622 3170 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1622 3170 a 0 TeXcolorgray 19 w Fl(r)m(etrie)o(val)g (methods.)p 0 TeXcolorgray 652 3277 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 3295 a SDict begin H.S end 904 3295 a 0 0 1 TeXcolorrgb -18 x Fx(OperationNotSupported)p 0 0 1 TeXcolorrgb 1702 3221 a SDict begin H.R end 1702 3221 a 1702 3277 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 1702 3277 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 3401 a Fl(thr)m(own)k(for)g(unsupported)i(oper)o(ations,)g(suc)o(h)e (as)g(attempted)g(to)g(select)g(r)m(ows)f(fr)m(om)h(an)g(ima)o(g)o(e) 840 3492 y(e)o(xtension.)p 0.25 TeXcolorgray 515 3759 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 3816 a SDict begin H.S end 515 3816 a 515 3816 a SDict begin 12 H.A end 515 3816 a 515 3816 a SDict begin [ /View [/XYZ H.V] /Dest (section*.26) cvn H.B /DEST pdfmark end 515 3816 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3947 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3948 a SDict begin H.S end 722 3948 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 3891 a SDict begin H.R end 893 3891 a 893 3947 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a913bc6d48a4ff69013e49e1ae4fbb696) cvn H.B /ANN pdfmark end 893 3947 a 0 TeXcolorgray 35 w Fx(\(const)35 b(String)f(&name,)k(RWmode)c(mode=Read,)j(bool)d (readDataFlag=f)o(alse,)722 4047 y(const)20 b(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&primaryK)n(e)o(ys=std::v)o(ector)p Fu(<)15 b Fx(String)20 b Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 4171 a Fl(basic)g(constructor)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 4278 a Fx(\225)p 0 0 1 TeXcolorrgb 722 4279 a SDict begin H.S end 722 4279 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 4221 a SDict begin H.R end 893 4221 a 893 4278 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a1cb56c87695f73c6110cdd3dd1fb03b0) cvn H.B /ANN pdfmark end 893 4278 a 0 TeXcolorgray 20 w Fx(\(const)f(String)g(&name,)f (RWmode)i(mode,)e(const)h(string)g(&hduName,)f(bool)g(read-)722 4377 y(DataFlag=f)o(alse,)e(const)f(std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)i Fx(&hduK)n(e)o(ys=std::v)o(ector)p Fu(<)11 b Fx(String)j Fu(>)p Fx(\(\),)722 4477 y(const)h(std::v)o (ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&primaryK)n(e)o(y=std::v)o(ector) p Fu(<)10 b Fx(String)k Fu(>)p Fx(\(\),)i(int)f(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 4700 a Fl(Open)20 b(a)p 0 0 1 TeXcolorrgb 1077 4701 a SDict begin H.S end 1077 4701 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1226 4649 a SDict begin H.R end 1226 4649 a 1226 4700 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1226 4700 a 0 TeXcolorgray 19 w Fl(\002le)f(and)h(r)m (ead)g(a)f(single)g(speci\002ed)p 0 0 1 TeXcolorrgb 2172 4701 a SDict begin H.S end 2172 4701 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2334 4652 a SDict begin H.R end 2334 4652 a 2334 4700 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2334 4700 a 0 TeXcolorgray Fl(.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 4807 a Fx(\225)p 0 0 1 TeXcolorrgb 722 4808 a SDict begin H.S end 722 4808 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 4751 a SDict begin H.R end 893 4751 a 893 4807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a1d7fca4f600df79fce819b86f8727368) cvn H.B /ANN pdfmark end 893 4807 a 0 TeXcolorgray 22 w Fx(\(const)h(String)h(&name,)f(RWmode)h(mode,)g(const)g(std::v)o (ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&hdu-)722 4907 y(Names,)16 b(bool)f(readDataFlag=f)o(alse,)f(const)h(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&primaryK)n(e)o(y=std-)722 5006 y(::v)o(ector)p Fu(<)k Fx(String)h Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 86 91 TeXDict begin 86 90 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.86) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(86)p 515 236 2865 4 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 523 a Fx(\225)p 0 0 1 TeXcolorrgb 722 524 a SDict begin H.S end 722 524 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 467 a SDict begin H.R end 893 467 a 893 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_acb344d192a9cce91ef4fa70d983af305) cvn H.B /ANN pdfmark end 893 523 a 0 TeXcolorgray 21 w Fx(\(const)19 b(String)h(&\002leName,)g(const)p 0 0 1 TeXcolorrgb 1968 524 a SDict begin H.S end 1968 524 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2138 467 a SDict begin H.R end 2138 467 a 2138 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2138 523 a 0 TeXcolorgray 21 w Fx(&source\))p 0 TeXcolorgray 0 TeXcolorgray 840 647 a Fl(cr)m(eate)j(a)f(ne)o(w)p 0 0 1 TeXcolorrgb 1246 648 a SDict begin H.S end 1246 648 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1396 597 a SDict begin H.R end 1396 597 a 1396 647 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1396 647 a 0 TeXcolorgray 21 w Fl(object)h(and)f(corr)m (esponding)j(\002le)d(with)g(copy)g(of)g(the)g(primary)h(header)g(of) 840 739 y(the)g(sour)m(ce)h(If)e(the)h(\002lename)h(corr)m(esponds)h (to)d(an)i(e)o(xisting)e(\002le)h(and)g(does)h(not)f(start)f(with)h (the)840 830 y('!')g(c)o(har)o(acter)d(the)f(construction)h(will)e (fail)h(with)f(a)p 0 0 1 TeXcolorrgb 2200 831 a SDict begin H.S end 2200 831 a 0 0 1 TeXcolorrgb -1 x Fl(CantCr)m(eate)p 0 0 1 TeXcolorrgb 2546 779 a SDict begin H.R end 2546 779 a 2546 830 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /ANN pdfmark end 2546 830 a 0 TeXcolorgray 19 w Fl(e)o(xception.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 938 a Fx(\225)p 0 0 1 TeXcolorrgb 722 939 a SDict begin H.S end 722 939 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 881 a SDict begin H.R end 893 881 a 893 938 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ab83f4abde51f181d69016a1aa971a290) cvn H.B /ANN pdfmark end 893 938 a 0 TeXcolorgray 22 w Fx(\(const)i(String)h(&name,)f(RWmode)h(mode,)g (const)g(std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&hdu-)722 1037 y(Names,)k(const)e(std::v)o(ector)p Fu(<)f Fx(std::v)o(ector)p Fu(<)g Fx(String)h Fu(>)g(>)h Fx(&hduK)n(e)o(ys,)e(bool)h(readData-)722 1137 y(Flag=f)o(alse,)18 b(const)g(std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&primaryK)n(e)o(ys=std::v)o(ector)p Fu(<)13 b Fx(String)k Fu(>)p Fx(\(\),)722 1236 y(const)j(std::v)o (ector)p Fu(<)f Fx(int)h Fu(>)h Fx(&hduV)-9 b(ersions=std::v)o(ector)p Fu(<)15 b Fx(int)20 b Fu(>)p Fx(\(\)\))p 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 1362 a SDict begin H.S end 840 1362 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 990 1310 a SDict begin H.R end 990 1310 a 990 1361 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 990 1361 a 0 TeXcolorgray 19 w Fl(r)m(ead)f(constructor)i(in)d(full)h(g)o(ener)o(ality)l(.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1468 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1469 a SDict begin H.S end 722 1469 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 1412 a SDict begin H.R end 893 1412 a 893 1468 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_aa3dd737a0211193e99d09459b1b09564) cvn H.B /ANN pdfmark end 893 1468 a 0 TeXcolorgray 21 w Fx(\(const)g(String)h (&name,)f(int)h(bitpix,)g(int)g(naxis,)g(long)f Fp(\003)p Fx(nax)o(es\))p 0 TeXcolorgray 0 TeXcolorgray 840 1593 a Fl(Constructor)h(for)f(cr)m(eating)h(ne)o(w)p 0 0 1 TeXcolorrgb 1729 1594 a SDict begin H.S end 1729 1594 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1878 1542 a SDict begin H.R end 1878 1542 a 1878 1593 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1878 1593 a 0 TeXcolorgray 19 w Fl(objects)g(containing)g (ima)o(g)o(es.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1700 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1701 a SDict begin H.S end 722 1701 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 1644 a SDict begin H.R end 893 1644 a 893 1700 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a691405118727baad47e504c16998e404) cvn H.B /ANN pdfmark end 893 1700 a 0 TeXcolorgray 16 w Fx(\(const)14 b(string)h(&name,)g(RWmode)g(mode,)g(int)h(hduInde)o (x,)d(bool)h(readDataFlag=f)o(alse,)722 1800 y(const)h(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&hduK)n(e)o(ys=std::v)o(ector)p Fu(<)c Fx(String)j Fu(>)p Fx(\(\),)i(const)f(std::v)o(ector)p Fu(<)722 1900 y Fx(String)20 b Fu(>)g Fx(&primaryK)n(e)o(y=std::v)o (ector)p Fu(<)15 b Fx(String)20 b Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 2024 a Fl(r)m(ead)g(a)f(single)g (number)m(ed)p 0 0 1 TeXcolorrgb 1561 2025 a SDict begin H.S end 1561 2025 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1723 1976 a SDict begin H.R end 1723 1976 a 1723 2024 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1723 2024 a 0 TeXcolorgray Fl(.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2131 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2132 a SDict begin H.S end 722 2132 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 893 2075 a SDict begin H.R end 893 2075 a 893 2131 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a59493b5e36616b7904ddede84df78430) cvn H.B /ANN pdfmark end 893 2131 a 0 TeXcolorgray 16 w Fx(\(const)14 b(String)h(&name,)g(RWmode)g(mode,)g(const)g(std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)i Fx(&search-)722 2231 y(K)n(e)o(ys,)g(const)f (std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)i Fx(&searchV)-9 b(alues,)14 b(bool)h(readDataFlag=f)o(alse,)f(const)722 2331 y(std::v)o(ector)p Fu(<)23 b Fx(String)g Fu(>)i Fx(&hduK)n(e)o(ys=std::v)o(ector)p Fu(<)19 b Fx(String)24 b Fu(>)p Fx(\(\),)g(const)g(std::v)o(ector)p Fu(<)e Fx(-)722 2430 y(String)e Fu(>)g Fx(&primaryK)n(e)o(y=std::v)o(ector)p Fu(<)15 b Fx(string)20 b Fu(>)p Fx(\(\),)f(int)i(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 2555 a Fl(open)g(\002ts)f(\002le)f (and)i(r)m(ead)p 0 0 1 TeXcolorrgb 1507 2556 a SDict begin H.S end 1507 2556 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1669 2506 a SDict begin H.R end 1669 2506 a 1669 2555 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1669 2555 a 0 TeXcolorgray 19 w Fl(whic)o(h)f(contains)h(supplied)f(k)o(e)n(ywor)m(ds)h(with)e ([optional])i(speci-)840 2646 y(\002ed)f(values)g(\(sometimes)e(one)i (just)f(wants)g(to)g(know)g(that)g(the)g(k)o(e)n(ywor)m(d)h(is)e(pr)m (esent\).)p 0 TeXcolorgray 0 TeXcolorgray 652 2754 a Fx(\225)p 0 TeXcolorgray 722 2754 a SDict begin H.S end 722 2754 a 0 TeXcolorgray 0 TeXcolorgray 722 2754 a SDict begin H.R end 722 2754 a 722 2754 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a53b2988c54661d9e03af4a152da5dbae) cvn H.B /DEST pdfmark end 722 2754 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 2755 a SDict begin H.S end 743 2755 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(FITS)p 0 0 1 TeXcolorrgb 978 2697 a SDict begin H.R end 978 2697 a 978 2754 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a53b2988c54661d9e03af4a152da5dbae) cvn H.B /ANN pdfmark end 978 2754 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2878 a Fl(destructor)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2985 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2986 a SDict begin H.S end 722 2986 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1017 2931 a SDict begin H.R end 1017 2931 a 1017 2985 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1017 2985 a 0 TeXcolorgray 30 w Fp(\003)p 0 0 1 TeXcolorrgb 1117 3003 a SDict begin H.S end 1117 3003 a 0 0 1 TeXcolorrgb -18 x Fx(addImage)p 0 0 1 TeXcolorrgb 1445 2929 a SDict begin H.R end 1445 2929 a 1445 2985 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_afe53063dd05cf44654a311e5d17d4da8) cvn H.B /ANN pdfmark end 1445 2985 a 0 TeXcolorgray 29 w Fx(\(const)28 b(String)g(&hduName,)h(int)g(bpix,)h(std::v)o(ector) p Fu(<)d Fx(long)g Fu(>)722 3085 y Fx(&nax)o(es,)19 b(int)i(v)o (ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 3209 a Fl(Add)e(an)h(ima)o(g)o(e)g(e)o(xtension)f(to)g(an)g(e)o(xisting)p 0 0 1 TeXcolorrgb 1992 3210 a SDict begin H.S end 1992 3210 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2141 3159 a SDict begin H.R end 2141 3159 a 2141 3209 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2141 3209 a 0 TeXcolorgray 19 w Fl(object.)k(\(F)m(ile)18 b(with)g(w)h(or)g(rw)g(access\).)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3317 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3318 a SDict begin H.S end 722 3318 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 905 3261 a SDict begin H.R end 905 3261 a 905 3317 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 905 3317 a 0 TeXcolorgray 17 w Fp(\003)p 0 0 1 TeXcolorrgb 981 3318 a SDict begin H.S end 981 3318 a 0 0 1 TeXcolorrgb -1 x Fx(addT)g(able)p 0 0 1 TeXcolorrgb 1283 3261 a SDict begin H.R end 1283 3261 a 1283 3317 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) cvn H.B /ANN pdfmark end 1283 3317 a 0 TeXcolorgray 18 w Fx(\(const)16 b(String)g(&hduName,)f(int)i(ro)n(ws,)g(const)g(std::v)o(ector)p Fu(<)e Fx(String)h Fu(>)722 3417 y Fx(&columnName=std::v)o(ector)p Fu(<)f Fx(String)20 b Fu(>)p Fx(\(\),)f(const)g(std::v)o(ector)p Fu(<)f Fx(String)i Fu(>)g Fx(&column-)722 3516 y(Fmt=std::v)o(ector)p Fu(<)30 b Fx(String)h Fu(>)p Fx(\(\),)j(const)e(std::v)o(ector)p Fu(<)e Fx(String)h Fu(>)h Fx(&columnUnit=std-)722 3616 y(::v)o(ector)p Fu(<)19 b Fx(String)h Fu(>)p Fx(\(\),)f(HduT)-7 b(ype)19 b(type=BinaryTbl,)e(int)k(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 3740 a Fl(Add)d(a)g(table)g(e)o (xtension)g(to)f(an)i(e)o(xisting)p 0 0 1 TeXcolorrgb 1914 3741 a SDict begin H.S end 1914 3741 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2063 3689 a SDict begin H.R end 2063 3689 a 2063 3740 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2063 3740 a 0 TeXcolorgray 18 w Fl(object.)k(Add)18 b(e)o(xtension)g (to)p 0 0 1 TeXcolorrgb 2816 3741 a SDict begin H.S end 2816 3741 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2966 3689 a SDict begin H.R end 2966 3689 a 2966 3740 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2966 3740 a 0 TeXcolorgray 17 w Fl(object)g(for)g(\002le)840 3831 y(with)h(w)f(or)h(rw)g(access.)p 0 TeXcolorgray 652 3939 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 3957 a SDict begin H.S end 889 3957 a 0 0 1 TeXcolorrgb -18 x Fx(cop)o(y)p 0 0 1 TeXcolorrgb 1050 3901 a SDict begin H.R end 1050 3901 a 1050 3939 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a80ed085f917280e58c6bddf95de93c3c) cvn H.B /ANN pdfmark end 1050 3939 a 0 TeXcolorgray 20 w Fx(\(const)p 0 0 1 TeXcolorrgb 1294 3940 a SDict begin H.S end 1294 3940 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1474 3885 a SDict begin H.R end 1474 3885 a 1474 3939 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1474 3939 a 0 TeXcolorgray 21 w Fx(&source\))p 0 TeXcolorgray 0 TeXcolorgray 840 4063 a Fl(copy)h(the)p 0 0 1 TeXcolorrgb 1110 4064 a SDict begin H.S end 1110 4064 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1272 4015 a SDict begin H.R end 1272 4015 a 1272 4063 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1272 4063 a 0 TeXcolorgray 19 w Fl(sour)m(ce)g(into)f(the)p 0 0 1 TeXcolorrgb 1751 4064 a SDict begin H.S end 1751 4064 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1900 4013 a SDict begin H.R end 1900 4013 a 1900 4063 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1900 4063 a 0 TeXcolorgray 19 w Fl(object.)p 0 TeXcolorgray 0 TeXcolorgray 652 4171 a Fx(\225)p 0 TeXcolorgray 722 4171 a SDict begin H.S end 722 4171 a 0 TeXcolorgray 0 TeXcolorgray 722 4171 a SDict begin H.R end 722 4171 a 722 4171 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a7d675f1654f0678461bac0d47e202d49) cvn H.B /DEST pdfmark end 722 4171 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4172 a SDict begin H.S end 743 4172 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1038 4117 a SDict begin H.R end 1038 4117 a 1038 4171 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1038 4171 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1144 4172 a SDict begin H.S end 1144 4172 a 0 0 1 TeXcolorrgb -1 x Fx(currentExtension)p 0 0 1 TeXcolorrgb 1711 4115 a SDict begin H.R end 1711 4115 a 1711 4171 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a7d675f1654f0678461bac0d47e202d49) cvn H.B /ANN pdfmark end 1711 4171 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4295 a Fl(r)m(eturn)h(a)f(non-const)i(r)m(efer)m(ence)f(to)f(whic)o(he)o (ver)g(is)g(the)g(curr)m(ent)h(e)o(xtension.)p 0 TeXcolorgray 652 4403 a Fx(\225)p 0 TeXcolorgray 41 w(const)g(String)g(&)p 0 0 1 TeXcolorrgb 1227 4404 a SDict begin H.S end 1227 4404 a 0 0 1 TeXcolorrgb -1 x Fx(currentExtensionName)p 0 0 1 TeXcolorrgb 1993 4347 a SDict begin H.R end 1993 4347 a 1993 4403 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_afc795a249942094157a54fedb6325eb0) cvn H.B /ANN pdfmark end 1993 4403 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4527 a Fl(r)m(eturn)g(the)f(name)h(of)e(the)h(e)o(xtension)h(that)f (the)g(\002ts\002le)g(is)f(curr)m(ently)i(addr)m(essing)o(.)p 0 TeXcolorgray 652 4635 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 4636 a SDict begin H.S end 889 4636 a 0 0 1 TeXcolorrgb -1 x Fx(deleteExtension)p 0 0 1 TeXcolorrgb 1419 4579 a SDict begin H.R end 1419 4579 a 1419 4635 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_aac73f0a1f2742c0f1ea5eeb5bc0f8df5) cvn H.B /ANN pdfmark end 1419 4635 a 0 TeXcolorgray 21 w Fx(\(const)g(String)f(&doomed,)f(int)j(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 4759 a Fl(Delete)e(e)o(xtension)g (speci\002ed)i(by)e(name)g(and)h(ver)o(sion)g(number)-8 b(.)p 0 TeXcolorgray 652 4867 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 4868 a SDict begin H.S end 889 4868 a 0 0 1 TeXcolorrgb -1 x Fx(deleteExtension)p 0 0 1 TeXcolorrgb 1419 4810 a SDict begin H.R end 1419 4810 a 1419 4867 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ad865b86fabd85a36b6e3ec782a3fad83) cvn H.B /ANN pdfmark end 1419 4867 a 0 TeXcolorgray 21 w Fx(\(int)20 b(doomed\))p 0 TeXcolorgray 0 TeXcolorgray 840 4991 a Fl(Delete)f(e)o(xtension)g(speci\002ed)i(by)e(e)o(xtension)g (number)-8 b(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 87 92 TeXDict begin 87 91 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.87) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(87)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 541 a SDict begin H.S end 889 541 a 0 0 1 TeXcolorrgb -18 x Fx(destro)o(y)p 0 0 1 TeXcolorrgb 1133 467 a SDict begin H.R end 1133 467 a 1133 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_afbc014a0dd8bfcc9d883e550f971f669) cvn H.B /ANN pdfmark end 1133 523 a 0 TeXcolorgray 20 w Fx(\(\))20 b(thro)n(w)g(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 648 a Fl(Er)o(ase)p 0 0 1 TeXcolorrgb 1032 649 a SDict begin H.S end 1032 649 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1182 597 a SDict begin H.R end 1182 597 a 1182 648 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1182 648 a 0 TeXcolorgray 18 w Fl(object)g(and)f(close)h(corr)m(esponding)h (\002le)o(.)p 0 TeXcolorgray 0 TeXcolorgray 652 756 a Fx(\225)p 0 TeXcolorgray 722 756 a SDict begin H.S end 722 756 a 0 TeXcolorgray 0 TeXcolorgray 722 756 a SDict begin H.R end 722 756 a 722 756 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a17d7f2a579835881a3b74c765ac612e1) cvn H.B /DEST pdfmark end 722 756 a 0 TeXcolorgray 21 w Fx(const)p 0 0 1 TeXcolorrgb 939 757 a SDict begin H.S end 939 757 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1234 701 a SDict begin H.R end 1234 701 a 1234 756 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1234 756 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1340 757 a SDict begin H.S end 1340 757 a 0 0 1 TeXcolorrgb -1 x Fx(e)o(xtension)p 0 0 1 TeXcolorrgb 1657 699 a SDict begin H.R end 1657 699 a 1657 756 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a17d7f2a579835881a3b74c765ac612e1) cvn H.B /ANN pdfmark end 1657 756 a 0 TeXcolorgray 21 w Fx(\(int)f(i\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 880 a Fl(r)m(eturn)p 0 0 1 TeXcolorrgb 1052 881 a SDict begin H.S end 1052 881 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1201 829 a SDict begin H.R end 1201 829 a 1201 880 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1201 880 a 0 TeXcolorgray 27 w Fl(e)o(xtension)28 b(by)g(inde)o(x)f(number)-8 b(.)49 b(N.B.)26 b(The)h(input)h(inde)o(x)g (number)g(is)f(curr)m(ently)840 971 y(de\002ned)21 b(as)e(enumer)o (ating)h(e)o(xtensions,)f(so)g(the)g(e)o(xtension\(1\))h(r)m(eturns)p 0 0 1 TeXcolorrgb 2716 972 a SDict begin H.S end 2716 972 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2878 923 a SDict begin H.R end 2878 923 a 2878 971 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2878 971 a 0 TeXcolorgray 18 w Fl(number)g(2.)p 0 TeXcolorgray 0 TeXcolorgray 652 1079 a Fx(\225)p 0 TeXcolorgray 722 1079 a SDict begin H.S end 722 1079 a 0 TeXcolorgray 0 TeXcolorgray 722 1079 a SDict begin H.R end 722 1079 a 722 1079 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a4b5b4cccb7912bb0cf8c03600e2f89b4) cvn H.B /DEST pdfmark end 722 1079 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 1080 a SDict begin H.S end 743 1080 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1038 1025 a SDict begin H.R end 1038 1025 a 1038 1079 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1038 1079 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1144 1080 a SDict begin H.S end 1144 1080 a 0 0 1 TeXcolorrgb -1 x Fx(e)o(xtension)p 0 0 1 TeXcolorrgb 1461 1023 a SDict begin H.R end 1461 1023 a 1461 1079 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a4b5b4cccb7912bb0cf8c03600e2f89b4) cvn H.B /ANN pdfmark end 1461 1079 a 0 TeXcolorgray 21 w Fx(\(int)g(i\))p 0 TeXcolorgray 0 TeXcolorgray 840 1204 a Fl(r)m(eturn)p 0 0 1 TeXcolorrgb 1053 1205 a SDict begin H.S end 1053 1205 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1202 1153 a SDict begin H.R end 1202 1153 a 1202 1204 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1202 1204 a 0 TeXcolorgray 29 w Fl(e)o(xtension)29 b(by)g(inde)o(x)g(number)-8 b(.)54 b(non-const)30 b(ver)o(sion.)54 b(see)29 b(const)g(ver)o(sion)h(for)840 1295 y(details.)p 0 TeXcolorgray 0 TeXcolorgray 652 1403 a Fx(\225)p 0 TeXcolorgray 722 1403 a SDict begin H.S end 722 1403 a 0 TeXcolorgray 0 TeXcolorgray 722 1403 a SDict begin H.R end 722 1403 a 722 1403 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_af29d26cb351ba86544648203d5dbf5dc) cvn H.B /DEST pdfmark end 722 1403 a 0 TeXcolorgray 21 w Fx(const)p 0 0 1 TeXcolorrgb 939 1404 a SDict begin H.S end 939 1404 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1234 1349 a SDict begin H.R end 1234 1349 a 1234 1403 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1234 1403 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1340 1404 a SDict begin H.S end 1340 1404 a 0 0 1 TeXcolorrgb -1 x Fx(e)o(xtension)p 0 0 1 TeXcolorrgb 1657 1347 a SDict begin H.R end 1657 1347 a 1657 1403 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_af29d26cb351ba86544648203d5dbf5dc) cvn H.B /ANN pdfmark end 1657 1403 a 0 TeXcolorgray 21 w Fx(\(const)20 b(String)f(&hduName,)f (int)j(v)o(ersion=1\))d(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1528 a Fl(r)m(eturn)p 0 0 1 TeXcolorrgb 1043 1529 a SDict begin H.S end 1043 1529 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1193 1477 a SDict begin H.R end 1193 1477 a 1193 1528 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1193 1528 a 0 TeXcolorgray 18 w Fl(e)o(xtension)i(by)f(name)g(and)h (\(optionally\))g(ver)o(sion)g(number)-8 b(.)p 0 TeXcolorgray 0 TeXcolorgray 652 1636 a Fx(\225)p 0 TeXcolorgray 722 1636 a SDict begin H.S end 722 1636 a 0 TeXcolorgray 0 TeXcolorgray 722 1636 a SDict begin H.R end 722 1636 a 722 1636 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a21ee1ab28908eb2ed74b5f88cfcc97bf) cvn H.B /DEST pdfmark end 722 1636 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 1637 a SDict begin H.S end 743 1637 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1038 1581 a SDict begin H.R end 1038 1581 a 1038 1636 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1038 1636 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1144 1637 a SDict begin H.S end 1144 1637 a 0 0 1 TeXcolorrgb -1 x Fx(e)o(xtension)p 0 0 1 TeXcolorrgb 1461 1579 a SDict begin H.R end 1461 1579 a 1461 1636 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a21ee1ab28908eb2ed74b5f88cfcc97bf) cvn H.B /ANN pdfmark end 1461 1636 a 0 TeXcolorgray 21 w Fx(\(const)20 b(String)f(&hduName,)f(int)j(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 1760 a Fl(r)m(eturn)p 0 0 1 TeXcolorrgb 1043 1761 a SDict begin H.S end 1043 1761 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1193 1709 a SDict begin H.R end 1193 1709 a 1193 1760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1193 1760 a 0 TeXcolorgray 18 w Fl(e)o(xtension)f(by)f (name)g(and)h(\(optionally\))g(ver)o(sion)g(number)-8 b(.)p 0 TeXcolorgray 652 1868 a Fx(\225)p 0 TeXcolorgray 41 w(const)20 b(ExtMap)g(&)p 0 0 1 TeXcolorrgb 1292 1869 a SDict begin H.S end 1292 1869 a 0 0 1 TeXcolorrgb -1 x Fx(e)o(xtension)p 0 0 1 TeXcolorrgb 1609 1812 a SDict begin H.R end 1609 1812 a 1609 1868 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a5e4b2efb2d9c75db28fe264cb8576280) cvn H.B /ANN pdfmark end 1609 1868 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1993 a Fl(r)m(eturn)g(const)g(r)m(efer)m(ence)g(to)f (the)g(e)o(xtension)g(container)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2100 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2101 a SDict begin H.S end 722 2101 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 905 2044 a SDict begin H.R end 905 2044 a 905 2100 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 905 2100 a 0 TeXcolorgray 15 w Fx(&)p 0 0 1 TeXcolorrgb 1001 2101 a SDict begin H.S end 1001 2101 a 0 0 1 TeXcolorrgb -1 x Fx(\002lter)p 0 0 1 TeXcolorrgb 1158 2044 a SDict begin H.R end 1158 2044 a 1158 2100 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_add1f740bb5706da76773951cbb1f5f89) cvn H.B /ANN pdfmark end 1158 2100 a 0 TeXcolorgray 15 w Fx(\(const)15 b(String)g(&e)o (xpression,)p 0 0 1 TeXcolorrgb 2067 2101 a SDict begin H.S end 2067 2101 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 2362 2046 a SDict begin H.R end 2362 2046 a 2362 2100 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 2362 2100 a 0 TeXcolorgray 16 w Fx(&inputT)-7 b(able,)14 b(bool)g(o)o(v)o(erwrite=true,)722 2200 y(bool)20 b(readData=f)o(alse\))p 0 TeXcolorgray 0 TeXcolorgray 840 2325 a Fl(F)m(ilter)d(the)g(r)m(ows)h(of)f(the)h (inputT)-7 b(able)18 b(with)f(the)h(condition)g(e)o(xpr)m(ession,)h (and)f(r)m(eturn)h(a)e(r)m(efer)m(ence)840 2416 y(to)i(the)g(r)m (esulting)p 0 0 1 TeXcolorrgb 1309 2417 a SDict begin H.S end 1309 2417 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1472 2365 a SDict begin H.R end 1472 2365 a 1472 2416 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1472 2416 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 2524 a Fx(\225)p 0 TeXcolorgray 722 2524 a SDict begin H.S end 722 2524 a 0 TeXcolorgray 0 TeXcolorgray 722 2524 a SDict begin H.R end 722 2524 a 722 2524 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a10cc4bf1ef07a50ea79d3bfaa57a844f) cvn H.B /DEST pdfmark end 722 2524 a 0 TeXcolorgray 21 w Fx(\002ts\002le)21 b Fp(\003)p 0 0 1 TeXcolorrgb 1034 2525 a SDict begin H.S end 1034 2525 a 0 0 1 TeXcolorrgb -1 x Fx(\002tsPointer)p 0 0 1 TeXcolorrgb 1375 2468 a SDict begin H.R end 1375 2468 a 1375 2524 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a10cc4bf1ef07a50ea79d3bfaa57a844f) cvn H.B /ANN pdfmark end 1375 2524 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2648 a Fl(r)m(eturn)g(the)f(CFITSIO)f(\002ts\002le)h(pointer)h(for)e (this)p 0 0 1 TeXcolorrgb 2114 2649 a SDict begin H.S end 2114 2649 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2264 2598 a SDict begin H.R end 2264 2598 a 2264 2648 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2264 2648 a 0 TeXcolorgray 18 w Fl(object)p 0 TeXcolorgray 652 2756 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 2757 a SDict begin H.S end 889 2757 a 0 0 1 TeXcolorrgb -1 x Fx(\003ush)p 0 0 1 TeXcolorrgb 1050 2700 a SDict begin H.R end 1050 2700 a 1050 2756 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a2df185878082d2dabe76f3f25600311b) cvn H.B /ANN pdfmark end 1050 2756 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2881 a Fl(\003ush)i(b)o(uf)o(fer)f(contents)g(to)g (disk)p 0 TeXcolorgray 0 TeXcolorgray 652 2989 a Fx(\225)p 0 TeXcolorgray 722 2989 a SDict begin H.S end 722 2989 a 0 TeXcolorgray 0 TeXcolorgray 722 2989 a SDict begin H.R end 722 2989 a 722 2989 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a785184269e4cdf607cb844b5b45ad105) cvn H.B /DEST pdfmark end 722 2989 a 0 TeXcolorgray 21 w Fx(int)p 0 0 1 TeXcolorrgb 851 3007 a SDict begin H.S end 851 3007 a 0 0 1 TeXcolorrgb -18 x Fx(getCompressionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1555 2933 a SDict begin H.R end 1555 2933 a 1555 2989 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a785184269e4cdf607cb844b5b45ad105) cvn H.B /ANN pdfmark end 1555 2989 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3113 a Fl(Get)k(the)g(int)g (specifying)h(the)f(compr)m(ession)i(algorithm)e(to)g(be)h(used)f(when) h(adding)g(an)g(ima)o(g)o(e)840 3205 y(e)o(xtension.)p 0 TeXcolorgray 0 TeXcolorgray 652 3313 a Fx(\225)p 0 TeXcolorgray 722 3313 a SDict begin H.S end 722 3313 a 0 TeXcolorgray 0 TeXcolorgray 722 3313 a SDict begin H.R end 722 3313 a 722 3313 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a4af2b8fb489f7fbfeabc1a381c94834c) cvn H.B /DEST pdfmark end 722 3313 a 0 TeXcolorgray 21 w Fx(int)p 0 0 1 TeXcolorrgb 851 3331 a SDict begin H.S end 851 3331 a 0 0 1 TeXcolorrgb -18 x Fx(getNoiseBits)p 0 0 1 TeXcolorrgb 1280 3256 a SDict begin H.R end 1280 3256 a 1280 3313 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a4af2b8fb489f7fbfeabc1a381c94834c) cvn H.B /ANN pdfmark end 1280 3313 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3437 a Fl(Get)f(the)g(c\002tsio)g(noisebits)h(par)o(ameter)f(used)h (when)f(compr)m(essing)i(\003oating-point)g(ima)o(g)o(es.)p 0 TeXcolorgray 652 3545 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 3563 a SDict begin H.S end 889 3563 a 0 0 1 TeXcolorrgb -18 x Fx(getT)m(ileDimensions)p 0 0 1 TeXcolorrgb 1518 3489 a SDict begin H.R end 1518 3489 a 1518 3545 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a879b8f7cb81cfbc781e8a7b6c6982ca9) cvn H.B /ANN pdfmark end 1518 3545 a 0 TeXcolorgray 21 w Fx(\(std::v)o(ector)p Fu(<)d Fx(long)h Fu(>)i Fx(&tileSizes\))f (const)p 0 TeXcolorgray 0 TeXcolorgray 840 3670 a Fl(Get)f(the)g(curr)m (ent)h(settings)f(of)g(dimension)h(sizes)e(for)h(tiles)f(used)i(in)f (ima)o(g)o(e)h(compr)m(ession.)p 0 TeXcolorgray 0 TeXcolorgray 652 3778 a Fx(\225)p 0 TeXcolorgray 722 3778 a SDict begin H.S end 722 3778 a 0 TeXcolorgray 0 TeXcolorgray 722 3778 a SDict begin H.R end 722 3778 a 722 3778 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a46ee9a7cb851501eb921149f1173d11d) cvn H.B /DEST pdfmark end 722 3778 a 0 TeXcolorgray 21 w Fx(const)g(String)g(&)p 0 0 1 TeXcolorrgb 1248 3779 a SDict begin H.S end 1248 3779 a 0 0 1 TeXcolorrgb -1 x Fx(name)p 0 0 1 TeXcolorrgb 1428 3739 a SDict begin H.R end 1428 3739 a 1428 3778 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a46ee9a7cb851501eb921149f1173d11d) cvn H.B /ANN pdfmark end 1428 3778 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3902 a Fl(r)m(eturn)g(\002lename)g (of)f(\002le)g(corr)m(esponding)i(to)p 0 0 1 TeXcolorrgb 2030 3903 a SDict begin H.S end 2030 3903 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2180 3851 a SDict begin H.R end 2180 3851 a 2180 3902 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2180 3902 a 0 TeXcolorgray 18 w Fl(object)p 0 TeXcolorgray 0 TeXcolorgray 652 4010 a Fx(\225)p 0 TeXcolorgray 722 4010 a SDict begin H.S end 722 4010 a 0 TeXcolorgray 0 TeXcolorgray 722 4010 a SDict begin H.R end 722 4010 a 722 4010 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a18d1d822d3eecbf6298f974504863c05) cvn H.B /DEST pdfmark end 722 4010 a 0 TeXcolorgray 21 w Fx(const)p 0 0 1 TeXcolorrgb 939 4011 a SDict begin H.S end 939 4011 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1165 3956 a SDict begin H.R end 1165 3956 a 1165 4010 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1165 4010 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1271 4028 a SDict begin H.S end 1271 4028 a 0 0 1 TeXcolorrgb -18 x Fx(pHDU)p 0 0 1 TeXcolorrgb 1492 3956 a SDict begin H.R end 1492 3956 a 1492 4010 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a18d1d822d3eecbf6298f974504863c05) cvn H.B /ANN pdfmark end 1492 4010 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4134 a Fl(r)m(eturn)g(a)f(const)h(r)m(efer)m(ence)g(to)f(the)g (primary)p 0 0 1 TeXcolorrgb 2017 4135 a SDict begin H.S end 2017 4135 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2179 4086 a SDict begin H.R end 2179 4086 a 2179 4134 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2179 4134 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 4242 a Fx(\225)p 0 TeXcolorgray 722 4242 a SDict begin H.S end 722 4242 a 0 TeXcolorgray 0 TeXcolorgray 722 4242 a SDict begin H.R end 722 4242 a 722 4242 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) cvn H.B /DEST pdfmark end 722 4242 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4243 a SDict begin H.S end 743 4243 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 969 4188 a SDict begin H.R end 969 4188 a 969 4242 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 969 4242 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1075 4260 a SDict begin H.S end 1075 4260 a 0 0 1 TeXcolorrgb -18 x Fx(pHDU)p 0 0 1 TeXcolorrgb 1296 4188 a SDict begin H.R end 1296 4188 a 1296 4242 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) cvn H.B /ANN pdfmark end 1296 4242 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4367 a Fl(r)m(eturn)h(a)f(r)m(efer)m(ence)h(to)f(the)g(primary)p 0 0 1 TeXcolorrgb 1841 4368 a SDict begin H.S end 1841 4368 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2003 4319 a SDict begin H.R end 2003 4319 a 2003 4367 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2003 4367 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 652 4475 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 886 4476 a SDict begin H.S end 886 4476 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1029 4419 a SDict begin H.R end 1029 4419 a 1029 4475 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) cvn H.B /ANN pdfmark end 1029 4475 a 0 TeXcolorgray 18 w Fx(\(const)f(String)f (&hduName,)f(bool)g(readDataFlag=f)o(alse,)h(const)g(std::v)o(ector)p Fu(<)722 4575 y Fx(String)j Fu(>)g Fx(&k)o(e)o(ys=std::v)o(ector)p Fu(<)d Fx(String)j Fu(>)p Fx(\(\),)f(int)i(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 4699 a Fl(g)o(et)f(data)f(fr)m(om)g (single)p 0 0 1 TeXcolorrgb 1455 4700 a SDict begin H.S end 1455 4700 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1617 4651 a SDict begin H.R end 1617 4651 a 1617 4699 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1617 4699 a 0 TeXcolorgray 18 w Fl(fr)m(om)g(disk)g(\002le)o(.)p 0 TeXcolorgray 652 4807 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 886 4808 a SDict begin H.S end 886 4808 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1029 4751 a SDict begin H.R end 1029 4751 a 1029 4807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac592041903c94b09cee8cdc29e185b0a) cvn H.B /ANN pdfmark end 1029 4807 a 0 TeXcolorgray 18 w Fx(\(const)e(std::v)o (ector)p Fu(<)f Fx(String)h Fu(>)h Fx(&hduNames,)e(bool)h (readDataFlag=f)o(alse\))p 0 TeXcolorgray 0 TeXcolorgray 840 4932 a Fl(g)o(et)j(data)f(fr)m(om)g(a)g(set)f(of)h(HDUs)g(fr)m(om)f (disk)h(\002le)o(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 88 93 TeXDict begin 88 92 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.88) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(88)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 904 524 a SDict begin H.S end 904 524 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1047 467 a SDict begin H.R end 1047 467 a 1047 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a6e3ebb1d61fd6374c0f1033ba0777112) cvn H.B /ANN pdfmark end 1047 523 a 0 TeXcolorgray 37 w Fx(\(const)35 b(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)h Fx(&hduNames,)h(const)e(std::v)o(ector)p Fu(<)f Fx(std-)722 623 y(::v)o(ector)p Fu(<)28 b Fx(String)i Fu(>)g(>)f Fx(&k)o(e)o(ys,)i(bool)e(readDataFlag=f)o(alse,)i(const)e (std::v)o(ector)p Fu(<)f Fx(int)722 722 y Fu(>)21 b Fx(&hduV)-9 b(ersions=std::v)o(ector)p Fu(<)15 b Fx(int)20 b Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 847 a Fl(g)o(et)g(data)f (fr)m(om)g(a)g(set)f(of)h(HDUs)g(fr)m(om)f(disk)h(\002le)o(,)g (specifying)h(k)o(e)n(ys)f(and)h(ver)o(sion)g(number)o(s.)p 0 TeXcolorgray 652 955 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 895 956 a SDict begin H.S end 895 956 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1038 898 a SDict begin H.R end 1038 898 a 1038 955 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_adafc3aecf2d2398109d2c42f6025f2e5) cvn H.B /ANN pdfmark end 1038 955 a 0 TeXcolorgray 27 w Fx(\(int)26 b(hduInde)o(x,)e(bool)i(readDataFlag=f)o(alse,)g(const)g (std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)722 1054 y Fx(&k)o(e)o(ys=std::v)o(ector)p Fu(<)17 b Fx(String)j Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 1179 a Fl(r)m(ead)g(an)p 0 0 1 TeXcolorrgb 1087 1180 a SDict begin H.S end 1087 1180 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1249 1131 a SDict begin H.R end 1249 1131 a 1249 1179 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1249 1179 a 0 TeXcolorgray 18 w Fl(speci\002ed)g(by)g(inde)o(x)f(number)-8 b(.)p 0 TeXcolorgray 652 1287 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 893 1288 a SDict begin H.S end 893 1288 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1036 1231 a SDict begin H.R end 1036 1231 a 1036 1287 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a6237260607e157ec5f521522f137f09c) cvn H.B /ANN pdfmark end 1036 1287 a 0 TeXcolorgray 25 w Fx(\(const)24 b(std::v)o(ector)p Fu(<)f Fx(String)h Fu(>)h Fx(&searchK)n(e)o(ys,)f(const)g(std::v)o(ector)p Fu(<)f Fx(String)722 1386 y Fu(>)f Fx(&searchV)-9 b(alues,)21 b(bool)g(readDataFlag=f)o(alse,)g(const)h(std::v)o(ector)p Fu(<)f Fx(String)g Fu(>)h Fx(&hdu-)722 1486 y(K)n(e)o(ys=std::v)o (ector)p Fu(<)c Fx(String)i Fu(>)p Fx(\(\),)f(int)h(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 1611 a Fl(r)m(ead)g(method)g(for)f(r) m(ead)h(header)g(or)p 0 0 1 TeXcolorrgb 1802 1612 a SDict begin H.S end 1802 1612 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1964 1563 a SDict begin H.R end 1964 1563 a 1964 1611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1964 1611 a 0 TeXcolorgray 18 w Fl(that)f(contains)h(speci\002ed)g(k)o(e)n(ywor)m(ds.)p 0 TeXcolorgray 0 TeXcolorgray 652 1719 a Fx(\225)p 0 TeXcolorgray 722 1719 a SDict begin H.S end 722 1719 a 0 TeXcolorgray 0 TeXcolorgray 722 1719 a SDict begin H.R end 722 1719 a 722 1719 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a9d5050b4a572ea98e0c830295894c142) cvn H.B /DEST pdfmark end 722 1719 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 1720 a SDict begin H.S end 910 1720 a 0 0 1 TeXcolorrgb -1 x Fx(resetPosition)p 0 0 1 TeXcolorrgb 1339 1662 a SDict begin H.R end 1339 1662 a 1339 1719 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a9d5050b4a572ea98e0c830295894c142) cvn H.B /ANN pdfmark end 1339 1719 a 0 TeXcolorgray 20 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1843 a Fl(e)o(xplicit)f(call)f(to)h(set)g(the)g(\002ts)g(\002le)g(pointer)g (to)g(the)g(primary)l(.)p 0 TeXcolorgray 652 1951 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 1969 a SDict begin H.S end 889 1969 a 0 0 1 TeXcolorrgb -18 x Fx(setCompressionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1583 1895 a SDict begin H.R end 1583 1895 a 1583 1951 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ad65169c171ad79257367716d8f93b3f2) cvn H.B /ANN pdfmark end 1583 1951 a 0 TeXcolorgray 21 w Fx(\(int)20 b(compT)-7 b(ype\))p 0 TeXcolorgray 0 TeXcolorgray 840 2076 a Fl(set)21 b(the)h(compr)m(ession)h(algorithm)f(to)f(be)g(used)i(when)e(adding)i (ima)o(g)o(e)f(e)o(xtensions)g(to)f(the)p 0 0 1 TeXcolorrgb 3230 2077 a SDict begin H.S end 3230 2077 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 3379 2025 a SDict begin H.R end 3379 2025 a 3379 2076 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 2076 a 0 TeXcolorgray 840 2167 a Fl(object.)p 0 TeXcolorgray 652 2275 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 2276 a SDict begin H.S end 889 2276 a 0 0 1 TeXcolorrgb -1 x Fx(setNoiseBits)p 0 0 1 TeXcolorrgb 1309 2219 a SDict begin H.R end 1309 2219 a 1309 2275 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a224f6b22c1c3129c07c077d4b5617d2f) cvn H.B /ANN pdfmark end 1309 2275 a 0 TeXcolorgray 21 w Fx(\(int)f(noiseBits\))p 0 TeXcolorgray 0 TeXcolorgray 840 2399 a Fl(Set)f(the)g(c\002tsio)h(noisebits)f(par)o(ameter)h(used)f (when)h(compr)m(essing)g(\003oating-point)h(ima)o(g)o(es.)p 0 TeXcolorgray 652 2507 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 2508 a SDict begin H.S end 889 2508 a 0 0 1 TeXcolorrgb -1 x Fx(setT)m(ileDimensions)p 0 0 1 TeXcolorrgb 1509 2451 a SDict begin H.R end 1509 2451 a 1509 2507 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_aa0bfb6b1a6dc55c585482ba703773f50) cvn H.B /ANN pdfmark end 1509 2507 a 0 TeXcolorgray 21 w Fx(\(const)e(std::v)o(ector)p Fu(<)g Fx(long)g Fu(>)h Fx(&tileSizes\))p 0 TeXcolorgray 0 TeXcolorgray 840 2632 a Fl(Set)f(the)g(dimensions)h(of)f(the)g(tiles)f(into)h(whic)o(h)g(the) g(ima)o(g)o(e)h(is)f(divided)g(during)h(compr)m(ession.)p 0.25 TeXcolorgray 515 2900 a Fo(Static)e(Pub)o(lic)g(Member)g (Functions)p 0 TeXcolorgray 515 2958 a SDict begin H.S end 515 2958 a 515 2958 a SDict begin 12 H.A end 515 2958 a 515 2958 a SDict begin [ /View [/XYZ H.V] /Dest (section*.27) cvn H.B /DEST pdfmark end 515 2958 a 0 TeXcolorgray 0 TeXcolorgray 652 3089 a Fx(\225)p 0 TeXcolorgray 722 3089 a SDict begin H.S end 722 3089 a 0 TeXcolorgray 0 TeXcolorgray 722 3089 a SDict begin H.R end 722 3089 a 722 3089 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a6f151c247fb7d0b13cd7c1d5994417d1) cvn H.B /DEST pdfmark end 722 3089 a 0 TeXcolorgray 21 w Fx(static)j(v)n(oid)p 0 0 1 TeXcolorrgb 1106 3090 a SDict begin H.S end 1106 3090 a 0 0 1 TeXcolorrgb -1 x Fx(clearErrors)p 0 0 1 TeXcolorrgb 1475 3033 a SDict begin H.R end 1475 3033 a 1475 3089 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a6f151c247fb7d0b13cd7c1d5994417d1) cvn H.B /ANN pdfmark end 1475 3089 a 0 TeXcolorgray 20 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3213 a Fl(clear)f(the)f(err)m(or)g(stac)o(k)f(and)i (set)f(status)g(to)g(zer)m(o.)p 0 TeXcolorgray 0 TeXcolorgray 652 3321 a Fx(\225)p 0 TeXcolorgray 722 3321 a SDict begin H.S end 722 3321 a 0 TeXcolorgray 0 TeXcolorgray 722 3321 a SDict begin H.R end 722 3321 a 722 3321 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_ab0e7b06ebbb6097ed6fa2fd555af4ca3) cvn H.B /DEST pdfmark end 722 3321 a 0 TeXcolorgray 21 w Fx(static)i(v)n(oid)p 0 0 1 TeXcolorrgb 1106 3322 a SDict begin H.S end 1106 3322 a 0 0 1 TeXcolorrgb -1 x Fx(setV)-9 b(erboseMode)p 0 0 1 TeXcolorrgb 1659 3265 a SDict begin H.R end 1659 3265 a 1659 3321 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ab0e7b06ebbb6097ed6fa2fd555af4ca3) cvn H.B /ANN pdfmark end 1659 3321 a 0 TeXcolorgray 21 w Fx(\(bool)19 b(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3446 a Fl(set)g(verbose)h(setting)f(for)g(libr)o(ary)p 0 TeXcolorgray 652 3554 a Fx(\225)p 0 TeXcolorgray 41 w(static)i(bool)p 0 0 1 TeXcolorrgb 1087 3555 a SDict begin H.S end 1087 3555 a 0 0 1 TeXcolorrgb -1 x Fx(v)o(erboseMode)p 0 0 1 TeXcolorrgb 1537 3498 a SDict begin H.R end 1537 3498 a 1537 3554 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 1537 3554 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3678 a Fl(r)m(eturn)f(verbose)g(setting)f(for)g(libr)o (ary)515 3815 y SDict begin H.S end 515 3815 a 515 3815 a SDict begin 12 H.A end 515 3815 a 515 3815 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.14.1) cvn H.B /DEST pdfmark end 515 3815 a 0.25 TeXcolorgray 132 x Fo(24.14.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 4150 a Fx(Memory)g(object)i(representation)e(of)i(a)h(disk)p 0 0 1 TeXcolorrgb 1843 4151 a SDict begin H.S end 1843 4151 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2014 4093 a SDict begin H.R end 2014 4093 a 2014 4150 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2014 4150 a 0 TeXcolorgray 20 w Fx(\002le.)515 4296 y(Constructors)f(are)h(pro)o(vided)d(to)j(get)p 0 0 1 TeXcolorrgb 1608 4297 a SDict begin H.S end 1608 4297 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1779 4240 a SDict begin H.R end 1779 4240 a 1779 4296 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1779 4296 a 0 TeXcolorgray 21 w Fx(data)g(from)f(an)h(e)o (xisting)f(\002le)i(or)f(to)g(create)g(ne)n(w)p 0 0 1 TeXcolorrgb 3208 4297 a SDict begin H.S end 3208 4297 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 4240 a SDict begin H.R end 3379 4240 a 3379 4296 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 4296 a 0 TeXcolorgray 515 4396 a Fx(data)f(sets.)26 b(Ov)o(erloaded)18 b(v)o(ersions)h(allo)n(w)h(the)g(user)g(to)515 4543 y(a\))c(read)h(from)e(one)h(or)h(more)e(speci\002ed)i(e)o (xtensions,)f(speci\002ed)g(by)g(EXTNAME)g(and)g(VERSION)515 4643 y(or)i(by)p 0 0 1 TeXcolorrgb 705 4644 a SDict begin H.S end 705 4644 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 885 4589 a SDict begin H.R end 885 4589 a 885 4643 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 885 4643 a 0 TeXcolorgray 19 w Fx(number)-5 b(.)23 b(b)c(either)f(just)h(header)f(information)e (or)i(data)h(on)f(construction)e(c\))j(to)g(spec-)515 4742 y(ify)j(scalar)h(k)o(e)o(yw)o(ord)e(v)n(alues)h(to)h(be)f(read)h (on)f(construction)e(d\))j(to)g(open)e(and)h(read)g(an)h(e)o(xtension) 515 4842 y(that)g(has)g(speci\002ed)g(k)o(e)o(yw)o(ord)e(v)n(alues)h (e\))h(create)g(a)g(ne)n(w)p 0 0 1 TeXcolorrgb 2190 4843 a SDict begin H.S end 2190 4843 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2360 4786 a SDict begin H.R end 2360 4786 a 2360 4842 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2360 4842 a 0 TeXcolorgray 24 w Fx(object)f(and)h(corresponding)c(\002le,) 515 4941 y(including)f(an)i(empty)g(primary)e(header)-5 b(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 89 94 TeXDict begin 89 93 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.89) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(89)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(The)19 b(memory)g(\002ts)i(object)e(as)i (constructed)d(is)j(al)o(w)o(ays)g(an)e(image)h(of)g(a)g(v)n(alid)p 0 0 1 TeXcolorrgb 2780 524 a SDict begin H.S end 2780 524 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2950 467 a SDict begin H.R end 2950 467 a 2950 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2950 523 a 0 TeXcolorgray 21 w Fx(object,)f(i.e.)25 b(a)515 623 y(primary)p 0 0 1 TeXcolorrgb 798 624 a SDict begin H.S end 798 624 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 978 569 a SDict begin H.R end 978 569 a 978 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 978 623 a 0 TeXcolorgray 21 w Fx(is)c(created)e(on)h(construction.)515 770 y(calling)e(the)h (destructor)f(closes)i(the)f(disk)g(\002le,)g(so)h(that)p 0 0 1 TeXcolorrgb 2119 771 a SDict begin H.S end 2119 771 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2290 713 a SDict begin H.R end 2290 713 a 2290 770 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2290 770 a 0 TeXcolorgray 19 w Fx(\002les)g(are)f (automatically)f(deleted)g(at)515 869 y(the)i(end)g(of)f(scope)h (unless)h(other)e(arrangements)f(are)i(made.)515 1009 y SDict begin H.S end 515 1009 a 515 1009 a SDict begin 12 H.A end 515 1009 a 515 1009 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.14.2) cvn H.B /DEST pdfmark end 515 1009 a 0.25 TeXcolorgray 128 x Fo(24.14.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1340 a SDict begin H.S end 515 1340 a 0 TeXcolorgray 0 TeXcolorgray 515 1340 a SDict begin H.R end 515 1340 a 515 1340 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a913bc6d48a4ff69013e49e1ae4fbb696) cvn H.B /DEST pdfmark end 515 1340 a 0 TeXcolorgray 515 1378 a SDict begin H.S end 515 1378 a 515 1378 a SDict begin 12 H.A end 515 1378 a 515 1378 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.1) cvn H.B /DEST pdfmark end 515 1378 a 0.25 TeXcolorgray 147 x Fo(24.14.2.1)75 b(CC\002ts::FITS::FITS)25 b(\()40 b(const)21 b(String)h(&)e Fk(name)q(,)42 b Fo(RWmode)22 b Fk(mode)f(=)f Fr(Read)p Fk(,)41 b Fo(bool)845 1624 y Fk(readDataFla)o(g)23 b(=)d Fr(false)p Fk(,)42 b Fo(const)22 b(std::vector)p Fu(<)g Fo(String)g Fu(>)e Fo(&)h Fk(primar)q(yK)o(e)o(ys)g(=)845 1724 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))30 b Fo(\))p 0 TeXcolorgray 515 1908 a Fx(basic)20 b(constructor)515 2055 y(This)27 b(basic)h(constructor)e(mak)o(es)h(a)p 0 0 1 TeXcolorrgb 1595 2056 a SDict begin H.S end 1595 2056 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1766 1999 a SDict begin H.R end 1766 1999 a 1766 2055 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1766 2055 a 0 TeXcolorgray 28 w Fx(object)g(from)f(the)i (gi)n(v)o(en)e(\002lename.)47 b(The)27 b(\002le)h(name)515 2155 y(is)i(the)g(only)f(required)f(ar)o(gument.)51 b(The)29 b(\002le)h(name)f(string)h(is)g(passed)g(directly)f(to)g(the)h (c\002tsio)515 2254 y(library:)23 b(thus)c(the)f(e)o(xtended)f(\002le)j (name)e(syntax)g(described)f(in)i(the)g(c\002tsio)g(manual)f(should)f (w)o(ork)515 2354 y(as)k(documented.)h(\(Though)17 b(the)k(e)o(xtended) d(\002le)i(name)g(feature)f(which)h(allo)n(ws)g(the)g(opening)e(of)i(a) 515 2453 y(particular)f(image)g(located)h(in)g(the)g(ro)n(w)g(of)g(a)h (table)f(is)h(currently)d(unsupported.\))515 2600 y(If)24 b(the)h(mode)f(is)i(Read)f([)o(def)o(ault])o(:)35 b(It)25 b(will)g(read)g(all)g(of)g(the)f(headers)g(in)h(the)g(\002le,)h(and)f (all)g(of)g(the)515 2700 y(data)i(if)g(the)h(readDataFlag)e(is)i (supplied)e(as)i(true.)46 b(It)27 b(will)h(also)g(read)f(optional)e (primary)h(k)o(e)o(ys.)515 2800 y(Upon)d(completion,)g(the)h(the)g (last)g(header)f(in)h(the)g(\002le)h(will)g(become)d(the)i(current)f(e) o(xtension.)35 b(\(-)515 2899 y(Ho)n(we)n(v)o(er)16 b(if)i(the)g (\002le)h(name)e(includes)h(e)o(xtended)e(syntax)h(selecting)h(a)g (particular)f(e)o(xtension,)f(that)515 2999 y(e)o(xtension)i(will)j(be) g(the)f(current)f(one.\))515 3146 y(If)i(the)g(mode)f(is)i(Write)g(and) f(the)g(\002le)h(already)e(e)o(xists:)28 b(The)21 b(\002le)h(is)g (opened)d(in)j(read-write)e(mode,)515 3245 y(all)g(of)g(the)g(headers)f (of)g(the)h(\002le)g(are)g(read,)f(and)h(all)g(of)g(the)g(data)f(if)h (the)g(readDataFlag)f(is)i(supplied)515 3345 y(as)d(true.)24 b(It)18 b(will)h(also)f(read)g(optional)e(primary)h(k)o(e)o(ys.)24 b(F)o(or)17 b(backw)o(ards)g(compatibility)f(with)i(older)515 3445 y(v)o(ersions)k(of)p 0 0 1 TeXcolorrgb 907 3446 a SDict begin H.S end 907 3446 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1120 3388 a SDict begin H.R end 1120 3388 a 1120 3445 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1120 3445 a 0 TeXcolorgray 24 w Fx(\(which)g(only)h(read)g(the)g(primary)f (when)h(in)g(Write)h(mode)f(for)g(pre-e)o(xisting)515 3544 y(\002les\),)d(the)g(primary)f(will)i(become)e(the)h(current)f(e)o (xtension.)515 3691 y(If)24 b(the)g(mode)f(is)j(Write)e(and)g(the)g (\002le)h(does)f(NOT)h(e)o(xist)f(\(or)g(is)h(o)o(v)o(erwritten)d (using)i('!')37 b(syntax\):)515 3791 y(A)27 b(def)o(ault)f(primary)p 0 0 1 TeXcolorrgb 1149 3792 a SDict begin H.S end 1149 3792 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1329 3737 a SDict begin H.R end 1329 3737 a 1329 3791 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1329 3791 a 0 TeXcolorgray 27 w Fx(will)h(be)g(created)f (in)h(the)f(\002le)i(with)e(BITPIX=8)g(and)h(NAXIS=0.)43 b(-)515 3890 y(Ho)n(we)n(v)o(er)23 b(if)j(you)e(wish)i(to)f(create)g(a) h(ne)n(w)f(\002le)h(with)f(image)g(data)g(in)g(the)g(primary)-5 b(,)25 b(the)g(v)o(ersion)515 3990 y(of)20 b(the)p 0 0 1 TeXcolorrgb 727 3991 a SDict begin H.S end 727 3991 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 898 3934 a SDict begin H.R end 898 3934 a 898 3990 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 898 3990 a 0 TeXcolorgray 21 w Fx(constructor)f(that)h (speci\002es)h(the)g(data)f(type)g(and)g(number)e(of)j(ax)o(es)f (should)f(be)i(used)515 4090 y(instead.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4282 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4225 a SDict begin H.S end 515 4225 a 515 4225 a SDict begin 12 H.A end 515 4225 a 515 4225 a SDict begin [ /View [/XYZ H.V] /Dest (table.49) cvn H.B /DEST pdfmark end 515 4225 a 0.5 TeXcolorgray 515 4328 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4328 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4428 4 100 v 0 TeXcolorgray 796 4398 a Ft(name)p 0.5 TeXcolorgray 1005 4428 V 0 TeXcolorgray 60 w Fx(The)f(name)f(of)h(the)p 0 0 1 TeXcolorrgb 1599 4399 a SDict begin H.S end 1599 4399 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1770 4341 a SDict begin H.R end 1770 4341 a 1770 4398 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1770 4398 a 0 TeXcolorgray 21 w Fx(\002le)h(to)f(be)g (read/written)p 0.5 TeXcolorgray 3400 4428 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4431 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4431 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4531 4 100 v 0 TeXcolorgray 796 4501 a Ft(mode)p 0.5 TeXcolorgray 1005 4531 V 0 TeXcolorgray 60 w Fx(The)g(read/write)f (mode:)24 b(must)d(be)f(Read)g(or)g(Write)p 0.5 TeXcolorgray 3400 4531 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4534 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4534 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4733 4 200 v 0 TeXcolorgray 634 4604 a Ft(r)m(eadData-)820 4703 y(Fla)o(g)p 0.5 TeXcolorgray 1005 4733 V 0 TeXcolorgray 1037 4604 a Fx(boolean:)k(read)19 b(data)h(on)g(construction)e(if)j(true)p 0.5 TeXcolorgray 3400 4733 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4737 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4737 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4836 4 100 v 0 TeXcolorgray 553 4806 a Ft(primaryK)m(e)n(ys)p 0.5 TeXcolorgray 1005 4836 V 0 TeXcolorgray 60 w Fx(Allo)n(ws)f(optional)f(reading)g(of)h (primary)f(header)g(k)o(e)o(ys)g(on)h(construction)p 0.5 TeXcolorgray 3400 4836 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4839 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4839 V 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 90 95 TeXDict begin 90 94 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.90) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(90)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 495 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 452 a SDict begin H.S end 515 452 a 515 452 a SDict begin 12 H.A end 515 452 a 515 452 a SDict begin [ /View [/XYZ H.V] /Dest (table.50) cvn H.B /DEST pdfmark end 515 452 a 0.5 TeXcolorgray 515 555 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 555 V 0 TeXcolorgray 0.5 TeXcolorgray 515 655 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 655 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 826 626 a SDict begin H.S end 826 626 a 0 0 1 TeXcolorrgb -1 x Ft(NoSuc)o(hHDU)p 0 0 1 TeXcolorrgb 1263 569 a SDict begin H.R end 1263 569 a 1263 625 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /ANN pdfmark end 1263 625 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 655 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 655 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)19 b(on)p 0 0 1 TeXcolorrgb 1681 626 a SDict begin H.S end 1681 626 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1861 571 a SDict begin H.R end 1861 571 a 1861 625 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1861 625 a 0 TeXcolorgray 21 w Fx(seek)h(error)f(either)h(by)f(inde)o(x)g (or)h({name,v)o(ersion})p 0.5 TeXcolorgray 3557 655 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 658 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 658 V 0 TeXcolorgray 0.5 TeXcolorgray 515 857 4 200 v 0 TeXcolorgray 0.97255 0.97255 0.97255 TeXcolorrgb 518 857 774 200 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 952 729 a SDict begin H.S end 952 729 a 0 0 1 TeXcolorrgb -1 x Ft(F)l(itsErr)l(or)p 0 0 1 TeXcolorrgb 1263 674 a SDict begin H.R end 1263 674 a 1263 728 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1263 728 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 857 4 200 v 0 TeXcolorgray 0.97255 0.97255 0.97255 TeXcolorrgb 1294 857 2263 200 v 0 TeXcolorgray 60 w Fx(thro)n(wn)e(on)h(non-zero)e (status)j(code)f(from)f(c\002tsio)i(when)f(not)g(o)o(v)o(erriden)e(by)p 0 0 1 TeXcolorrgb 1323 845 a SDict begin H.S end 1323 845 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1785 771 a SDict begin H.R end 1785 771 a 1785 827 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1785 827 a 0 TeXcolorgray 20 w Fx(error)i(to)i(produce)d(more)h(illuminating)g(message.)p 0.5 TeXcolorgray 3557 857 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 861 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 861 V 0 TeXcolorgray 0 TeXcolorgray 515 1090 a SDict begin H.S end 515 1090 a 0 TeXcolorgray 0 TeXcolorgray 515 1090 a SDict begin H.R end 515 1090 a 515 1090 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a1cb56c87695f73c6110cdd3dd1fb03b0) cvn H.B /DEST pdfmark end 515 1090 a 0 TeXcolorgray 515 1128 a SDict begin H.S end 515 1128 a 515 1128 a SDict begin 12 H.A end 515 1128 a 515 1128 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.2) cvn H.B /DEST pdfmark end 515 1128 a 0.25 TeXcolorgray 147 x Fo(24.14.2.2)75 b(CC\002ts::FITS::FITS)24 b(\()41 b(const)21 b(String)g(&)f Fk(name)q(,)42 b Fo(RWmode)22 b Fk(mode)q(,)42 b Fo(const)22 b(string)f(&)845 1374 y Fk(hduName)q(,)37 b Fo(bool)19 b Fk(readDataFla)o(g)h(=)e Fr(false)p Fk(,)34 b Fo(const)19 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)h Fk(hduK)o(e)o(ys)h(=)845 1474 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)32 b Fo(const)19 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)h Fk(primar)q(yK)o(e)o(y)h(=)845 1574 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)30 b Fo(int)17 b Fk(ver)o(sion)h(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 1758 a Fx(Open)19 b(a)p 0 0 1 TeXcolorrgb 773 1759 a SDict begin H.S end 773 1759 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 944 1702 a SDict begin H.R end 944 1702 a 944 1758 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 944 1758 a 0 TeXcolorgray 20 w Fx(\002le)i(and)f(read)g(a)g(single)g(speci\002ed)p 0 0 1 TeXcolorrgb 1988 1759 a SDict begin H.S end 1988 1759 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2168 1704 a SDict begin H.R end 2168 1704 a 2168 1758 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2168 1758 a 0 TeXcolorgray Fx(.)515 1905 y(This)g(and)g(similar)g(constructor)e(v)n(ariants)i(support)f(reading) f(table)j(data.)515 2052 y(Optional)h(ar)o(guments)e(allo)n(w)j(the)f (reading)g(of)g(primary)f(header)g(k)o(e)o(ys)i(and)f(speci\002ed)g (data)h(from)515 2151 y(hduName,)k(the)p 0 0 1 TeXcolorrgb 1018 2152 a SDict begin H.S end 1018 2152 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1198 2097 a SDict begin H.R end 1198 2097 a 1198 2151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1198 2151 a 0 TeXcolorgray 28 w Fx(to)h(be)g(read.)47 b(An)28 b(object)f(representing)e(the)j(primary)p 0 0 1 TeXcolorrgb 2858 2152 a SDict begin H.S end 2858 2152 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 3038 2097 a SDict begin H.R end 3038 2097 a 3038 2151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3038 2151 a 0 TeXcolorgray 28 w Fx(is)h(al)o(w)o(ays)515 2251 y(created:)24 b(if)d(it)g(contains)e(an)h(image,)g(that)g(image)g (may)f(be)h(read)g(by)g(subsequent)f(calls.)515 2398 y(If)25 b(e)o(xtended)f(\002le)j(name)e(syntax)g(is)h(used)g(and)f (selects)i(an)e(e)o(xtension)g(other)g(than)g(hduName,)g(a)p 0 0 1 TeXcolorrgb 515 2515 a SDict begin H.S end 515 2515 a 0 0 1 TeXcolorrgb -18 x Fx(FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 1529 2441 a SDict begin H.R end 1529 2441 a 1529 2497 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 1529 2497 a 0 TeXcolorgray 21 w Fx(e)o(xception)18 b(will)j(be)g(thro)n(wn.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2707 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2650 a SDict begin H.S end 515 2650 a 515 2650 a SDict begin 12 H.A end 515 2650 a 515 2650 a SDict begin [ /View [/XYZ H.V] /Dest (table.51) cvn H.B /DEST pdfmark end 515 2650 a 0.5 TeXcolorgray 515 2753 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2753 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2853 4 100 v 0 TeXcolorgray 796 2823 a Ft(name)p 0.5 TeXcolorgray 1005 2853 V 0 TeXcolorgray 60 w Fx(The)f(name)f(of)h(the)p 0 0 1 TeXcolorrgb 1599 2824 a SDict begin H.S end 1599 2824 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1770 2766 a SDict begin H.R end 1770 2766 a 1770 2823 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1770 2823 a 0 TeXcolorgray 21 w Fx(\002le)h(to)f(be)g (read)p 0.5 TeXcolorgray 3400 2853 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2856 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2856 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2956 4 100 v 0 TeXcolorgray 796 2926 a Ft(mode)p 0.5 TeXcolorgray 1005 2956 V 0 TeXcolorgray 60 w Fx(The)g(read/write)f (mode:)24 b(tak)o(es)d(v)n(alues)f(Read)g(or)g(Write)p 0.5 TeXcolorgray 3400 2956 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2959 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2959 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3058 4 100 v 0 TeXcolorgray 658 3029 a Ft(hduName)p 0.5 TeXcolorgray 1005 3058 V 0 TeXcolorgray 59 w Fx(The)g(name)f(of)h(the)p 0 0 1 TeXcolorrgb 1599 3030 a SDict begin H.S end 1599 3030 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1779 2975 a SDict begin H.R end 1779 2975 a 1779 3029 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1779 3029 a 0 TeXcolorgray 21 w Fx(to)g(be)g(read.)p 0.5 TeXcolorgray 3400 3058 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3062 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3062 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3161 4 100 v 0 TeXcolorgray 696 3132 a Ft(hduK)m(e)n(ys)p 0.5 TeXcolorgray 1005 3161 V 0 TeXcolorgray 59 w Fx(Optional)f(array)g(of)h (k)o(e)o(yw)o(ords)f(to)h(be)h(read)e(from)g(the)p 0 0 1 TeXcolorrgb 2623 3133 a SDict begin H.S end 2623 3133 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2802 3077 a SDict begin H.R end 2802 3077 a 2802 3132 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2802 3132 a 0 TeXcolorgray 0.5 TeXcolorgray 3400 3161 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3165 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3165 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3364 4 200 v 0 TeXcolorgray 733 3234 a Ft(ver)o(sion)p 0.5 TeXcolorgray 1005 3364 V 0 TeXcolorgray 60 w Fx(Optional)31 b(v)o(ersion)f(number)-5 b(.)58 b(If)32 b(not)f(supplied)f(the)i(\002rst)p 0 0 1 TeXcolorrgb 2800 3235 a SDict begin H.S end 2800 3235 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2979 3180 a SDict begin H.R end 2979 3180 a 2979 3234 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2979 3234 a 0 TeXcolorgray 33 w Fx(with)f(name)1037 3334 y Ft(hduName)19 b Fx(is)i(read)f(see)g(abo)o(v)o(e)f(for)g(other)h (parameter)f(de\002nitions)p 0.5 TeXcolorgray 3400 3364 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3367 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3367 V 0 TeXcolorgray 0 TeXcolorgray 515 3597 a SDict begin H.S end 515 3597 a 0 TeXcolorgray 0 TeXcolorgray 515 3597 a SDict begin H.R end 515 3597 a 515 3597 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a1d7fca4f600df79fce819b86f8727368) cvn H.B /DEST pdfmark end 515 3597 a 0 TeXcolorgray 515 3635 a SDict begin H.S end 515 3635 a 515 3635 a SDict begin 12 H.A end 515 3635 a 515 3635 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.3) cvn H.B /DEST pdfmark end 515 3635 a 0.25 TeXcolorgray 146 x Fo(24.14.2.3)75 b(CC\002ts::FITS::FITS)22 b(\()35 b(const)18 b(String)h(&)e Fk(name)q(,)36 b Fo(RWmode)19 b Fk(mode)q(,)36 b Fo(const)18 b(std::vector)p Fu(<)i Fo(String)845 3881 y Fu(>)e Fo(&)h Fk(hduNames,)41 b Fo(bool)20 b Fk(readDataFla)o(g)h(=)e Fr(false)p Fk(,)37 b Fo(const)20 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)845 3981 y Fk(primar)q(yK)o(e)o(y)g(=)e Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))30 b Fo(\))p 0 TeXcolorgray 515 4165 a Fx(This)25 b(is)h(intended)e(as)i (a)g(con)m(v)o(enience)c(where)j(the)g(\002le)h(consists)f(of)g(single) h(v)o(ersions)e(of)h(HDUs)515 4265 y(and)19 b(data)h(only)-5 b(,)19 b(not)h(k)o(e)o(ys)g(are)g(to)g(be)g(read.)515 4411 y(If)f(e)o(xtended)f(\002le)i(name)e(syntax)h(is)i(used)e(and)g (selects)h(an)f(e)o(xtension)f(not)i(listed)g(in)f(hduNames,)f(a)p 0 0 1 TeXcolorrgb 515 4529 a SDict begin H.S end 515 4529 a 0 0 1 TeXcolorrgb -18 x Fx(FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 1529 4455 a SDict begin H.R end 1529 4455 a 1529 4511 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 1529 4511 a 0 TeXcolorgray 21 w Fx(e)o(xception)g(will)j(be)g(thro)n(wn.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4721 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4664 a SDict begin H.S end 515 4664 a 515 4664 a SDict begin 12 H.A end 515 4664 a 515 4664 a SDict begin [ /View [/XYZ H.V] /Dest (table.52) cvn H.B /DEST pdfmark end 515 4664 a 0.5 TeXcolorgray 515 4767 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4767 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4866 4 100 v 0 TeXcolorgray 626 4836 a Ft(hduNames)p 0.5 TeXcolorgray 1005 4866 V 0 TeXcolorgray 59 w Fx(array)e(of)p 0 0 1 TeXcolorrgb 1318 4837 a SDict begin H.S end 1318 4837 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1498 4782 a SDict begin H.R end 1498 4782 a 1498 4836 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1498 4836 a 0 TeXcolorgray 21 w Fx(names)h(to)g(be)g (read.)p 0.5 TeXcolorgray 3400 4866 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4870 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4870 V 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 91 96 TeXDict begin 91 95 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.91) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(91)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(see)21 b(abo)o(v)o(e)d(for)i(other)f (parameter)g(de\002nitions.)p 0 TeXcolorgray 1917 523 a SDict begin H.S end 1917 523 a 0 TeXcolorgray 0 TeXcolorgray 1917 523 a SDict begin H.R end 1917 523 a 1917 523 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_acb344d192a9cce91ef4fa70d983af305) cvn H.B /DEST pdfmark end 1917 523 a 0 TeXcolorgray 515 578 a SDict begin H.S end 515 578 a 515 578 a SDict begin 12 H.A end 515 578 a 515 578 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.4) cvn H.B /DEST pdfmark end 515 578 a 0.25 TeXcolorgray 129 x Fo(24.14.2.4)75 b(CC\002ts::FITS::FITS)22 b(\()34 b(const)18 b(String)g(&)g Fk(\002leName)q(,)35 b Fo(const)18 b Fy(FITS)g Fo(&)f Fk(sour)o(ce)35 b Fo(\))p 0 TeXcolorgray 515 891 a Fx(create)27 b(a)g(ne)n(w)p 0 0 1 TeXcolorrgb 969 892 a SDict begin H.S end 969 892 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1139 835 a SDict begin H.R end 1139 835 a 1139 891 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1139 891 a 0 TeXcolorgray 28 w Fx(object)g(and)f (corresponding)e(\002le)j(with)h(cop)o(y)e(of)g(the)i(primary)d(header) h(of)515 991 y(the)20 b(source)g(If)h(the)f(\002lename)g(corresponds)f (to)h(an)h(e)o(xisting)f(\002le)h(and)f(does)g(not)h(start)g(with)f (the)h('!')515 1091 y(character)e(the)h(construction)e(will)j(f)o(ail)g (with)f(a)p 0 0 1 TeXcolorrgb 1900 1092 a SDict begin H.S end 1900 1092 a 0 0 1 TeXcolorrgb -1 x Fx(CantCreate)p 0 0 1 TeXcolorrgb 2273 1034 a SDict begin H.R end 2273 1034 a 2273 1091 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /ANN pdfmark end 2273 1091 a 0 TeXcolorgray 21 w Fx(e)o(xception.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1301 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1243 a SDict begin H.S end 515 1243 a 515 1243 a SDict begin 12 H.A end 515 1243 a 515 1243 a SDict begin [ /View [/XYZ H.V] /Dest (table.53) cvn H.B /DEST pdfmark end 515 1243 a 0.5 TeXcolorgray 515 1346 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1346 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1446 4 100 v 0 TeXcolorgray 681 1416 a Ft(\002leName)p 0.5 TeXcolorgray 1005 1446 V 0 TeXcolorgray 60 w Fx(Ne)n(w)g(\002le)h (to)g(be)f(created.)p 0.5 TeXcolorgray 3400 1446 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1449 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1449 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1549 4 100 v 0 TeXcolorgray 758 1519 a Ft(sour)m(ce)p 0.5 TeXcolorgray 1005 1549 V 0 TeXcolorgray 60 w Fx(A)h(pre)n(viously)d (created)p 0 0 1 TeXcolorrgb 1747 1520 a SDict begin H.S end 1747 1520 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1918 1463 a SDict begin H.R end 1918 1463 a 1918 1519 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1918 1519 a 0 TeXcolorgray 21 w Fx(object)h(to)i(be)f(copied.)p 0.5 TeXcolorgray 3400 1549 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1552 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1552 V 0 TeXcolorgray 515 1782 a(see)h(abo)o(v)o(e)d(for)i(other)f (parameter)g(de\002nitions.)p 0 TeXcolorgray 1917 1782 a SDict begin H.S end 1917 1782 a 0 TeXcolorgray 0 TeXcolorgray 1917 1782 a SDict begin H.R end 1917 1782 a 1917 1782 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_ab83f4abde51f181d69016a1aa971a290) cvn H.B /DEST pdfmark end 1917 1782 a 0 TeXcolorgray 515 1837 a SDict begin H.S end 515 1837 a 515 1837 a SDict begin 12 H.A end 515 1837 a 515 1837 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.5) cvn H.B /DEST pdfmark end 515 1837 a 0.25 TeXcolorgray 129 x Fo(24.14.2.5)75 b(CC\002ts::FITS::FITS)23 b(\()38 b(const)21 b(String)e(&)g Fk(name)q(,)40 b Fo(RWmode)20 b Fk(mode)q(,)40 b Fo(const)20 b(std::vector)p Fu(<)845 2066 y Fo(String)f Fu(>)f Fo(&)h Fk(hduNames,)39 b Fo(const)20 b(std::vector)p Fu(<)g Fo(std::vector)p Fu(<)h Fo(String)e Fu(>)f(>)g Fo(&)g Fk(hduK)o(e)o(ys,)845 2166 y Fo(bool)j Fk(readDataFla)o(g)g(=)e Fr(false)p Fk(,)39 b Fo(const)21 b(std::vector)p Fu(<)h Fo(String)e Fu(>)f Fo(&)g Fk(primar)q(yK)o(e)o(ys)h(=)845 2265 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)33 b Fo(const)20 b(std::vector)p Fu(<)g Fo(int)g Fu(>)e Fo(&)g Fk(hduV)l(er)o(sions)j(=)845 2365 y Fr(std::vector)p Fu(<)p Fr(int)p Fu(>)p Fr(\(\))30 b Fo(\))p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2550 a SDict begin H.S end 515 2550 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 685 2493 a SDict begin H.R end 685 2493 a 685 2549 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 685 2549 a 0 TeXcolorgray 21 w Fx(read)20 b(constructor)e(in)i(full)h(generality)-5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2759 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2702 a SDict begin H.S end 515 2702 a 515 2702 a SDict begin 12 H.A end 515 2702 a 515 2702 a SDict begin [ /View [/XYZ H.V] /Dest (table.54) cvn H.B /DEST pdfmark end 515 2702 a 0.5 TeXcolorgray 515 2805 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2805 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2904 4 100 v 0 TeXcolorgray 571 2874 a Ft(hduV)c(er)o(sions)p 0.5 TeXcolorgray 1005 2904 V 0 TeXcolorgray 59 w Fx(an)20 b(optional)f(v)o(ersion)g(number)f(for)i(each)p 0 0 1 TeXcolorrgb 2258 2875 a SDict begin H.S end 2258 2875 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2437 2820 a SDict begin H.R end 2437 2820 a 2437 2874 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2437 2874 a 0 TeXcolorgray 21 w Fx(to)h(be)f(read)p 0.5 TeXcolorgray 3400 2904 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2908 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2908 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3107 4 200 v 0 TeXcolorgray 696 2977 a Ft(hduK)m(e)n(ys)p 0.5 TeXcolorgray 1005 3107 V 0 TeXcolorgray 59 w Fx(an)28 b(array)f(of)h(k)o(e)o(yw)o(ords)e(for)h(each)p 0 0 1 TeXcolorrgb 2095 2978 a SDict begin H.S end 2095 2978 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2275 2923 a SDict begin H.R end 2275 2923 a 2275 2977 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2275 2977 a 0 TeXcolorgray 28 w Fx(to)i(be)f(read.)47 b(see)29 b(abo)o(v)o(e)d(for)i(other)1037 3077 y(parameter)19 b(de\002nitions.)p 0.5 TeXcolorgray 3400 3107 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3110 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3110 V 0 TeXcolorgray 0 TeXcolorgray 515 3335 a SDict begin H.S end 515 3335 a 0 TeXcolorgray 0 TeXcolorgray 515 3335 a SDict begin H.R end 515 3335 a 515 3335 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_aa3dd737a0211193e99d09459b1b09564) cvn H.B /DEST pdfmark end 515 3335 a 0 TeXcolorgray 515 3372 a SDict begin H.S end 515 3372 a 515 3372 a SDict begin 12 H.A end 515 3372 a 515 3372 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.6) cvn H.B /DEST pdfmark end 515 3372 a 0.25 TeXcolorgray 147 x Fo(24.14.2.6)75 b(CC\002ts::FITS::FITS)22 b(\()34 b(const)18 b(String)g(&)g Fk(name)q(,)35 b Fo(int)18 b Fk(bitpix,)35 b Fo(int)18 b Fk(naxis,)35 b Fo(long)18 b Fp(\003)f Fk(nax)o(es)35 b Fo(\))p 0 TeXcolorgray 515 3703 a Fx(Constructor)19 b(for)g(creating)g(ne)n(w)p 0 0 1 TeXcolorrgb 1490 3704 a SDict begin H.S end 1490 3704 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1661 3647 a SDict begin H.R end 1661 3647 a 1661 3703 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1661 3703 a 0 TeXcolorgray 21 w Fx(objects)h(containing)e(images.)515 3850 y(This)f(constructor)e(is)j(only)e(called)h(for)f(creating)g(ne)n (w)h(\002les)g(\(mode)f(is)i(not)f(an)f(ar)o(gument\))f(and)h(cre-)515 3950 y(ates)h(a)g(ne)n(w)g(primary)p 0 0 1 TeXcolorrgb 1149 3951 a SDict begin H.S end 1149 3951 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1329 3896 a SDict begin H.R end 1329 3896 a 1329 3950 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1329 3950 a 0 TeXcolorgray 17 w Fx(with)g(the)g(datatype)e(&)i(ax)o(es) g(speci\002ed)f(by)h(bitpix,)f(naxis,)h(and)f(nax)o(es.)515 4050 y(The)f(data)g(are)g(added)f(to)h(the)g(ne)n(w)g(\002ts)i(object)d (and)h(\002le)h(by)f(subsequent)f(calls)h(to)p 0 0 1 TeXcolorrgb 2820 4067 a SDict begin H.S end 2820 4067 a 0 0 1 TeXcolorrgb -17 x Fx(FITS::pHDU\(\))p 0 0 1 TeXcolorrgb 3313 3993 a SDict begin H.R end 3313 3993 a 3313 4050 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a69714491156b3f1452f37f9277505925) cvn H.B /ANN pdfmark end 3313 4050 a 0 TeXcolorgray Fx(.write\()515 4149 y Fu(<)p Fx(ar)o(guments)p Fu(>)i Fx(\))515 4296 y(A)27 b(\002le)h(with)f(a)g(compressed)e(image)i(may)f (be)h(creating)f(by)g(appending)e(to)j(the)g(end)f(of)h(the)g(\002le) 515 4396 y(name)d(the)i(same)f("[compress)f(...])o(")i(syntax)e (speci\002ed)h(in)h(the)f(c\002tsio)h(manual.)39 b(Note)26 b(ho)n(we)n(v)o(er)515 4495 y(that)18 b(the)h(compressed)e(image)h (will)i(be)e(placed)g(in)h(the)f(\002rst)i(e)o(xtension)d(and)h(NOT)h (in)g(the)f(primary)p 0 0 1 TeXcolorrgb 515 4596 a SDict begin H.S end 515 4596 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 695 4541 a SDict begin H.R end 695 4541 a 695 4595 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 695 4595 a 0 TeXcolorgray Fx(.)515 4742 y(If)k(the)g(\002lename)g(corresponds)e(to)j(an)f(e)o (xisting)f(\002le)i(and)f(does)g(not)g(start)h(with)f(the)h('!')31 b(character)515 4841 y(the)20 b(construction)e(will)j(f)o(ail)g(with)f (a)p 0 0 1 TeXcolorrgb 1575 4842 a SDict begin H.S end 1575 4842 a 0 0 1 TeXcolorrgb -1 x Fx(CantCreate)p 0 0 1 TeXcolorrgb 1948 4785 a SDict begin H.R end 1948 4785 a 1948 4841 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /ANN pdfmark end 1948 4841 a 0 TeXcolorgray 21 w Fx(e)o(xception.)515 4988 y(The)g(ar)o(guments)e(are:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 92 97 TeXDict begin 92 96 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.92) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(92)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.55) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 796 609 a Ft(name)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 60 w Fx(The)20 b(\002le)h(to)f(be)g(written)g(to)g(disk)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1240 4 598 v 0 TeXcolorgray 787 712 a Ft(bitpix)p 0.5 TeXcolorgray 1005 1240 V 0 TeXcolorgray 60 w Fx(the)h(datatype)g(of)g(the)h(primary)d(image.)29 b Ft(bitpix)21 b Fx(may)g(be)h(one)f(of)g(the)g(follo)n(wing)1037 811 y(CFITSIO)g(constants:)27 b(BYTE_IMG,)20 b(SHORT_IMG,)g(LONG_IMG,)g (FLO-)1037 911 y(AT_IMG,)15 b(DOUBLE_IMG,)g(USHORT_IMG,)h(ULONG_IMG.)f (Note)h(that)1037 1011 y(if)h(you)e(send)h(in)h(a)g Ft(bitpix)f Fx(of)g(USHORT_IMG)g(or)h(ULONG_IMG,)p 0 0 1 TeXcolorrgb 3013 1012 a SDict begin H.S end 3013 1012 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 3225 954 a SDict begin H.R end 3225 954 a 3225 1011 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3225 1011 a 0 TeXcolorgray 17 w Fx(will)1037 1110 y(set)p 0 0 1 TeXcolorrgb 1150 1128 a SDict begin H.S end 1150 1128 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::bitpix\(\))p 0 0 1 TeXcolorrgb 1625 1054 a SDict begin H.R end 1625 1054 a 1625 1110 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 1625 1110 a 0 TeXcolorgray 21 w Fx(to)j(its)h(signed)f(equi)n(v)n(alent)e(\(SHORT_IMG)i(or)g (LONG_I-)1037 1210 y(MG\),)g(and)f(then)h(set)h(BZERO)g(to)f(2)2077 1180 y Fd(^)2122 1210 y Fx(15)g(or)g(2)2358 1180 y Fd(^)2402 1210 y Fx(31.)p 0.5 TeXcolorgray 3400 1240 4 598 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1243 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1243 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1343 4 100 v 0 TeXcolorgray 801 1313 a Ft(naxis)p 0.5 TeXcolorgray 1005 1343 V 0 TeXcolorgray 60 w Fx(the)g(data)g (dimension)f(of)h(the)g(primary)f(image)p 0.5 TeXcolorgray 3400 1343 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1346 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1346 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1745 4 399 v 0 TeXcolorgray 787 1416 a Ft(naxes)p 0.5 TeXcolorgray 1005 1745 V 0 TeXcolorgray 60 w Fx(the)26 b(array)g(of)g(axis)h(lengths)f(for)f(the)i (primary)e(image.)43 b(Ignored)24 b(if)j(naxis)f(=0,)1037 1515 y(i.e.)f(the)19 b(primary)f(header)h(is)h(empty)-5 b(.)23 b(e)o(xtensions)c(can)g(be)g(added)g(arbitrarily)f(to)1037 1615 y(the)26 b(\002le)g(after)g(this)g(constructor)e(is)j(called.)41 b(The)26 b(constructors)e(should)h(write)1037 1715 y(header)19 b(information)f(to)i(disk:)p 0.5 TeXcolorgray 3400 1745 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1748 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1748 V 0 TeXcolorgray 0 TeXcolorgray 515 1978 a SDict begin H.S end 515 1978 a 0 TeXcolorgray 0 TeXcolorgray 515 1978 a SDict begin H.R end 515 1978 a 515 1978 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a691405118727baad47e504c16998e404) cvn H.B /DEST pdfmark end 515 1978 a 0 TeXcolorgray 515 2015 a SDict begin H.S end 515 2015 a 515 2015 a SDict begin 12 H.A end 515 2015 a 515 2015 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.7) cvn H.B /DEST pdfmark end 515 2015 a 0.25 TeXcolorgray 147 x Fo(24.14.2.7)75 b(CC\002ts::FITS::FITS)25 b(\()41 b(const)21 b(string)h(&)e Fk(name)q(,)43 b Fo(RWmode)22 b Fk(mode)q(,)43 b Fo(int)21 b Fk(hduInde)o(x,)845 2262 y Fo(bool)h Fk(readDataFla)o(g)g (=)e Fr(false)p Fk(,)41 b Fo(const)22 b(std::vector)p Fu(<)g Fo(String)f Fu(>)f Fo(&)h Fk(hduK)o(e)o(ys)g(=)845 2361 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)32 b Fo(const)19 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)h Fk(primar)q(yK)o(e)o(y)h(=)845 2461 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))30 b Fo(\))p 0 TeXcolorgray 515 2645 a Fx(read)19 b(a)i(single)f(numbered)p 0 0 1 TeXcolorrgb 1308 2646 a SDict begin H.S end 1308 2646 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1488 2591 a SDict begin H.R end 1488 2591 a 1488 2645 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1488 2645 a 0 TeXcolorgray Fx(.)515 2792 y(Constructor)h(analogous)g(to)i(the)g(v)o(ersion)e(that)i(reads)f(by)h (name.)32 b(This)23 b(is)g(required)e(since)p 0 0 1 TeXcolorrgb 3199 2793 a SDict begin H.S end 3199 2793 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 3379 2738 a SDict begin H.R end 3379 2738 a 3379 2792 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3379 2792 a 0 TeXcolorgray 515 2892 a Fx(e)o(xtensions)26 b(are)i(not)f(required)f(to)i(ha)n(v)o(e)f(the)h(EXTNAME)f(or)h (HDUNAME)f(k)o(e)o(yw)o(ord)f(by)i(the)515 2991 y(standard.)23 b(If)18 b(there)g(is)h(no)f(name,)g(a)h(dummy)e(name)g(based)h(on)g (the)p 0 0 1 TeXcolorrgb 2455 2992 a SDict begin H.S end 2455 2992 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2635 2937 a SDict begin H.R end 2635 2937 a 2635 2991 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2635 2991 a 0 TeXcolorgray 19 w Fx(number)e(is)j(created)f(and)515 3091 y(becomes)h(the)h(k)o(e)o (y)-5 b(.)515 3238 y(If)26 b(e)o(xtended)f(\002le)i(name)f(syntax)f(is) j(used)e(and)g(selects)h(an)g(e)o(xtension)e(other)g(than)h(hduInde)o (x,)f(a)p 0 0 1 TeXcolorrgb 515 3355 a SDict begin H.S end 515 3355 a 0 0 1 TeXcolorrgb -18 x Fx(FITS::OperationNotSupported)p 0 0 1 TeXcolorrgb 1529 3281 a SDict begin H.R end 1529 3281 a 1529 3337 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /ANN pdfmark end 1529 3337 a 0 TeXcolorgray 21 w Fx(e)o(xception)18 b(will)j(be)g(thro)n(wn.) p 0 TeXcolorgray 0.25 TeXcolorgray 506 3547 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3490 a SDict begin H.S end 515 3490 a 515 3490 a SDict begin 12 H.A end 515 3490 a 515 3490 a SDict begin [ /View [/XYZ H.V] /Dest (table.56) cvn H.B /DEST pdfmark end 515 3490 a 0.5 TeXcolorgray 515 3593 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3593 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3792 4 200 v 0 TeXcolorgray 669 3663 a Ft(hduInde)n(x)p 0.5 TeXcolorgray 1005 3792 V 0 TeXcolorgray 58 w Fx(The)h(inde)o(x)g(of)g(the)p 0 0 1 TeXcolorrgb 1613 3664 a SDict begin H.S end 1613 3664 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1793 3609 a SDict begin H.R end 1793 3609 a 1793 3663 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1793 3663 a 0 TeXcolorgray 23 w Fx(to)h(be)f(read.)32 b(see)23 b(abo)o(v)o(e)e(for)h(other)g(parameter)f(de\002-)1037 3762 y(nitions.)p 0.5 TeXcolorgray 3400 3792 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3796 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3796 V 0 TeXcolorgray 0 TeXcolorgray 515 3993 a SDict begin H.S end 515 3993 a 0 TeXcolorgray 0 TeXcolorgray 515 3993 a SDict begin H.R end 515 3993 a 515 3993 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a59493b5e36616b7904ddede84df78430) cvn H.B /DEST pdfmark end 515 3993 a 0 TeXcolorgray 515 4030 a SDict begin H.S end 515 4030 a 515 4030 a SDict begin 12 H.A end 515 4030 a 515 4030 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.2.8) cvn H.B /DEST pdfmark end 515 4030 a 0.25 TeXcolorgray 147 x Fo(24.14.2.8)75 b(CC\002ts::FITS::FITS)23 b(\()38 b(const)21 b(String)e(&)g Fk(name)q(,)40 b Fo(RWmode)20 b Fk(mode)q(,)40 b Fo(const)20 b(std::vector)p Fu(<)845 4277 y Fo(String)i Fu(>)e Fo(&)h Fk(sear)o(c)o(hK)o(e)o(ys,)45 b Fo(const)22 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)h Fk(sear)o(c)o(hV)l(alues,)845 4376 y Fo(bool)h Fk(readDataFla)o(g)g(=)e Fr(false)p Fk(,)41 b Fo(const)22 b(std::vector)p Fu(<)g Fo(String)f Fu(>)f Fo(&)h Fk(hduK)o(e)o(ys)g(=)845 4476 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)32 b Fo(const)19 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)h Fk(primar)q(yK)o(e)o (y)h(=)845 4576 y Fr(std::vector)p Fu(<)p Fr(string)p Fu(>)p Fr(\(\))p Fk(,)30 b Fo(int)17 b Fk(ver)o(sion)h(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 4760 a Fx(open)15 b(\002ts)i(\002le)g(and)f(read)p 0 0 1 TeXcolorrgb 1231 4761 a SDict begin H.S end 1231 4761 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1410 4706 a SDict begin H.R end 1410 4706 a 1410 4760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1410 4760 a 0 TeXcolorgray 17 w Fx(which)g(contains)f(supplied)h(k)o(e)o(yw) o(ords)e(with)j([)o(optional])e(speci\002ed)515 4859 y(v)n(alues)20 b(\(sometimes)f(one)h(just)g(w)o(ants)h(to)f(kno)n(w)g (that)g(the)g(k)o(e)o(yw)o(ord)e(is)k(present\).)515 5006 y(Optional)h(parameters)g(allo)n(ws)h(the)h(reading)d(of)i (speci\002ed)g(primary)p 0 0 1 TeXcolorrgb 2560 5007 a SDict begin H.S end 2560 5007 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2740 4952 a SDict begin H.R end 2740 4952 a 2740 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2740 5006 a 0 TeXcolorgray 24 w Fx(k)o(e)o(ys)g(and)g(speci\002ed)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 93 98 TeXDict begin 93 97 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.93) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(93)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(columns)19 b(and)g(k)o(e)o(yw)o(ords)g(in)h (the)p 0 0 1 TeXcolorrgb 1506 524 a SDict begin H.S end 1506 524 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1686 469 a SDict begin H.R end 1686 469 a 1686 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1686 523 a 0 TeXcolorgray 20 w Fx(of)g(interest.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 733 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 676 a SDict begin H.S end 515 676 a 515 676 a SDict begin 12 H.A end 515 676 a 515 676 a SDict begin [ /View [/XYZ H.V] /Dest (table.57) cvn H.B /DEST pdfmark end 515 676 a 0.5 TeXcolorgray 515 779 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 779 V 0 TeXcolorgray 0.5 TeXcolorgray 515 878 4 100 v 0 TeXcolorgray 796 848 a Ft(name)p 0.5 TeXcolorgray 1005 878 V 0 TeXcolorgray 60 w Fx(The)g(name)f(of)h(the)p 0 0 1 TeXcolorrgb 1599 849 a SDict begin H.S end 1599 849 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1770 792 a SDict begin H.R end 1770 792 a 1770 848 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1770 848 a 0 TeXcolorgray 21 w Fx(\002le)h(to)f(be)g(read) p 0.5 TeXcolorgray 3400 878 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 882 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 882 V 0 TeXcolorgray 0.5 TeXcolorgray 515 981 4 100 v 0 TeXcolorgray 796 951 a Ft(mode)p 0.5 TeXcolorgray 1005 981 V 0 TeXcolorgray 60 w Fx(The)g(read/write)f(mode:)24 b(must)d(be)f(Read)g(or)g(Write)p 0.5 TeXcolorgray 3400 981 V 0 TeXcolorgray 0.5 TeXcolorgray 515 985 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 985 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1084 4 100 v 0 TeXcolorgray 603 1054 a Ft(sear)m(c)o(hK)m(e)n(ys)p 0.5 TeXcolorgray 1005 1084 V 0 TeXcolorgray 60 w Fx(A)h(string)e(v)o(ector)g(of)h(k)o(e)o(yw) o(ords)f(to)h(search)g(for)g(in)g(each)g(header)p 0.5 TeXcolorgray 3400 1084 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1087 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1087 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1486 4 399 v 0 TeXcolorgray 732 1157 a Ft(sear)m(c)o(h-)760 1257 y(V)-9 b(alues)p 0.5 TeXcolorgray 1005 1486 V 0 TeXcolorgray 1037 1157 a Fx(A)23 b(string)e(v)o(ector)g(of)h(v)n(alues)g(those)g(k)o (e)o(yw)o(ords)f(are)h(required)e(to)j(ha)n(v)o(e)e(for)h(suc-)1037 1257 y(cess.)60 b(Note)31 b(that)h(the)f(k)o(e)o(ys)g(must)h(be)f(of)h (type)f(string.)58 b(If)32 b(an)o(y)e(v)n(alue)h(does)1037 1356 y(not)21 b(need)g(to)h(be)g(check)o(ed)f(the)g(corresponding)e (searchV)-9 b(alue)20 b(element)h(can)h(be)1037 1456 y(empty)-5 b(.)p 0.5 TeXcolorgray 3400 1486 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1489 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1489 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1689 4 200 v 0 TeXcolorgray 634 1559 a Ft(r)m(eadData-)820 1659 y(Fla)o(g)p 0.5 TeXcolorgray 1005 1689 V 0 TeXcolorgray 1037 1559 a Fx(boolean:)24 b(if)c(true,)g(read)f(data)h(if)p 0 0 1 TeXcolorrgb 1985 1560 a SDict begin H.S end 1985 1560 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2165 1505 a SDict begin H.R end 2165 1505 a 2165 1559 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2165 1559 a 0 TeXcolorgray 20 w Fx(is)i(found)p 0.5 TeXcolorgray 3400 1689 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1692 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1692 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1891 4 200 v 0 TeXcolorgray 696 1762 a Ft(hduK)m(e)n(ys)p 0.5 TeXcolorgray 1005 1891 V 0 TeXcolorgray 59 w Fx(Allo)n(ws)e(optional)f (reading)g(of)h(k)o(e)o(ys)g(in)g(the)p 0 0 1 TeXcolorrgb 2327 1763 a SDict begin H.S end 2327 1763 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2506 1708 a SDict begin H.R end 2506 1708 a 2506 1762 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2506 1762 a 0 TeXcolorgray 21 w Fx(that)g(is)i(searched)d(for)g(if)i (it)g(is)1037 1861 y(successfully)e(found)p 0.5 TeXcolorgray 3400 1891 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1894 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1894 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1994 4 100 v 0 TeXcolorgray 585 1964 a Ft(primaryK)m(e)n(y)p 0.5 TeXcolorgray 1005 1994 V 0 TeXcolorgray 60 w Fx(Allo)n(ws)h(optional)f(reading)g(of) h(primary)f(header)g(k)o(e)o(ys)g(on)h(construction)p 0.5 TeXcolorgray 3400 1994 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1997 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1997 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2097 4 100 v 0 TeXcolorgray 733 2067 a Ft(ver)o(sion)p 0.5 TeXcolorgray 1005 2097 V 0 TeXcolorgray 60 w Fx(Optional)c(v)o(ersion)g(number)-5 b(.)23 b(If)17 b(speci\002ed,)g(checks)g(the)g(EXTVERS)h(k)o(e)o(yw)o (ord.)p 0.5 TeXcolorgray 3400 2097 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2100 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2100 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 2376 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2334 a SDict begin H.S end 515 2334 a 515 2334 a SDict begin 12 H.A end 515 2334 a 515 2334 a SDict begin [ /View [/XYZ H.V] /Dest (table.58) cvn H.B /DEST pdfmark end 515 2334 a 0.5 TeXcolorgray 515 2437 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2437 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2636 4 200 v 0 TeXcolorgray 1 TeXcolorgray 518 2636 774 200 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 952 2508 a SDict begin H.S end 952 2508 a 0 0 1 TeXcolorrgb -1 x Ft(F)l(itsErr)l(or)p 0 0 1 TeXcolorrgb 1263 2453 a SDict begin H.R end 1263 2453 a 1263 2507 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1263 2507 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 2636 4 200 v 0 TeXcolorgray 1 TeXcolorgray 1294 2636 2263 200 v 0 TeXcolorgray 60 w Fx(thro)n(wn)g(on)h(non-zero)e (status)j(code)f(from)f(c\002tsio)i(when)f(not)g(o)o(v)o(erriden)e(by)p 0 0 1 TeXcolorrgb 1323 2624 a SDict begin H.S end 1323 2624 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1785 2550 a SDict begin H.R end 1785 2550 a 1785 2606 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1785 2606 a 0 TeXcolorgray 20 w Fx(error)i(to)i(produce)d(more)h(illuminating)g(message.)p 0.5 TeXcolorgray 3557 2636 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2640 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2640 V 0 TeXcolorgray 515 2761 a SDict begin H.S end 515 2761 a 515 2761 a SDict begin 12 H.A end 515 2761 a 515 2761 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.14.3) cvn H.B /DEST pdfmark end 515 2761 a 0.25 TeXcolorgray 147 x Fo(24.14.3)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3111 a SDict begin H.S end 515 3111 a 0 TeXcolorgray 0 TeXcolorgray 515 3111 a SDict begin H.R end 515 3111 a 515 3111 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_afe53063dd05cf44654a311e5d17d4da8) cvn H.B /DEST pdfmark end 515 3111 a 0 TeXcolorgray 515 3148 a SDict begin H.S end 515 3148 a 515 3148 a SDict begin 12 H.A end 515 3148 a 515 3148 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.1) cvn H.B /DEST pdfmark end 515 3148 a 0.25 TeXcolorgray 147 x Fo(24.14.3.1)75 b(v)n(oid)18 b(CC\002ts::FITS::ad)o(dIma)o(g)r(e) k(\()34 b(const)18 b(String)g(&)f Fk(hduName)q(,)35 b Fo(int)18 b Fk(bpix,)35 b Fo(std::vector)p Fu(<)18 b Fo(long)g Fu(>)845 3395 y Fo(&)f Fk(nax)o(es,)35 b Fo(int)18 b Fk(ver)o(sion)g(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 3579 a Fx(Add)19 b(an)i(image)e(e)o(xtension)g(to)h(an)g(e)o (xisting)p 0 0 1 TeXcolorrgb 1806 3580 a SDict begin H.S end 1806 3580 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1977 3523 a SDict begin H.R end 1977 3523 a 1977 3579 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1977 3579 a 0 TeXcolorgray 20 w Fx(object.)25 b(\(File)20 b(with)h(w)f(or)g(rw)h(access\).)515 3726 y(Does)c(not)f(mak)o(e)h(primary)e(images,)i(which)g(are)g(b)n (uilt)g(in)g(the)g(constructor)e(for)h(the)p 0 0 1 TeXcolorrgb 2910 3727 a SDict begin H.S end 2910 3727 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3081 3669 a SDict begin H.R end 3081 3669 a 3081 3726 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3081 3726 a 0 TeXcolorgray 17 w Fx(\002le.)25 b(The)515 3825 y(image)g(data)g(is)h(not)g(added)e(here:)35 b(it)26 b(can)f(be)h(added)e(by)h(a)h(call)g(to)g(one)e(of)i(the)p 0 0 1 TeXcolorrgb 2867 3826 a SDict begin H.S end 2867 3826 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU::write)p 0 0 1 TeXcolorrgb 3379 3769 a SDict begin H.R end 3379 3769 a 3379 3825 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ab4219c7154e57612ee5969e6f9d1cf89) cvn H.B /ANN pdfmark end 3379 3825 a 0 TeXcolorgray 515 3925 a Fx(functions.)515 4072 y Ft(bpix)33 b Fx(may)g(be)h(one)f(of)g (the)g(follo)n(wing)f(CFITSIO)i(constants:)52 b(BYTE_IMG,)32 b(SHORT_IM-)515 4171 y(G,)d(LONG_IMG,)g(FLOAT_IMG,)f(DOUBLE_IMG,)g (USHORT_IMG,)h(ULONG_IMG.)f(-)515 4271 y(Note)f(that)g(if)g(you)f(send) h(in)g(a)g Ft(bpix)g Fx(of)f(USHORT_IMG)h(or)g(ULONG_IMG,)p 0 0 1 TeXcolorrgb 2890 4272 a SDict begin H.S end 2890 4272 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 3103 4215 a SDict begin H.R end 3103 4215 a 3103 4271 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 3103 4271 a 0 TeXcolorgray 27 w Fx(will)h(set)p 0 0 1 TeXcolorrgb 515 4389 a SDict begin H.S end 515 4389 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::bitpix\(\))p 0 0 1 TeXcolorrgb 990 4314 a SDict begin H.R end 990 4314 a 990 4371 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 990 4371 a 0 TeXcolorgray 28 w Fx(to)f(its)h(signed)f(equi)n(v)n(alent)f(\(SHORT_IMG)g(or)h (LONG_IMG\),)f(and)h(then)g(set)515 4470 y(BZERO)21 b(to)f(2)935 4440 y Fd(^)980 4470 y Fx(15)f(or)h(2)1215 4440 y Fd(^)1260 4470 y Fx(31.)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4701 a SDict begin H.S end 515 4701 a 0 0 1 TeXcolorrgb -1 x Fy(T)-8 b(odo)p 0 0 1 TeXcolorrgb 692 4643 a SDict begin H.R end 692 4643 a 692 4700 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (todo__todo000003) cvn H.B /ANN pdfmark end 692 4700 a 0 TeXcolorgray 0 TeXcolorgray 41 w Fx(Add)20 b(a)h(function)d (for)i(replacing)e(the)i(primary)f(image)p 0 TeXcolorgray 515 4930 a SDict begin H.S end 515 4930 a 0 TeXcolorgray 0 TeXcolorgray 515 4930 a SDict begin H.R end 515 4930 a 515 4930 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a867732f42c7863550baf28795efc6876) cvn H.B /DEST pdfmark end 515 4930 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 325 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 94 99 TeXDict begin 94 98 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.94) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(94)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.2) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.14.3.2)75 b Fy(T)-8 b(able)20 b Fp(\003)f Fo(CC\002ts::FITS::ad)o(dT)-5 b(able)25 b(\()40 b(const)20 b(String)h(&)f Fk(hduName)q(,)42 b Fo(int)20 b Fk(r)o(o)o(ws,)40 b Fo(const)845 623 y(std::vector)p Fu(<)20 b Fo(String)e Fu(>)f Fo(&)h Fk(columnName)i(=)d Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)31 b Fo(const)845 722 y(std::vector)p Fu(<)20 b Fo(String)f Fu(>)e Fo(&)h Fk(columnFmt)k(=)17 b Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)32 b Fo(const)845 822 y(std::vector)p Fu(<)19 b Fo(String)f Fu(>)f Fo(&)g Fk(columnUnit)j(=)d Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)30 b Fo(HduT)l(ype)845 922 y Fk(type)18 b(=)f Fr(BinaryTbl)p Fk(,)32 b Fo(int)18 b Fk(ver)o(sion)g(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 1106 a Fx(Add)19 b(a)h(table)f(e)o(xtension)f(to)i(an)f(e)o(xisting)p 0 0 1 TeXcolorrgb 1718 1107 a SDict begin H.S end 1718 1107 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1889 1049 a SDict begin H.R end 1889 1049 a 1889 1106 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1889 1106 a 0 TeXcolorgray 20 w Fx(object.)24 b(Add)19 b(e)o(xtension)f(to)p 0 0 1 TeXcolorrgb 2742 1107 a SDict begin H.S end 2742 1107 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2913 1049 a SDict begin H.R end 2913 1049 a 2913 1106 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2913 1106 a 0 TeXcolorgray 20 w Fx(object)h(for)g(\002le)515 1205 y(with)h(w)h(or)f(rw)g(access.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1398 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1341 a SDict begin H.S end 515 1341 a 515 1341 a SDict begin 12 H.A end 515 1341 a 515 1341 a SDict begin [ /View [/XYZ H.V] /Dest (table.59) cvn H.B /DEST pdfmark end 515 1341 a 0.5 TeXcolorgray 515 1444 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1444 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1544 4 100 v 0 TeXcolorgray 819 1514 a Ft(r)l(ows)p 0.5 TeXcolorgray 1005 1544 V 0 TeXcolorgray 61 w Fx(The)g(number)e(of)i(ro)n(ws)g(in)g (the)h(table)f(to)g(be)g(created.)p 0.5 TeXcolorgray 3400 1544 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1547 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1547 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1746 4 200 v 0 TeXcolorgray 704 1617 a Ft(column-)783 1716 y(Name)p 0.5 TeXcolorgray 1005 1746 V 0 TeXcolorgray 1037 1617 a Fx(A)h(v)o(ector)e(containing)f (the)i(table)g(column)f(names)p 0.5 TeXcolorgray 3400 1746 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1749 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1749 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1849 4 100 v 0 TeXcolorgray 598 1819 a Ft(columnFmt)p 0.5 TeXcolorgray 1005 1849 V 0 TeXcolorgray 59 w Fx(A)i(v)o(ector)e(containing)f(the)i(table)g(column) f(formats)p 0.5 TeXcolorgray 3400 1849 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1852 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1852 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1952 4 100 v 0 TeXcolorgray 584 1922 a Ft(columnUnit)p 0.5 TeXcolorgray 1005 1952 V 0 TeXcolorgray 59 w Fx(\(Optional\))g(a)h (v)o(ector)f(gi)n(ving)g(the)h(units)g(of)g(the)h(columns.)p 0.5 TeXcolorgray 3400 1952 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1955 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1955 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2354 4 399 v 0 TeXcolorgray 838 2025 a Ft(type)p 0.5 TeXcolorgray 1005 2354 V 0 TeXcolorgray 60 w Fx(The)d(table)h(type)g(-)g(AsciiTbl)g (or)f(BinaryTbl)g(\(def)o(aults)g(to)h(BinaryTbl\))f(the)g(lists)1037 2125 y(of)k(columns)g(are)h(optional)e(-)j(one)e(can)g(create)h(an)g (empty)f(table)g(e)o(xtension)g(b)n(ut)1037 2224 y(if)c(supplied,)e (colT)-7 b(ype,)17 b(columnName)e(and)i(colFmt)g(must)h(ha)n(v)o(e)e (equal)h(dimen-)1037 2324 y(sions.)p 0.5 TeXcolorgray 3400 2354 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2357 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2357 V 0 TeXcolorgray 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2588 a SDict begin H.S end 515 2588 a 0 0 1 TeXcolorrgb -1 x Fy(T)-8 b(odo)p 0 0 1 TeXcolorrgb 692 2530 a SDict begin H.R end 692 2530 a 692 2587 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (todo__todo000002) cvn H.B /ANN pdfmark end 692 2587 a 0 TeXcolorgray 0 TeXcolorgray 41 w Fx(the)19 b(code)g(should)f(one)h (day)f(check)h(that)g(the)g(v)o(ersion)f(k)o(e)o(yw)o(ord)f(is)j (higher)e(than)h(an)o(y)f(other)733 2687 y(v)o(ersions)26 b(already)h(added)f(to)h(the)p 0 0 1 TeXcolorrgb 1756 2688 a SDict begin H.S end 1756 2688 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1927 2630 a SDict begin H.R end 1927 2630 a 1927 2687 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1927 2687 a 0 TeXcolorgray 28 w Fx(object)f(\(although)f(c\002tsio)j(doesn') o(t)e(do)h(this)g(ei-)733 2786 y(ther\).)p 0 TeXcolorgray 515 3016 a SDict begin H.S end 515 3016 a 0 TeXcolorgray 0 TeXcolorgray 515 3016 a SDict begin H.R end 515 3016 a 515 3016 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a80ed085f917280e58c6bddf95de93c3c) cvn H.B /DEST pdfmark end 515 3016 a 0 TeXcolorgray 515 3054 a SDict begin H.S end 515 3054 a 515 3054 a SDict begin 12 H.A end 515 3054 a 515 3054 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.3) cvn H.B /DEST pdfmark end 515 3054 a 0.25 TeXcolorgray 146 x Fo(24.14.3.3)75 b(v)n(oid)18 b(CC\002ts::FITS::cop)o(y)k(\()35 b(const)18 b Fy(HDU)f Fo(&)g Fk(sour)o(ce)34 b Fo(\))p 0 TeXcolorgray 515 3385 a Fx(cop)o(y)19 b(the)p 0 0 1 TeXcolorrgb 818 3386 a SDict begin H.S end 818 3386 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 998 3331 a SDict begin H.R end 998 3331 a 998 3385 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 998 3385 a 0 TeXcolorgray 21 w Fx(source)g(into)h(the)p 0 0 1 TeXcolorrgb 1528 3386 a SDict begin H.S end 1528 3386 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1699 3328 a SDict begin H.R end 1699 3328 a 1699 3385 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1699 3385 a 0 TeXcolorgray 21 w Fx(object.)515 3531 y(This)i(function)e(adds)i(a)g(cop)o(y)f(of)h(an)p 0 0 1 TeXcolorrgb 1594 3532 a SDict begin H.S end 1594 3532 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1774 3477 a SDict begin H.R end 1774 3477 a 1774 3531 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1774 3531 a 0 TeXcolorgray 22 w Fx(from)f(another)f (\002le)j(into)f Fp(\003)p Fx(this.)30 b(It)22 b(does)g(not)f(create)h (a)515 3631 y(duplicate)d(of)h(an)p 0 0 1 TeXcolorrgb 1029 3632 a SDict begin H.S end 1029 3632 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1209 3577 a SDict begin H.R end 1209 3577 a 1209 3631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1209 3631 a 0 TeXcolorgray 20 w Fx(in)h(the)f(\002le)h(associated)f (with)g Fp(\003)p Fx(this.)p 0 TeXcolorgray 2302 3631 a SDict begin H.S end 2302 3631 a 0 TeXcolorgray 0 TeXcolorgray 2302 3631 a SDict begin H.R end 2302 3631 a 2302 3631 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_afc795a249942094157a54fedb6325eb0) cvn H.B /DEST pdfmark end 2302 3631 a 0 TeXcolorgray 515 3686 a SDict begin H.S end 515 3686 a 515 3686 a SDict begin 12 H.A end 515 3686 a 515 3686 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.4) cvn H.B /DEST pdfmark end 515 3686 a 0.25 TeXcolorgray 129 x Fo(24.14.3.4)75 b(const)18 b(String)g(&)g(CC\002ts::FITS::currentExtensionN)q(ame)23 b(\()69 b(\))17 b(const)p 0 TeXcolorgray 515 4000 a Fx(return)i(the)h (name)g(of)f(the)i(e)o(xtension)d(that)j(the)f(\002ts\002le)h(is)g (currently)e(addressing.)515 4146 y(If)28 b(the)g(e)o(xtension)f(in)i (question)e(does)h(not)g(ha)n(v)o(e)g(an)g(EXTNAME)g(or)g(HDUNAME)g(k)o (e)o(yw)o(ord,)515 4246 y(then)21 b(the)g(function)f(returns)g($HDU$n,) g(where)h(n)h(is)g(the)f(sequential)p 0 0 1 TeXcolorrgb 2549 4247 a SDict begin H.S end 2549 4247 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2729 4192 a SDict begin H.R end 2729 4192 a 2729 4246 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2729 4246 a 0 TeXcolorgray 22 w Fx(inde)o(x)f(number)f(\(pri-)515 4346 y(mary)p 0 0 1 TeXcolorrgb 706 4347 a SDict begin H.S end 706 4347 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 886 4292 a SDict begin H.R end 886 4292 a 886 4346 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 886 4346 a 0 TeXcolorgray 21 w Fx(=)h(0\).)p 0 TeXcolorgray 1090 4346 a SDict begin H.S end 1090 4346 a 0 TeXcolorgray 0 TeXcolorgray 1090 4346 a SDict begin H.R end 1090 4346 a 1090 4346 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_aac73f0a1f2742c0f1ea5eeb5bc0f8df5) cvn H.B /DEST pdfmark end 1090 4346 a 0 TeXcolorgray 515 4401 a SDict begin H.S end 515 4401 a 515 4401 a SDict begin 12 H.A end 515 4401 a 515 4401 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.5) cvn H.B /DEST pdfmark end 515 4401 a 0.25 TeXcolorgray 129 x Fo(24.14.3.5)75 b(v)n(oid)18 b (CC\002ts::FITS::deleteExtension)24 b(\()34 b(const)19 b(String)f(&)f Fk(doomed,)36 b Fo(int)18 b Fk(ver)o(sion)g(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 4714 a Fx(Delete)20 b(e)o(xtension)f(speci\002ed)h(by)g(name)f(and)h(v)o(ersion)f(number)-5 b(.)515 4861 y(Remo)o(v)o(es)28 b(e)o(xtension)g(from)p 0 0 1 TeXcolorrgb 1389 4862 a SDict begin H.S end 1389 4862 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1560 4805 a SDict begin H.R end 1560 4805 a 1560 4861 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1560 4861 a 0 TeXcolorgray 30 w Fx(object)h(and)g(memory) e(cop)o(y)-5 b(.)52 b(The)29 b(inde)o(x)f(numbers)g(of)h(all)p 0 0 1 TeXcolorrgb 515 4962 a SDict begin H.S end 515 4962 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 695 4907 a SDict begin H.R end 695 4907 a 695 4961 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 695 4961 a 0 TeXcolorgray 20 w Fx(objects)20 b(which)g(follo)n(w)f(this)i(in)f(the)h(\002le)g(will)f(be)h (decremented)c(by)j(1.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 95 100 TeXDict begin 95 99 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.95) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(95)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.60) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 713 609 a Ft(doomed)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 59 w Fx(the)20 b(name)g(of)g(the)g(e)o(xtension)f(to)h(be)g(deleted)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 4 100 v 0 TeXcolorgray 733 712 a Ft(ver)o(sion)p 0.5 TeXcolorgray 1005 742 V 0 TeXcolorgray 60 w Fx(an)g(optional)f(v)o(ersion)g(number)m (,)f(the)i(EXTVER)g(k)o(e)o(yw)o(ord,)e(def)o(aults)i(to)g(1)p 0.5 TeXcolorgray 3400 742 V 0 TeXcolorgray 0.5 TeXcolorgray 515 745 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 1021 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 979 a SDict begin H.S end 515 979 a 515 979 a SDict begin 12 H.A end 515 979 a 515 979 a SDict begin [ /View [/XYZ H.V] /Dest (table.61) cvn H.B /DEST pdfmark end 515 979 a 0.5 TeXcolorgray 515 1082 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1082 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1181 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 1181 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 826 1152 a SDict begin H.S end 826 1152 a 0 0 1 TeXcolorrgb -1 x Ft(NoSuc)o(hHDU)p 0 0 1 TeXcolorrgb 1263 1095 a SDict begin H.R end 1263 1095 a 1263 1151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /ANN pdfmark end 1263 1151 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 1181 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 1181 2263 100 v 0 TeXcolorgray 60 w Fx(Thro)n(wn)f(if)h(there)g (is)h(no)f(e)o(xtension)f(with)h(the)g(speci\002ed)g(v)o(ersion)f (number)p 0.5 TeXcolorgray 3557 1181 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1185 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1185 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1483 4 299 v 0 TeXcolorgray 0.97255 0.97255 0.97255 TeXcolorrgb 518 1483 774 299 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 952 1255 a SDict begin H.S end 952 1255 a 0 0 1 TeXcolorrgb -1 x Ft(F)l(itsErr)l(or)p 0 0 1 TeXcolorrgb 1263 1201 a SDict begin H.R end 1263 1201 a 1263 1254 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1263 1254 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 1483 4 299 v 0 TeXcolorgray 0.97255 0.97255 0.97255 TeXcolorrgb 1294 1483 2263 299 v 0 TeXcolorgray 60 w Fx(Thro)n(wn)25 b(if)h(there)g(is)h(a)f(non-zero)e(status)j(code)e(from)g(c\002tsio,)j (e.g.)42 b(if)26 b(the)1323 1354 y(delete)e(operation)d(is)j(applied)f (to)g(a)p 0 0 1 TeXcolorrgb 2380 1355 a SDict begin H.S end 2380 1355 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2551 1298 a SDict begin H.R end 2551 1298 a 2551 1354 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2551 1354 a 0 TeXcolorgray 24 w Fx(\002le)h(opened)d(for)i(read)g(only)f(ac-)1323 1454 y(cess.)p 0.5 TeXcolorgray 3557 1483 4 299 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1487 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1487 V 0 TeXcolorgray 0 TeXcolorgray 515 1717 a SDict begin H.S end 515 1717 a 0 TeXcolorgray 0 TeXcolorgray 515 1717 a SDict begin H.R end 515 1717 a 515 1717 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_ad865b86fabd85a36b6e3ec782a3fad83) cvn H.B /DEST pdfmark end 515 1717 a 0 TeXcolorgray 515 1754 a SDict begin H.S end 515 1754 a 515 1754 a SDict begin 12 H.A end 515 1754 a 515 1754 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.6) cvn H.B /DEST pdfmark end 515 1754 a 0.25 TeXcolorgray 147 x Fo(24.14.3.6)75 b(v)n(oid)18 b(CC\002ts::FITS::deleteExtension)24 b(\()34 b(int)18 b Fk(doomed)37 b Fo(\))p 0 TeXcolorgray 515 2085 a Fx(Delete)20 b(e)o(xtension)f(speci\002ed)h(by)g(e)o(xtension)e (number)-5 b(.)515 2232 y(The)16 b(inde)o(x)f(numbers)g(of)i(all)p 0 0 1 TeXcolorrgb 1351 2233 a SDict begin H.S end 1351 2233 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1531 2178 a SDict begin H.R end 1531 2178 a 1531 2232 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1531 2232 a 0 TeXcolorgray 17 w Fx(objects)f(which)g (follo)n(w)g(this)h(in)g(the)g(\002le)g(will)g(be)g(decremented)515 2332 y(by)j(1.)p 0 TeXcolorgray 707 2332 a SDict begin H.S end 707 2332 a 0 TeXcolorgray 0 TeXcolorgray 707 2332 a SDict begin H.R end 707 2332 a 707 2332 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_afbc014a0dd8bfcc9d883e550f971f669) cvn H.B /DEST pdfmark end 707 2332 a 0 TeXcolorgray 515 2387 a SDict begin H.S end 515 2387 a 515 2387 a SDict begin 12 H.A end 515 2387 a 515 2387 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.7) cvn H.B /DEST pdfmark end 515 2387 a 0.25 TeXcolorgray 129 x Fo(24.14.3.7)75 b(v)n(oid)18 b(CC\002ts::FITS::destr)o(o)o(y)k (\()69 b(\))17 b(thr)o(o)o(w)h(\(\))p 0 TeXcolorgray 515 2700 a Fx(Erase)p 0 0 1 TeXcolorrgb 720 2701 a SDict begin H.S end 720 2701 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 891 2644 a SDict begin H.R end 891 2644 a 891 2700 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 891 2700 a 0 TeXcolorgray 20 w Fx(object)i(and)g(close)g(corresponding)d(\002le.)515 2847 y(F)o(orce)22 b(deallocation)f(and)i(erase)f(of)h(elements)g(of)f (a)p 0 0 1 TeXcolorrgb 2056 2848 a SDict begin H.S end 2056 2848 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2227 2791 a SDict begin H.R end 2227 2791 a 2227 2847 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2227 2847 a 0 TeXcolorgray 24 w Fx(memory)f(object.)32 b(Allo)n(ws)23 b(a)h(reset)f(of)515 2947 y(e)n(v)o(erything)e(inside)i(the)p 0 0 1 TeXcolorrgb 1239 2948 a SDict begin H.S end 1239 2948 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1409 2890 a SDict begin H.R end 1409 2890 a 1409 2947 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1409 2947 a 0 TeXcolorgray 25 w Fx(object,)g(and)g(closes)h(the)g (\002le.)36 b(The)23 b(object)g(is)i(inaccessible)e(after)515 3046 y(this)d(call.)515 3193 y(destro)o(y)k(is)i(public)f(to)g(allo)n (w)g(users)h(to)f(reuse)g(a)h(symbol)e(for)h(a)g(ne)n(w)g(\002le,)i(b)n (ut)f(it)f(is)i(identical)d(in)515 3293 y(operation)18 b(to)i(the)h(destructor)-5 b(.)p 0 TeXcolorgray 1431 3293 a SDict begin H.S end 1431 3293 a 0 TeXcolorgray 0 TeXcolorgray 1431 3293 a SDict begin H.R end 1431 3293 a 1431 3293 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a5e4b2efb2d9c75db28fe264cb8576280) cvn H.B /DEST pdfmark end 1431 3293 a 0 TeXcolorgray 515 3348 a SDict begin H.S end 515 3348 a 515 3348 a SDict begin 12 H.A end 515 3348 a 515 3348 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.8) cvn H.B /DEST pdfmark end 515 3348 a 0.25 TeXcolorgray 129 x Fo(24.14.3.8)75 b(const)18 b(std::m)o(ultimap)p Fu(<)j Fo(std::String,)f Fy(ExtHDU)c Fp(\003)g Fu(>)h Fo(&)g(CC\002ts::FITS::e)o(xtension)23 b(\()69 b(\))17 b(const)p 0 TeXcolorgray 515 3661 a Fx(return)i(const)h (reference)e(to)j(the)f(e)o(xtension)f(container)515 3808 y(This)h(is)h(useful)f(for)f(such)h(operations)f(as)p 0 0 1 TeXcolorrgb 1730 3823 a SDict begin H.S end 1730 3823 a 0 0 1 TeXcolorrgb -15 x Fx(e)o(xtension\(\))p 0 0 1 TeXcolorrgb 2102 3752 a SDict begin H.R end 2102 3752 a 2102 3808 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a17d7f2a579835881a3b74c765ac612e1) cvn H.B /ANN pdfmark end 2102 3808 a 0 TeXcolorgray Fx(.size\(\))h(etc.)p 0 TeXcolorgray 2471 3808 a SDict begin H.S end 2471 3808 a 0 TeXcolorgray 0 TeXcolorgray 2471 3808 a SDict begin H.R end 2471 3808 a 2471 3808 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_add1f740bb5706da76773951cbb1f5f89) cvn H.B /DEST pdfmark end 2471 3808 a 0 TeXcolorgray 515 3863 a SDict begin H.S end 515 3863 a 515 3863 a SDict begin 12 H.A end 515 3863 a 515 3863 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.9) cvn H.B /DEST pdfmark end 515 3863 a 0.25 TeXcolorgray 129 x Fo(24.14.3.9)75 b Fy(T)-8 b(able)18 b Fo(&)h(CC\002ts::FITS::\002lter)k(\()36 b(const)20 b(String)f(&)f Fk(e)o(xpression,)39 b Fy(ExtHDU)17 b Fo(&)h Fk(inputT)-6 b(ab)o(le)q(,)845 4092 y Fo(bool)18 b Fk(o)o(verwrite)f(=)g Fr(true)p Fk(,)34 b Fo(bool)18 b Fk(readData)g(=)f Fr(false)33 b Fo(\))p 0 TeXcolorgray 515 4276 a Fx(Filter)23 b(the)f(ro)n(ws)g(of)g(the)h(inputT)-7 b(able)21 b(with)h(the)h(condition)d(e)o(xpression,)h(and)h(return)f(a) i(reference)515 4376 y(to)d(the)g(resulting)p 0 0 1 TeXcolorrgb 1034 4377 a SDict begin H.S end 1034 4377 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1216 4319 a SDict begin H.R end 1216 4319 a 1216 4376 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1216 4376 a 0 TeXcolorgray Fx(.)515 4523 y(This)20 b(function)e(pro)o(vides)g(an)h(object)h(oriented)e(v)o(ersion)g(of)i (c\002tsio')-5 b(s)20 b(\002ts_select_ro)n(ws)g(call.)25 b(The)515 4622 y(e)o(xpression)20 b(string)h(is)h(an)o(y)f(boolean)e(e) o(xpression)h(in)m(v)n(olving)g(the)h(names)g(of)g(the)h(columns)e(in)i (the)515 4722 y(input)h(table)h(\(e.g.,)g(if)g(there)g(were)g(a)g (column)f(called)h("density",)g(a)g(v)n(alid)g(e)o(xpression)e(might)i (be)515 4822 y("DENSITY)19 b Fu(>)i Fx(3.5":)j(see)d(the)f(c\002tsio)h (documentation)c(for)j(further)e(details\).)515 4968 y([)o(N.B.)33 b(the)g("append")e(functionality)f(described)i(belo)n(w)g (does)g(not)g(w)o(ork)g(when)g(link)o(ed)g(with)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 96 101 TeXDict begin 96 100 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.96) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(96)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(c\002tsio)26 b(2.202)f(or)g(prior)g(because)h (of)f(a)i(kno)n(wn)d(issue)j(with)f(that)g(v)o(ersion)f(of)h(the)g (library)-5 b(.)40 b(This)515 623 y(causes)19 b(the)f(output)g(to)g(be) h(a)g(ne)n(w)f(e)o(xtension)f(with)i(a)g(correct)f(header)f(cop)o(y)h (and)g(v)o(ersion)f(number)515 722 y(b)n(ut)31 b(without)f(the)h (\002ltered)g(data])n(.)58 b(If)31 b(the)g(inputT)-7 b(able)30 b(is)h(an)g(Extension)p 0 0 1 TeXcolorrgb 2745 723 a SDict begin H.S end 2745 723 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2925 668 a SDict begin H.R end 2925 668 a 2925 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2925 722 a 0 TeXcolorgray 31 w Fx(of)g(this)p 0 0 1 TeXcolorrgb 3208 723 a SDict begin H.S end 3208 723 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 666 a SDict begin H.R end 3379 666 a 3379 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 722 a 0 TeXcolorgray 515 822 a Fx(object,)f(then)e(if)h(o)o(v)o (erwrite)e(is)j(true)e(the)h(operation)e(will)i(o)o(v)o(erwrite)e(the)i (inputT)-7 b(able)28 b(with)h(the)515 922 y(\002ltered)d(v)o(ersion,)h (otherwise)g(it)g(will)h(append)d(a)i(ne)n(w)p 0 0 1 TeXcolorrgb 2146 923 a SDict begin H.S end 2146 923 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2326 867 a SDict begin H.R end 2326 867 a 2326 922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2326 922 a 0 TeXcolorgray 27 w Fx(with)g(the)g(same)g(e)o (xtension)e(name)515 1021 y(b)n(ut)20 b(the)g(ne)o(xt)g(highest)f(v)o (ersion)g(\(EXTVER\))h(number)e(a)n(v)n(ailable.)p 0 TeXcolorgray 2469 1021 a SDict begin H.S end 2469 1021 a 0 TeXcolorgray 0 TeXcolorgray 2469 1021 a SDict begin H.R end 2469 1021 a 2469 1021 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a2df185878082d2dabe76f3f25600311b) cvn H.B /DEST pdfmark end 2469 1021 a 0 TeXcolorgray 515 1077 a SDict begin H.S end 515 1077 a 515 1077 a SDict begin 12 H.A end 515 1077 a 515 1077 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.10) cvn H.B /DEST pdfmark end 515 1077 a 0.25 TeXcolorgray 128 x Fo(24.14.3.10)75 b(v)n(oid)18 b(CC\002ts::FITS::\003ush)k(\()69 b(\))p 0 TeXcolorgray 515 1390 a Fx(\003ush)20 b(b)n(uf)n(fer)f (contents)g(to)i(disk)515 1536 y(Pro)o(vides)k(manual)g(control)f(of)i (disk)g(writing)f(operation.)41 b(Image)25 b(data)g(are)h(\003ushed)g (automati-)515 1636 y(cally)20 b(to)g(disk)g(after)g(the)g(write)h (operation)d(is)j(completed,)e(b)n(ut)h(not)g(column)f(data.)p 0 TeXcolorgray 2932 1636 a SDict begin H.S end 2932 1636 a 0 TeXcolorgray 0 TeXcolorgray 2932 1636 a SDict begin H.R end 2932 1636 a 2932 1636 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a879b8f7cb81cfbc781e8a7b6c6982ca9) cvn H.B /DEST pdfmark end 2932 1636 a 0 TeXcolorgray 515 1691 a SDict begin H.S end 515 1691 a 515 1691 a SDict begin 12 H.A end 515 1691 a 515 1691 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.11) cvn H.B /DEST pdfmark end 515 1691 a 0.25 TeXcolorgray 129 x Fo(24.14.3.11)75 b(v)n(oid)18 b(CC\002ts::FITS::g)q (etTileDimensio)q(ns)23 b(\()35 b(std::vector)p Fu(<)19 b Fo(long)f Fu(>)f Fo(&)g Fk(tileSiz)q(es)34 b Fo(\))18 b(const)p 0 TeXcolorgray 515 2005 a Fx(Get)i(the)h(current)d(settings)j (of)f(dimension)f(sizes)i(for)e(tiles)i(used)f(in)h(image)e (compression.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2215 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2157 a SDict begin H.S end 515 2157 a 515 2157 a SDict begin 12 H.A end 515 2157 a 515 2157 a SDict begin [ /View [/XYZ H.V] /Dest (table.62) cvn H.B /DEST pdfmark end 515 2157 a 0.5 TeXcolorgray 515 2260 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2260 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2459 4 200 v 0 TeXcolorgray 704 2330 a Ft(tileSizes)p 0.5 TeXcolorgray 1005 2459 V 0 TeXcolorgray 61 w Fx(A)39 b(v)o(ector)d(to)j(be)f(\002lled)g(with)g(c\002tsio')-5 b(s)40 b(current)c(tile)j(dimension)e(settings.)p 0 0 1 TeXcolorrgb 1037 2431 a SDict begin H.S end 1037 2431 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1249 2373 a SDict begin H.R end 1249 2373 a 1249 2430 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1249 2430 a 0 TeXcolorgray 21 w Fx(will)21 b(resize)f(this)h(v)o(ector)e(to)h(contain)f(the)i(proper)d(number)g (of)i(v)n(alues.)p 0.5 TeXcolorgray 3400 2459 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2463 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2463 V 0 TeXcolorgray 0 TeXcolorgray 515 2693 a SDict begin H.S end 515 2693 a 0 TeXcolorgray 0 TeXcolorgray 515 2693 a SDict begin H.R end 515 2693 a 515 2693 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) cvn H.B /DEST pdfmark end 515 2693 a 0 TeXcolorgray 515 2730 a SDict begin H.S end 515 2730 a 515 2730 a SDict begin 12 H.A end 515 2730 a 515 2730 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.12) cvn H.B /DEST pdfmark end 515 2730 a 0.25 TeXcolorgray 147 x Fo(24.14.3.12)75 b(v)n(oid)19 b(CC\002ts::FITS::read)j(\()37 b(const)19 b(String)g(&)g Fk(hduName)q(,)38 b Fo(bool)19 b Fk(readDataFla)o(g)i(=) d Fr(false)p Fk(,)879 2977 y Fo(const)i(std::vector)p Fu(<)g Fo(String)g Fu(>)e Fo(&)h Fk(ke)o(ys)f(=)g Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)34 b Fo(int)879 3076 y Fk(ver)o(sion)18 b(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 3260 a Fx(get)20 b(data)g(from)f(single)p 0 0 1 TeXcolorrgb 1197 3261 a SDict begin H.S end 1197 3261 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1377 3206 a SDict begin H.R end 1377 3206 a 1377 3260 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1377 3260 a 0 TeXcolorgray 21 w Fx(from)g(disk)h(\002le.)515 3407 y(This)i(is)h(pro)o(vided)d(to)i(allo)n(w)g(the)g(adding)f(of)h (additional)e(HDUs)j(to)g(the)p 0 0 1 TeXcolorrgb 2638 3408 a SDict begin H.S end 2638 3408 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2808 3351 a SDict begin H.R end 2808 3351 a 2808 3407 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2808 3407 a 0 TeXcolorgray 23 w Fx(object)f(after)f(con-)515 3507 y(struction)h(of)h(the)p 0 0 1 TeXcolorrgb 1048 3508 a SDict begin H.S end 1048 3508 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1219 3451 a SDict begin H.R end 1219 3451 a 1219 3507 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1219 3507 a 0 TeXcolorgray 24 w Fx(object.)34 b(After)23 b(the)p 0 0 1 TeXcolorrgb 1826 3522 a SDict begin H.S end 1826 3522 a 0 0 1 TeXcolorrgb -15 x Fx(read\(\))p 0 0 1 TeXcolorrgb 2024 3451 a SDict begin H.R end 2024 3451 a 2024 3507 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) cvn H.B /ANN pdfmark end 2024 3507 a 0 TeXcolorgray 24 w Fx(functions)f(ha)n (v)o(e)h(been)g(called)g(for)g(the)p 0 0 1 TeXcolorrgb 3208 3508 a SDict begin H.S end 3208 3508 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 3451 a SDict begin H.R end 3379 3451 a 3379 3507 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 3507 a 0 TeXcolorgray 515 3607 a Fx(object,)e(subsequent)g(read)g (method)g(to)h(the)g(Primary)-5 b(,)p 0 0 1 TeXcolorrgb 2106 3608 a SDict begin H.S end 2106 3608 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 2401 3552 a SDict begin H.R end 2401 3552 a 2401 3607 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 2401 3607 a 0 TeXcolorgray Fx(,)23 b(and)p 0 0 1 TeXcolorrgb 2587 3608 a SDict begin H.S end 2587 3608 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2855 3550 a SDict begin H.R end 2855 3550 a 2855 3607 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2855 3607 a 0 TeXcolorgray 23 w Fx(objects)e(will)i(re-)515 3706 y(trie)n(v)o(e)e(data)h(from)f(the)p 0 0 1 TeXcolorrgb 1192 3707 a SDict begin H.S end 1192 3707 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1363 3650 a SDict begin H.R end 1363 3650 a 1363 3706 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1363 3706 a 0 TeXcolorgray 23 w Fx(object)g(in)i(memory)d(\(those)i (methods)f(can)h(be)g(called)g(to)g(read)g(data)515 3806 y(in)e(those)p 0 0 1 TeXcolorrgb 796 3807 a SDict begin H.S end 796 3807 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 976 3752 a SDict begin H.R end 976 3752 a 976 3806 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 976 3806 a 0 TeXcolorgray 21 w Fx(objects)g(that)g(w)o(as)h(not)f(read)f(when)h(the)p 0 0 1 TeXcolorrgb 2160 3807 a SDict begin H.S end 2160 3807 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2340 3752 a SDict begin H.R end 2340 3752 a 2340 3806 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2340 3806 a 0 TeXcolorgray 21 w Fx(objects)g(were)g (constructed.)515 3953 y(All)29 b(the)f(read)g(functions)f(will)i(thro) n(w)p 0 0 1 TeXcolorrgb 1668 3954 a SDict begin H.S end 1668 3954 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchHDU)p 0 0 1 TeXcolorrgb 2115 3896 a SDict begin H.R end 2115 3896 a 2115 3953 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /ANN pdfmark end 2115 3953 a 0 TeXcolorgray 29 w Fx(e)o(xceptions)e(on)h(seek)g(errors)g(since)g(the)o(y)515 4052 y(in)m(v)n(olv)o(e)18 b(constructing)p 0 0 1 TeXcolorrgb 1210 4053 a SDict begin H.S end 1210 4053 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1389 3998 a SDict begin H.R end 1389 3998 a 1389 4052 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1389 4052 a 0 TeXcolorgray 21 w Fx(objects.)515 4199 y(The)i(parameter)e(de\002nitions)i(are)g(as)h(documented)c(for)j(the)g (corresponding)d(constructor)-5 b(.)p 0 TeXcolorgray 3178 4199 a SDict begin H.S end 3178 4199 a 0 TeXcolorgray 0 TeXcolorgray 3178 4199 a SDict begin H.R end 3178 4199 a 3178 4199 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_ac592041903c94b09cee8cdc29e185b0a) cvn H.B /DEST pdfmark end 3178 4199 a 0 TeXcolorgray 515 4254 a SDict begin H.S end 515 4254 a 515 4254 a SDict begin 12 H.A end 515 4254 a 515 4254 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.13) cvn H.B /DEST pdfmark end 515 4254 a 0.25 TeXcolorgray 129 x Fo(24.14.3.13)75 b(v)n(oid)21 b(CC\002ts::FITS::read)j(\()40 b(const)21 b(std::vector)p Fu(<)h Fo(String)f Fu(>)e Fo(&)h Fk(hduNames,)44 b Fo(bool)879 4483 y Fk(readDataFla)o(g)20 b(=)c Fr(false)33 b Fo(\))p 0 TeXcolorgray 515 4667 a Fx(get)20 b(data)g(from)f(a)i(set)g (of)f(HDUs)h(from)e(disk)h(\002le.)515 4814 y(This)g(is)h(pro)o(vided)d (to)j(allo)n(w)f(reading)f(of)h(HDUs)h(after)f(construction.)j(see)e (abo)o(v)o(e)d(for)i(parameter)515 4914 y(de\002nitions.)p 0 TeXcolorgray 912 4914 a SDict begin H.S end 912 4914 a 0 TeXcolorgray 0 TeXcolorgray 912 4914 a SDict begin H.R end 912 4914 a 912 4914 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a6e3ebb1d61fd6374c0f1033ba0777112) cvn H.B /DEST pdfmark end 912 4914 a 0 TeXcolorgray 515 4952 a SDict begin H.S end 515 4952 a 515 4952 a SDict begin 12 H.A end 515 4952 a 515 4952 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.14) cvn H.B /DEST pdfmark end 515 4952 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 303 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 97 102 TeXDict begin 97 101 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.97) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.14)81 b(CC\002ts::FITS)20 b(Class)h(Refer)o(ence)1460 b(97)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.14.3.14)75 b(v)n(oid)21 b(CC\002ts::FITS::read)i(\()40 b(const)21 b(std::vector)p Fu(<)h Fo(String)e Fu(>)f Fo(&)h Fk(hduNames,)42 b Fo(const)879 623 y(std::vector)p Fu(<)19 b Fo(std::vector)p Fu(<)h Fo(String)e Fu(>)f(>)g Fo(&)g Fk(ke)o(ys,)35 b Fo(bool)19 b Fk(readDataFla)o(g)g(=)e Fr(false)p Fk(,)34 b Fo(const)879 722 y(std::vector)p Fu(<)19 b Fo(int)f Fu(>)f Fo(&)g Fk(hduV)l(er)o(sions)i(=)e Fr(std::vector)p Fu(<)p Fr(int)p Fu(>)p Fr(\(\))30 b Fo(\))p 0 TeXcolorgray 515 907 a Fx(get)20 b(data)g(from)f(a)i(set)g(of)f(HDUs)h(from)e(disk)h(\002le,)g (specifying)f(k)o(e)o(ys)h(and)g(v)o(ersion)f(numbers.)515 1053 y(This)h(is)h(pro)o(vided)d(to)j(allo)n(w)f(reading)f(of)h(HDUs)h (after)f(construction.)j(see)e(abo)o(v)o(e)d(for)i(parameter)515 1153 y(de\002nitions.)p 0 TeXcolorgray 912 1153 a SDict begin H.S end 912 1153 a 0 TeXcolorgray 0 TeXcolorgray 912 1153 a SDict begin H.R end 912 1153 a 912 1153 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_adafc3aecf2d2398109d2c42f6025f2e5) cvn H.B /DEST pdfmark end 912 1153 a 0 TeXcolorgray 515 1191 a SDict begin H.S end 515 1191 a 515 1191 a SDict begin 12 H.A end 515 1191 a 515 1191 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.15) cvn H.B /DEST pdfmark end 515 1191 a 0.25 TeXcolorgray 146 x Fo(24.14.3.15)75 b(v)n(oid)20 b (CC\002ts::FITS::read)k(\()39 b(int)20 b Fk(hduInde)o(x,)42 b Fo(bool)20 b Fk(readDataFla)o(g)i(=)d Fr(false)p Fk(,)38 b Fo(const)879 1437 y(std::vector)p Fu(<)19 b Fo(String)f Fu(>)f Fo(&)g Fk(ke)o(ys)g(=)g Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))30 b Fo(\))p 0 TeXcolorgray 515 1621 a Fx(read)19 b(an)p 0 0 1 TeXcolorrgb 777 1622 a SDict begin H.S end 777 1622 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 957 1567 a SDict begin H.R end 957 1567 a 957 1621 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 957 1621 a 0 TeXcolorgray 21 w Fx(speci\002ed)h(by)g(inde)o(x)f(number)-5 b(.)515 1768 y(This)20 b(is)h(pro)o(vided)d(to)j(allo)n(w)f(reading)f(of)h (HDUs)h(after)f(construction.)j(see)e(abo)o(v)o(e)d(for)i(parameter)515 1868 y(de\002nitions.)p 0 TeXcolorgray 912 1868 a SDict begin H.S end 912 1868 a 0 TeXcolorgray 0 TeXcolorgray 912 1868 a SDict begin H.R end 912 1868 a 912 1868 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a6237260607e157ec5f521522f137f09c) cvn H.B /DEST pdfmark end 912 1868 a 0 TeXcolorgray 515 1906 a SDict begin H.S end 515 1906 a 515 1906 a SDict begin 12 H.A end 515 1906 a 515 1906 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.16) cvn H.B /DEST pdfmark end 515 1906 a 0.25 TeXcolorgray 146 x Fo(24.14.3.16)75 b(CC\002ts::FITS::read)22 b(\()35 b(const)18 b(std::vector)p Fu(<)i Fo(String)e Fu(>)f Fo(&)g Fk(sear)o(c)o(hK)o(e)o(ys,)36 b Fo(const)19 b(std::vector)p Fu(<)879 2151 y Fo(String)g Fu(>)e Fo(&)g Fk(sear)o(c)o(hV)l(alues,)36 b Fo(bool)19 b Fk(readDataFla)o(g)h(=)d Fr(false)p Fk(,)35 b Fo(const)19 b(std::vector)p Fu(<)g Fo(String)879 2251 y Fu(>)e Fo(&)g Fk(hduK)o(e)o(ys)h(=)f Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)30 b Fo(int)18 b Fk(ver)o(sion)g(=)e Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 2435 a Fx(read)19 b(method)g(for)h(read)f(header)g (or)p 0 0 1 TeXcolorrgb 1561 2436 a SDict begin H.S end 1561 2436 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1741 2381 a SDict begin H.R end 1741 2381 a 1741 2435 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1741 2435 a 0 TeXcolorgray 21 w Fx(that)h(contains)g(speci\002ed)g(k)o(e)o(yw)o(ords.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2645 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2588 a SDict begin H.S end 515 2588 a 515 2588 a SDict begin 12 H.A end 515 2588 a 515 2588 a SDict begin [ /View [/XYZ H.V] /Dest (table.63) cvn H.B /DEST pdfmark end 515 2588 a 0.5 TeXcolorgray 515 2691 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2691 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2791 4 100 v 0 TeXcolorgray 603 2761 a Ft(sear)m(c)o(hK)m(e)n(ys)p 0.5 TeXcolorgray 1005 2791 V 0 TeXcolorgray 60 w Fx(A)h(string)e(v)o (ector)g(of)h(k)o(e)o(yw)o(ords)f(to)h(search)g(for)g(in)g(each)g (header)p 0.5 TeXcolorgray 3400 2791 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2794 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2794 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3192 4 399 v 0 TeXcolorgray 732 2864 a Ft(sear)m(c)o(h-)760 2963 y(V)-9 b(alues)p 0.5 TeXcolorgray 1005 3192 V 0 TeXcolorgray 1037 2864 a Fx(A)23 b(string)e(v)o(ector)g(of)h(v)n(alues) g(those)g(k)o(e)o(yw)o(ords)f(are)h(required)e(to)j(ha)n(v)o(e)e(for)h (suc-)1037 2963 y(cess.)60 b(Note)31 b(that)h(the)f(k)o(e)o(ys)g(must)h (be)f(of)h(type)f(string.)58 b(If)32 b(an)o(y)e(v)n(alue)h(does)1037 3063 y(not)21 b(need)g(to)h(be)g(check)o(ed)f(the)g(corresponding)e (searchV)-9 b(alue)20 b(element)h(can)h(be)1037 3162 y(empty)-5 b(.)p 0.5 TeXcolorgray 3400 3192 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3196 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3196 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3395 4 200 v 0 TeXcolorgray 634 3265 a Ft(r)m(eadData-)820 3365 y(Fla)o(g)p 0.5 TeXcolorgray 1005 3395 V 0 TeXcolorgray 1037 3265 a Fx(boolean:)24 b(if)c(true,)g(read)f(data)h(if)p 0 0 1 TeXcolorrgb 1985 3266 a SDict begin H.S end 1985 3266 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2165 3211 a SDict begin H.R end 2165 3211 a 2165 3265 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2165 3265 a 0 TeXcolorgray 20 w Fx(is)i(found)p 0.5 TeXcolorgray 3400 3395 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3398 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3398 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3598 4 200 v 0 TeXcolorgray 696 3468 a Ft(hduK)m(e)n(ys)p 0.5 TeXcolorgray 1005 3598 V 0 TeXcolorgray 59 w Fx(Allo)n(ws)e(optional)f (reading)g(of)h(k)o(e)o(ys)g(in)g(the)p 0 0 1 TeXcolorrgb 2327 3469 a SDict begin H.S end 2327 3469 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2506 3414 a SDict begin H.R end 2506 3414 a 2506 3468 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2506 3468 a 0 TeXcolorgray 21 w Fx(that)g(is)i(searched)d(for)g(if)i (it)g(is)1037 3568 y(successfully)e(found)p 0.5 TeXcolorgray 3400 3598 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3601 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3601 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3700 4 100 v 0 TeXcolorgray 733 3671 a Ft(ver)o(sion)p 0.5 TeXcolorgray 1005 3700 V 0 TeXcolorgray 60 w Fx(Optional)d(v)o(ersion)g(number)-5 b(.)23 b(If)17 b(speci\002ed,)g(checks)g(the)g(EXTVERS)h(k)o(e)o(yw)o (ord.)p 0.5 TeXcolorgray 3400 3700 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3704 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3704 V 0 TeXcolorgray 0 TeXcolorgray 515 3934 a SDict begin H.S end 515 3934 a 0 TeXcolorgray 0 TeXcolorgray 515 3934 a SDict begin H.R end 515 3934 a 515 3934 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_ad65169c171ad79257367716d8f93b3f2) cvn H.B /DEST pdfmark end 515 3934 a 0 TeXcolorgray 515 3971 a SDict begin H.S end 515 3971 a 515 3971 a SDict begin 12 H.A end 515 3971 a 515 3971 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.17) cvn H.B /DEST pdfmark end 515 3971 a 0.25 TeXcolorgray 147 x Fo(24.14.3.17)75 b(v)n(oid)18 b (CC\002ts::FITS::setCompressio)q(nT)m(ype)24 b(\()34 b(int)18 b Fk(compT)l(ype)36 b Fo(\))p 0 TeXcolorgray 515 4302 a Fx(set)26 b(the)f(compression)f(algorithm)g(to)i(be)f(used)g (when)g(adding)f(image)h(e)o(xtensions)f(to)i(the)p 0 0 1 TeXcolorrgb 3208 4303 a SDict begin H.S end 3208 4303 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 4246 a SDict begin H.R end 3379 4246 a 3379 4302 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 4302 a 0 TeXcolorgray 515 4402 a Fx(object.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 98 103 TeXDict begin 98 102 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.98) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.15)81 b(CC\002ts::FITS::CantCr)o(eate)17 b(Class)k(Refer)o(ence)991 b(98)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.64) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1037 4 499 v 0 TeXcolorgray 641 609 a Ft(compT)-6 b(ype)p 0.5 TeXcolorgray 1005 1037 V 0 TeXcolorgray 59 w Fx(Currently)32 b(3)h(symbolic)g(constants)g(are)g(de\002ned)f(in)i (c\002tsio)g(for)e(specifying)1037 708 y(compression)j(algorithms:)56 b(GZIP_1,)39 b(RICE_1,)h(and)c(PLIO_1.)73 b(See)37 b(the)1037 808 y(c\002tsio)26 b(documentation)c(for)i(more)g(information)f(about)h (these)h(algorithms.)39 b(-)1037 908 y(Entering)14 b(NULL)i(for)f (compT)-7 b(ype)14 b(will)i(turn)f(of)n(f)h(compression)e(and)h(cause)h (nor)n(-)1037 1007 y(mal)p 0 0 1 TeXcolorrgb 1182 1008 a SDict begin H.S end 1182 1008 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1353 951 a SDict begin H.R end 1353 951 a 1353 1007 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1353 1007 a 0 TeXcolorgray 21 w Fx(images)k(to)g(be)g(written.)p 0.5 TeXcolorgray 3400 1037 4 499 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1041 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1041 V 0 TeXcolorgray 0 TeXcolorgray 515 1270 a SDict begin H.S end 515 1270 a 0 TeXcolorgray 0 TeXcolorgray 515 1270 a SDict begin H.R end 515 1270 a 515 1270 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_a224f6b22c1c3129c07c077d4b5617d2f) cvn H.B /DEST pdfmark end 515 1270 a 0 TeXcolorgray 515 1308 a SDict begin H.S end 515 1308 a 515 1308 a SDict begin 12 H.A end 515 1308 a 515 1308 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.18) cvn H.B /DEST pdfmark end 515 1308 a 0.25 TeXcolorgray 147 x Fo(24.14.3.18)75 b(v)n(oid)18 b (CC\002ts::FITS::setNoiseBits)23 b(\()35 b(int)18 b Fk(noiseBits)35 b Fo(\))p 0 TeXcolorgray 515 1639 a Fx(Set)21 b(the)f(c\002tsio)h (noisebits)f(parameter)e(used)i(when)g(compressing)e(\003oating-point)g (images.)515 1786 y(The)32 b(def)o(ault)g(v)n(alue)g(is)h(4.)62 b(Decreasing)32 b(the)g(v)n(alue)g(of)g(noisebits)h(will)g(impro)o(v)o (e)d(the)j(o)o(v)o(erall)515 1885 y(compression)18 b(ef)n(\002cienc)o (y)h(at)i(the)f(e)o(xpense)f(of)h(losing)f(more)h(information.)p 0 TeXcolorgray 2733 1885 a SDict begin H.S end 2733 1885 a 0 TeXcolorgray 0 TeXcolorgray 2733 1885 a SDict begin H.R end 2733 1885 a 2733 1885 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_aa0bfb6b1a6dc55c585482ba703773f50) cvn H.B /DEST pdfmark end 2733 1885 a 0 TeXcolorgray 515 1941 a SDict begin H.S end 515 1941 a 515 1941 a SDict begin 12 H.A end 515 1941 a 515 1941 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.19) cvn H.B /DEST pdfmark end 515 1941 a 0.25 TeXcolorgray 129 x Fo(24.14.3.19)75 b(v)n(oid)18 b(CC\002ts::FITS::setTileDimensio)q (ns)23 b(\()35 b(const)18 b(std::vector)p Fu(<)h Fo(long)g Fu(>)d Fo(&)i Fk(tileSiz)q(es)34 b Fo(\))p 0 TeXcolorgray 515 2254 a Fx(Set)21 b(the)f(dimensions)f(of)h(the)g(tiles)h(into)f (which)g(the)g(image)g(is)h(di)n(vided)d(during)h(compression.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2464 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2407 a SDict begin H.S end 515 2407 a 515 2407 a SDict begin 12 H.A end 515 2407 a 515 2407 a SDict begin [ /View [/XYZ H.V] /Dest (table.65) cvn H.B /DEST pdfmark end 515 2407 a 0.5 TeXcolorgray 515 2509 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2509 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2908 4 399 v 0 TeXcolorgray 704 2579 a Ft(tileSizes)p 0.5 TeXcolorgray 1005 2908 V 0 TeXcolorgray 61 w Fx(A)27 b(v)o(ector)f(of)h(length)f(N)i (containing)d(the)i(tile)h(dimesions.)45 b(If)27 b(N)g(is)h(less)g (than)1037 2679 y(the)20 b(number)e(of)i(dimensions)f(of)h(the)g(image) f(it)i(is)g(applied)e(to,)h(the)g(unspeci\002ed)1037 2778 y(dimensions)25 b(will)i(be)f(assigned)g(a)h(size)g(of)f(1)g(pix)o (el.)43 b(If)26 b(N)h(is)g(lar)o(ger)e(than)h(the)1037 2878 y(number)18 b(of)i(image)g(dimensions,)f(the)h(e)o(xtra)f (dimensions)g(will)i(be)f(ignored.)p 0.5 TeXcolorgray 3400 2908 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2911 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2911 V 0 TeXcolorgray 515 3119 a(The)h(def)o(ault)h(c\002tsio)g(beha)n(vior)f (is)i(to)f(create)f(tiles)i(with)g(dimensions)d(NAXIS1)i(x)g(1)g(x)g(1) g(etc.)31 b(up)515 3219 y(to)20 b(the)g(number)f(of)h(image)f (dimensions.)p 0 TeXcolorgray 1735 3219 a SDict begin H.S end 1735 3219 a 0 TeXcolorgray 0 TeXcolorgray 1735 3219 a SDict begin H.R end 1735 3219 a 1735 3219 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /DEST pdfmark end 1735 3219 a 0 TeXcolorgray 515 3274 a SDict begin H.S end 515 3274 a 515 3274 a SDict begin 12 H.A end 515 3274 a 515 3274 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.14.3.20) cvn H.B /DEST pdfmark end 515 3274 a 0.25 TeXcolorgray 129 x Fo(24.14.3.20)75 b(bool)18 b (CC\002ts::FITS::verboseMode)23 b(\()69 b(\))i Fr([inline,)48 b(static])p 0 TeXcolorgray 515 3587 a Fx(return)19 b(v)o(erbose)f (setting)j(for)e(library)515 3734 y(If)h(true,)f(all)i(messages)f(that) h(are)f(reported)e(by)i(e)o(xceptions)f(are)h(printed)f(to)h(std::cerr) -5 b(.)515 3881 y(The)20 b(documentation)d(for)i(this)i(class)g(w)o(as) g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4076 a(\225)p 0 TeXcolorgray 41 w(FITS.h)p 0 TeXcolorgray 652 4180 a(\225)p 0 TeXcolorgray 41 w(FITS.cxx)p 0 TeXcolorgray 515 4376 a SDict begin H.S end 515 4376 a 0 TeXcolorgray 0 TeXcolorgray 515 4376 a SDict begin H.R end 515 4376 a 515 4376 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITS_1_1CantCreate) cvn H.B /DEST pdfmark end 515 4376 a 0 TeXcolorgray 515 4493 a SDict begin H.S end 515 4493 a 515 4493 a SDict begin 12 H.A end 515 4493 a 515 4493 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.15) cvn H.B /DEST pdfmark end 515 4493 a 0.25 TeXcolorgray 163 x Fq(24.15)89 b(CC\002ts::FITS::CantCreate)24 b(Class)c(Ref)o(erence)p 0 TeXcolorgray 515 4859 a Fx(thro)n(wn)f(on)g(f)o(ailure)h(to)g(create) g(ne)n(w)g(\002le)515 5006 y Fr(#include)48 b Fu(<)p Fr(FITS.h)p Fu(>)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 99 104 TeXDict begin 99 103 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.99) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.15)81 b(CC\002ts::FITS::CantCr)o(eate)17 b(Class)k(Refer)o(ence)991 b(99)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::FITS::CantCreate:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1486 1121 a @beginspecial 0 @llx 0 @lly 500 @urx 256.410248 @ury 566 @rhi @setspecial %%BeginDocument: structCCfits_1_1FITS_1_1CantCreate.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 256.410256 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 1.950000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FITS::CantCreate) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FITS::CantCreate) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1473 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 1529 a SDict begin H.S end 515 1529 a 515 1529 a SDict begin 12 H.A end 515 1529 a 515 1529 a SDict begin [ /View [/XYZ H.V] /Dest (section*.28) cvn H.B /DEST pdfmark end 515 1529 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1662 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1663 a SDict begin H.S end 722 1663 a 0 0 1 TeXcolorrgb -1 x Fx(CantCreate)p 0 0 1 TeXcolorrgb 1096 1605 a SDict begin H.R end 1096 1605 a 1096 1662 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITS_1_1CantCreate_a9c7e9923d86095cb065ba3be679edc44) cvn H.B /ANN pdfmark end 1096 1662 a 0 TeXcolorgray 21 w Fx(\(const)h(String)h(&diag,)f(bool)g(silent=f)o(alse\))p 0 TeXcolorgray 0 TeXcolorgray 840 1786 a Fl(Exception)24 b(ctor)f(pr)m(e\002xes)h(the)f(string:)31 b("FITS)22 b(Err)m(or:)31 b(Cannot)24 b(cr)m(eate)f(\002le)g(")g(befor)m(e)h (speci\002c)840 1877 y(messa)o(g)o(e)o(.)515 2014 y SDict begin H.S end 515 2014 a 515 2014 a SDict begin 12 H.A end 515 2014 a 515 2014 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.15.1) cvn H.B /DEST pdfmark end 515 2014 a 0.25 TeXcolorgray 132 x Fo(24.15.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2349 a Fx(thro)n(wn)h(on)g(f)o(ailure)h(to)g(create) g(ne)n(w)g(\002le)515 2471 y SDict begin H.S end 515 2471 a 515 2471 a SDict begin 12 H.A end 515 2471 a 515 2471 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.15.2) cvn H.B /DEST pdfmark end 515 2471 a 0.25 TeXcolorgray 146 x Fo(24.15.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2820 a SDict begin H.S end 515 2820 a 0 TeXcolorgray 0 TeXcolorgray 515 2820 a SDict begin H.R end 515 2820 a 515 2820 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITS_1_1CantCreate_a9c7e9923d86095cb065ba3be679edc44) cvn H.B /DEST pdfmark end 515 2820 a 0 TeXcolorgray 515 2857 a SDict begin H.S end 515 2857 a 515 2857 a SDict begin 12 H.A end 515 2857 a 515 2857 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.15.2.1) cvn H.B /DEST pdfmark end 515 2857 a 0.25 TeXcolorgray 147 x Fo(24.15.2.1)75 b(CC\002ts::FITS::CantCreate::C)q(antC)q(reate)23 b(\()35 b(const)18 b(String)g(&)f Fk(msg,)35 b Fo(bool)19 b Fk(silent)f(=)f Fr(false)33 b Fo(\))p 0 TeXcolorgray 515 3188 a Fx(Exception)27 b(ctor)h(pre\002x)o(es)g(the)g(string:)42 b("FITS)29 b(Error:)41 b(Cannot)28 b(create)g(\002le)h(")g(before)e (speci\002c)515 3288 y(message.)515 3435 y(This)d(e)o(xception)e(will)j (be)f(thro)n(wn)e(if)j(the)f(user)f(attempts)h(to)g(write)h(to)f(a)g (protected)f(directory)f(or)515 3534 y(attempts)k(to)h(create)f(a)h(ne) n(w)f(\002le)h(with)g(the)f(same)h(name)f(as)h(an)f(e)o(xisting)g (\002le)h(without)f(specify-)515 3634 y(ing)f(o)o(v)o(erwrite)f([o)o(v) o(erwrite)g(is)i(speci\002ed)g(by)f(adding)f(the)i(character)e('!')41 b(before)25 b(the)g(\002lename,)515 3734 y(follo)n(wing)18 b(the)i(c\002tsio)h(con)m(v)o(ention])l(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3944 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3886 a SDict begin H.S end 515 3886 a 515 3886 a SDict begin 12 H.A end 515 3886 a 515 3886 a SDict begin [ /View [/XYZ H.V] /Dest (table.66) cvn H.B /DEST pdfmark end 515 3886 a 0.5 TeXcolorgray 515 3989 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3989 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4189 4 200 v 0 TeXcolorgray 843 4059 a Ft(msg)p 0.5 TeXcolorgray 1005 4189 V 0 TeXcolorgray 60 w Fx(A)h(speci\002c)h(diagnostic)e (message,)h(the)g(name)f(of)h(the)g(\002le)h(that)f(w)o(as)h(to)f(be)g (cre-)1037 4159 y(ated.)p 0.5 TeXcolorgray 3400 4189 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4192 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4192 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4291 4 100 v 0 TeXcolorgray 796 4262 a Ft(silent)p 0.5 TeXcolorgray 1005 4291 V 0 TeXcolorgray 61 w Fx(if)e(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 4263 a SDict begin H.S end 2047 4263 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 4205 a SDict begin H.R end 2714 4205 a 2714 4262 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 4262 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 4291 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4295 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4295 V 0 TeXcolorgray 515 4506 a(The)g(documentation)d(for)i(this)i(class)g(w)o (as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4704 a(\225)p 0 TeXcolorgray 41 w(FITS.h)p 0 TeXcolorgray 652 4808 a(\225)p 0 TeXcolorgray 41 w(FITS.cxx)p 0 TeXcolorgray 515 5006 a SDict begin H.S end 515 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5006 a SDict begin H.R end 515 5006 a 515 5006 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_1_1CantOpen) cvn H.B /DEST pdfmark end 515 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 249 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 100 105 TeXDict begin 100 104 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.100) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.16)81 b(CC\002ts::FITS::CantOpen)18 b(Class)j(Refer)o(ence)994 b(100)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.16) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fq(24.16)89 b(CC\002ts::FITS::CantOpen)24 b(Class)c(Ref)o(erence)p 0 TeXcolorgray 515 726 a Fx(thro)n(wn)f(on)g(f)o(ailure)h(to)g(open)f (e)o(xisting)h(\002le)515 873 y Fr(#include)48 b Fu(<)p Fr(FITS.h)p Fu(>)515 1020 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::FITS::CantOpen:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1507 1618 a @beginspecial 0 @llx 0 @lly 500 @urx 268.456390 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1FITS_1_1CantOpen.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 268.456376 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 1.862500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FITS::CantOpen) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FITS::CantOpen) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1969 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 2026 a SDict begin H.S end 515 2026 a 515 2026 a SDict begin 12 H.A end 515 2026 a 515 2026 a SDict begin [ /View [/XYZ H.V] /Dest (section*.29) cvn H.B /DEST pdfmark end 515 2026 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2158 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2176 a SDict begin H.S end 722 2176 a 0 0 1 TeXcolorrgb -18 x Fx(CantOpen)p 0 0 1 TeXcolorrgb 1059 2102 a SDict begin H.R end 1059 2102 a 1059 2158 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1CantOpen_ac51f3d69a93cfbf1e14990e314d92df9) cvn H.B /ANN pdfmark end 1059 2158 a 0 TeXcolorgray 21 w Fx(\(const)h(String)h(&diag,)f(bool)h(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2283 a Fl(Exception)k(ctor)f(pr)m (e\002xes)h(the)f(string:)31 b("FITS)22 b(Err)m(or:)31 b(Cannot)24 b(cr)m(eate)f(\002le)g(")g(befor)m(e)h(speci\002c)840 2374 y(messa)o(g)o(e)o(.)515 2511 y SDict begin H.S end 515 2511 a 515 2511 a SDict begin 12 H.A end 515 2511 a 515 2511 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.16.1) cvn H.B /DEST pdfmark end 515 2511 a 0.25 TeXcolorgray 131 x Fo(24.16.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2845 a Fx(thro)n(wn)h(on)g(f)o(ailure)h(to)g(open)f(e)o(xisting)h (\002le)515 2985 y SDict begin H.S end 515 2985 a 515 2985 a SDict begin 12 H.A end 515 2985 a 515 2985 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.16.2) cvn H.B /DEST pdfmark end 515 2985 a 0.25 TeXcolorgray 129 x Fo(24.16.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3316 a SDict begin H.S end 515 3316 a 0 TeXcolorgray 0 TeXcolorgray 515 3316 a SDict begin H.R end 515 3316 a 515 3316 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_1_1CantOpen_ac51f3d69a93cfbf1e14990e314d92df9) cvn H.B /DEST pdfmark end 515 3316 a 0 TeXcolorgray 515 3354 a SDict begin H.S end 515 3354 a 515 3354 a SDict begin 12 H.A end 515 3354 a 515 3354 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.16.2.1) cvn H.B /DEST pdfmark end 515 3354 a 0.25 TeXcolorgray 147 x Fo(24.16.2.1)75 b(CC\002ts::FITS::CantOpen::Ca)q(ntOp)q(en)23 b(\()35 b(const)18 b(String)g(&)f Fk(dia)o(g,)36 b Fo(bool)18 b Fk(silent)g(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 3685 a Fx(Exception)27 b(ctor)h(pre\002x)o(es)g(the)g(string:)42 b("FITS)29 b(Error:)41 b(Cannot)28 b(create)g(\002le)h(")g(before)e (speci\002c)515 3785 y(message.)515 3931 y(This)22 b(e)o(xception)d (will)k(be)e(thro)n(wn)f(if)i(users)g(attempt)f(to)h(open)f(an)g(e)o (xisting)g(\002le)h(for)f(write)h(access)515 4031 y(to)e(which)g(the)o (y)f(do)h(not)g(ha)n(v)o(e)f(permission,)g(or)h(of)g(course)g(if)g(the) g(\002le)h(does)f(not)g(e)o(xist.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4241 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4184 a SDict begin H.S end 515 4184 a 515 4184 a SDict begin 12 H.A end 515 4184 a 515 4184 a SDict begin [ /View [/XYZ H.V] /Dest (table.67) cvn H.B /DEST pdfmark end 515 4184 a 0.5 TeXcolorgray 515 4287 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4287 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4486 4 200 v 0 TeXcolorgray 830 4356 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 4486 V 0 TeXcolorgray 59 w Fx(A)i(speci\002c)h(diagnostic)e(message,)h(the)g(name)f(of)h(the) g(\002le)h(that)f(w)o(as)h(to)f(be)g(cre-)1037 4456 y(ated.)p 0.5 TeXcolorgray 3400 4486 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4489 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4489 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4589 4 100 v 0 TeXcolorgray 796 4559 a Ft(silent)p 0.5 TeXcolorgray 1005 4589 V 0 TeXcolorgray 61 w Fx(if)e(true,)g(print)g(message)g (whether)p 0 0 1 TeXcolorrgb 2047 4560 a SDict begin H.S end 2047 4560 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 4503 a SDict begin H.R end 2714 4503 a 2714 4559 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 4559 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 4589 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4592 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4592 V 0 TeXcolorgray 515 4806 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 5006 a(\225)p 0 TeXcolorgray 41 w(FITS.h)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 101 106 TeXDict begin 101 105 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.101) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.17)81 b(CC\002ts::FITS::NoSuchHDU)19 b(Class)i(Refer)o(ence)901 b(101)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(FITS.cxx)p 0 TeXcolorgray 515 736 a SDict begin H.S end 515 736 a 0 TeXcolorgray 0 TeXcolorgray 515 736 a SDict begin H.R end 515 736 a 515 736 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_1_1NoSuchHDU) cvn H.B /DEST pdfmark end 515 736 a 0 TeXcolorgray 515 858 a SDict begin H.S end 515 858 a 515 858 a SDict begin 12 H.A end 515 858 a 515 858 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.17) cvn H.B /DEST pdfmark end 515 858 a 0.25 TeXcolorgray 163 x Fq(24.17)89 b(CC\002ts::FITS::NoSuc)o(hHDU)24 b(Class)d(Ref)o(erence) p 0 TeXcolorgray 515 1224 a Fx(e)o(xception)d(thro)n(wn)h(by)p 0 0 1 TeXcolorrgb 1215 1225 a SDict begin H.S end 1215 1225 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1395 1170 a SDict begin H.R end 1395 1170 a 1395 1224 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1395 1224 a 0 TeXcolorgray 20 w Fx(retrie)n(v)n(al)h (methods.)515 1371 y Fr(#include)48 b Fu(<)p Fr(FITS.h)p Fu(>)515 1518 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::FITS::NoSuchHDU:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1466 2116 a @beginspecial 0 @llx 0 @lly 500 @urx 245.398773 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1FITS_1_1NoSuchHDU.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 245.398773 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.037500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FITS::NoSuchHDU) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FITS::NoSuchHDU) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2468 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 2524 a SDict begin H.S end 515 2524 a 515 2524 a SDict begin 12 H.A end 515 2524 a 515 2524 a SDict begin [ /View [/XYZ H.V] /Dest (section*.30) cvn H.B /DEST pdfmark end 515 2524 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2656 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2657 a SDict begin H.S end 722 2657 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchHDU)p 0 0 1 TeXcolorrgb 1170 2600 a SDict begin H.R end 1170 2600 a 1170 2656 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1NoSuchHDU_a31041cf0343276271be5093265cb0694) cvn H.B /ANN pdfmark end 1170 2656 a 0 TeXcolorgray 20 w Fx(\(const)i(String)g(&diag,)f(bool)g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2781 a Fl(Exception)31 b(ctor)-8 b(,)31 b(pr)m(e\002xes)g(the)f(string)g("FITS)f(Err)m(or:)44 b(Cannot)30 b(r)m(ead)h(HDU)e(in)h(FITS)e(\002le:")840 2872 y(befor)m(e)20 b(the)f(speci\002c)h(messa)o(g)o(e)o(.)515 3009 y SDict begin H.S end 515 3009 a 515 3009 a SDict begin 12 H.A end 515 3009 a 515 3009 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.17.1) cvn H.B /DEST pdfmark end 515 3009 a 0.25 TeXcolorgray 132 x Fo(24.17.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3343 a Fx(e)o(xception)g(thro)n(wn)h (by)p 0 0 1 TeXcolorrgb 1215 3344 a SDict begin H.S end 1215 3344 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1395 3289 a SDict begin H.R end 1395 3289 a 1395 3343 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1395 3343 a 0 TeXcolorgray 20 w Fx(retrie)n(v)n(al)h(methods.)515 3483 y SDict begin H.S end 515 3483 a 515 3483 a SDict begin 12 H.A end 515 3483 a 515 3483 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.17.2) cvn H.B /DEST pdfmark end 515 3483 a 0.25 TeXcolorgray 129 x Fo(24.17.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3815 a SDict begin H.S end 515 3815 a 0 TeXcolorgray 0 TeXcolorgray 515 3815 a SDict begin H.R end 515 3815 a 515 3815 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_1_1NoSuchHDU_a31041cf0343276271be5093265cb0694) cvn H.B /DEST pdfmark end 515 3815 a 0 TeXcolorgray 515 3852 a SDict begin H.S end 515 3852 a 515 3852 a SDict begin 12 H.A end 515 3852 a 515 3852 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.17.2.1) cvn H.B /DEST pdfmark end 515 3852 a 0.25 TeXcolorgray 147 x Fo(24.17.2.1)75 b(CC\002ts::FITS::NoSuc)o(hHDU:)q(:No)q(SuchHD)q (U)23 b(\()34 b(const)19 b(String)f(&)f Fk(dia)o(g,)35 b Fo(bool)19 b Fk(silent)f(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 4183 a Fx(Exception)16 b(ctor)m(,)i(pre\002x)o(es)g (the)g(string)g("FITS)h(Error:)k(Cannot)18 b(read)g(HDU)h(in)f(FITS)h (\002le:")g(before)515 4283 y(the)h(speci\002c)g(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4493 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4435 a SDict begin H.S end 515 4435 a 515 4435 a SDict begin 12 H.A end 515 4435 a 515 4435 a SDict begin [ /View [/XYZ H.V] /Dest (table.68) cvn H.B /DEST pdfmark end 515 4435 a 0.5 TeXcolorgray 515 4538 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4538 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4738 4 200 v 0 TeXcolorgray 830 4608 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 4738 V 0 TeXcolorgray 59 w Fx(A)40 b(speci\002c)g(diagnostic)f (message,)44 b(usually)c(the)g(name)f(of)g(the)h(e)o(xtension)1037 4708 y(whose)20 b(read)f(w)o(as)i(attempted.)p 0.5 TeXcolorgray 3400 4738 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4741 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4741 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4841 4 100 v 0 TeXcolorgray 796 4811 a Ft(silent)p 0.5 TeXcolorgray 1005 4841 V 0 TeXcolorgray 61 w Fx(if)f(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 4812 a SDict begin H.S end 2047 4812 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 4754 a SDict begin H.R end 2714 4754 a 2714 4811 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 4811 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 4841 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4844 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4844 V 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 102 107 TeXDict begin 102 106 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.102) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.18)81 b (CC\002ts::FITS::OperationNotSupported)17 b(Class)j(Refer)o(ence)496 b(102)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(Exception)18 b(to)i(be)h(thro)n(wn)d(by)i(f)o(ailed)g(seek)h(operations)515 670 y(The)f(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e (from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 868 a(\225)p 0 TeXcolorgray 41 w(FITS.h)p 0 TeXcolorgray 652 973 a(\225)p 0 TeXcolorgray 41 w(FITS.cxx)p 0 TeXcolorgray 515 1171 a SDict begin H.S end 515 1171 a 0 TeXcolorgray 0 TeXcolorgray 515 1171 a SDict begin H.R end 515 1171 a 515 1171 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_1_1OperationNotSupported) cvn H.B /DEST pdfmark end 515 1171 a 0 TeXcolorgray 515 1289 a SDict begin H.S end 515 1289 a 515 1289 a SDict begin 12 H.A end 515 1289 a 515 1289 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.18) cvn H.B /DEST pdfmark end 515 1289 a 0.25 TeXcolorgray 164 x Fq(24.18)89 b (CC\002ts::FITS::OperationNotSuppor)q(ted)24 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 1656 a Fx(thro)n(wn)27 b(for)h(unsupported)e (operations,)j(such)f(as)i(attempted)d(to)i(select)g(ro)n(ws)g(from)e (an)i(image)515 1755 y(e)o(xtension.)515 1902 y Fr(#include)48 b Fu(<)p Fr(FITS.h)p Fu(>)515 2049 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::FITS::OperationNotSupported:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1283 2640 a @beginspecial 0 @llx 0 @lly 500 @urx 177.777771 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1FITS_1_1OperationNotSupported.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 177.777778 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.812500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FITS::OperationNotSupported) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FITS::OperationNotSupported) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2988 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 3045 a SDict begin H.S end 515 3045 a 515 3045 a SDict begin 12 H.A end 515 3045 a 515 3045 a SDict begin [ /View [/XYZ H.V] /Dest (section*.31) cvn H.B /DEST pdfmark end 515 3045 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3173 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3191 a SDict begin H.S end 722 3191 a 0 0 1 TeXcolorrgb -18 x Fx(OperationNotSupported)p 0 0 1 TeXcolorrgb 1520 3117 a SDict begin H.R end 1520 3117 a 1520 3173 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_1_1OperationNotSupported_ac22e7f9c90baefeaae301e82c7f6c95f) cvn H.B /ANN pdfmark end 1520 3173 a 0 TeXcolorgray 21 w Fx(\(const)i(String)f(&msg,)h(bool)f(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 3294 a Fl(Exception)g(ctor)-8 b(,)18 b(pr)m(e\002xes)i(the)f(string)f("FITS)g(Err)m(or:)23 b(Oper)o(ation)c(not)g(supported:")h(befor)m(e)g(the)840 3385 y(speci\002c)g(messa)o(g)o(e)o(.)515 3519 y SDict begin H.S end 515 3519 a 515 3519 a SDict begin 12 H.A end 515 3519 a 515 3519 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.18.1) cvn H.B /DEST pdfmark end 515 3519 a 0.25 TeXcolorgray 131 x Fo(24.18.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3853 a Fx(thro)n(wn)27 b(for)h(unsupported)e (operations,)j(such)f(as)i(attempted)d(to)i(select)g(ro)n(ws)g(from)e (an)i(image)515 3953 y(e)o(xtension.)515 4072 y SDict begin H.S end 515 4072 a 515 4072 a SDict begin 12 H.A end 515 4072 a 515 4072 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.18.2) cvn H.B /DEST pdfmark end 515 4072 a 0.25 TeXcolorgray 146 x Fo(24.18.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4421 a SDict begin H.S end 515 4421 a 0 TeXcolorgray 0 TeXcolorgray 515 4421 a SDict begin H.R end 515 4421 a 515 4421 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITS_1_1OperationNotSupported_ac22e7f9c90baefeaae301e82c7f6c95f) cvn H.B /DEST pdfmark end 515 4421 a 0 TeXcolorgray 515 4458 a SDict begin H.S end 515 4458 a 515 4458 a SDict begin 12 H.A end 515 4458 a 515 4458 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.18.2.1) cvn H.B /DEST pdfmark end 515 4458 a 0.25 TeXcolorgray 147 x Fo(24.18.2.1)75 b(CC\002ts::FITS::OperationNotSup)q(po)q(r)q(ted) q(::)q(Operation)q(No)q(tSup)q(po)q(r)q(ted)24 b(\()35 b(const)19 b(String)g(&)e Fk(msg,)845 4704 y Fo(bool)h Fk(silent)g(=)f Fr(true)34 b Fo(\))p 0 TeXcolorgray 515 4889 a Fx(Exception)23 b(ctor)m(,)i(pre\002x)o(es)f(the)h(string)f ("FITS)h(Error:)33 b(Operation)24 b(not)g(supported:")f(before)h(the) 515 4988 y(speci\002c)c(message.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 103 108 TeXDict begin 103 107 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.103) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.19)81 b(CC\002ts::FitsErr)o(or)18 b(Class)j(Refer)o(ence)1263 b(103)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.69) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 843 609 a Ft(msg)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 60 w Fx(A)21 b(speci\002c)f (diagnostic)f(message.)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 4 100 v 0 TeXcolorgray 796 712 a Ft(silent)p 0.5 TeXcolorgray 1005 742 V 0 TeXcolorgray 61 w Fx(if)h(true,)g(print)g (message)g(whether)p 0 0 1 TeXcolorrgb 2047 713 a SDict begin H.S end 2047 713 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 655 a SDict begin H.R end 2714 655 a 2714 712 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 712 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 742 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 V 0 TeXcolorgray 515 969 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 1178 a(\225)p 0 TeXcolorgray 41 w(FITS.h)p 0 TeXcolorgray 652 1285 a(\225)p 0 TeXcolorgray 41 w(FITS.cxx)p 0 TeXcolorgray 515 1494 a SDict begin H.S end 515 1494 a 0 TeXcolorgray 0 TeXcolorgray 515 1494 a SDict begin H.R end 515 1494 a 515 1494 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsError) cvn H.B /DEST pdfmark end 515 1494 a 0 TeXcolorgray 515 1615 a SDict begin H.S end 515 1615 a 515 1615 a SDict begin 12 H.A end 515 1615 a 515 1615 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.19) cvn H.B /DEST pdfmark end 515 1615 a 0.25 TeXcolorgray 163 x Fq(24.19)89 b(CC\002ts::FitsErr)o(or)21 b(Class)g(Ref)o(erence)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 1982 a SDict begin H.S end 515 1982 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 815 1925 a SDict begin H.R end 815 1925 a 815 1981 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 815 1981 a 0 TeXcolorgray 20 w Fx(is)g(the)g(e)o(xception)d(thro)n(wn)h(by)h(non-zero)d (c\002tsio)k(status)g(codes.)515 2128 y Fr(#include)48 b Fu(<)p Fr(FitsError.h)p Fu(>)515 2275 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::FitsError:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1548 2871 a @beginspecial 0 @llx 0 @lly 500 @urx 296.296295 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1FitsError.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 296.296296 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 1.687500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FitsError) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FitsError) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 3221 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 3278 a SDict begin H.S end 515 3278 a 515 3278 a SDict begin 12 H.A end 515 3278 a 515 3278 a SDict begin [ /View [/XYZ H.V] /Dest (section*.32) cvn H.B /DEST pdfmark end 515 3278 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3409 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3410 a SDict begin H.S end 722 3410 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 1022 3353 a SDict begin H.R end 1022 3353 a 1022 3409 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError_aad7f934e5322f3a8d01f86d7d83d131f) cvn H.B /ANN pdfmark end 1022 3409 a 0 TeXcolorgray 21 w Fx(\(int)i(errornum,)d(bool)j(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 3532 a Fl(ctor)f(for)g(c\002tsio)h(e)o (xception:)j(tr)o(anslates)d(status)f(code)h(into)e(c\002tsio)i(err)m (or)f(messa)o(g)o(e)515 3668 y SDict begin H.S end 515 3668 a 515 3668 a SDict begin 12 H.A end 515 3668 a 515 3668 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.19.1) cvn H.B /DEST pdfmark end 515 3668 a 0.25 TeXcolorgray 132 x Fo(24.19.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4004 a SDict begin H.S end 515 4004 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 815 3946 a SDict begin H.R end 815 3946 a 815 4003 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 815 4003 a 0 TeXcolorgray 20 w Fx(is)j(the)g(e)o (xception)d(thro)n(wn)h(by)h(non-zero)d(c\002tsio)k(status)g(codes.)515 4141 y SDict begin H.S end 515 4141 a 515 4141 a SDict begin 12 H.A end 515 4141 a 515 4141 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.19.2) cvn H.B /DEST pdfmark end 515 4141 a 0.25 TeXcolorgray 129 x Fo(24.19.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4473 a SDict begin H.S end 515 4473 a 0 TeXcolorgray 0 TeXcolorgray 515 4473 a SDict begin H.R end 515 4473 a 515 4473 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsError_aad7f934e5322f3a8d01f86d7d83d131f) cvn H.B /DEST pdfmark end 515 4473 a 0 TeXcolorgray 515 4510 a SDict begin H.S end 515 4510 a 515 4510 a SDict begin 12 H.A end 515 4510 a 515 4510 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.19.2.1) cvn H.B /DEST pdfmark end 515 4510 a 0.25 TeXcolorgray 147 x Fo(24.19.2.1)75 b(CC\002ts::FitsErr)o(or::FitsErr)o(or)21 b(\()35 b(int)18 b Fk(err)o(orn)o(um,)35 b Fo(bool)18 b Fk(silent)g(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 4841 a Fx(ctor)20 b(for)f(c\002tsio)i(e)o(xception:)i(translates)e(status)f(code)g(into)g (c\002tsio)h(error)e(message)515 4988 y(The)h(e)o(xception)e(pre\002x)o (es)h(the)h(string)g("Fits)i(Error:)i(")c(to)h(the)f(message)g(printed) f(by)h(c\002tsio.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 104 109 TeXDict begin 104 108 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.104) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.20)81 b(CC\002ts::FitsException)18 b(Class)j(Refer)o(ence)1114 b(104)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.70) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 662 609 a Ft(err)l(ornum)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 60 w Fx(The)20 b(c\002tsio)g(status)h(code)f(produced)e(by)h(the)i(error)-5 b(.)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 4 100 v 0 TeXcolorgray 796 712 a Ft(silent)p 0.5 TeXcolorgray 1005 742 V 0 TeXcolorgray 61 w Fx(A)21 b(boolean)d(controlling)g(the)j (printing)d(of)i(messages)p 0.5 TeXcolorgray 3400 742 V 0 TeXcolorgray 0.5 TeXcolorgray 515 745 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 V 0 TeXcolorgray 515 975 a(The)g(documentation)d(for)i(this)i(class)g(w)o(as)g (generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 1188 a(\225)p 0 TeXcolorgray 41 w(FitsError)-5 b(.h)p 0 TeXcolorgray 652 1296 a(\225)p 0 TeXcolorgray 41 w(FitsError)g(.cxx)p 0 TeXcolorgray 515 1509 a SDict begin H.S end 515 1509 a 0 TeXcolorgray 0 TeXcolorgray 515 1509 a SDict begin H.R end 515 1509 a 515 1509 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsException) cvn H.B /DEST pdfmark end 515 1509 a 0 TeXcolorgray 515 1631 a SDict begin H.S end 515 1631 a 515 1631 a SDict begin 12 H.A end 515 1631 a 515 1631 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.20) cvn H.B /DEST pdfmark end 515 1631 a 0.25 TeXcolorgray 163 x Fq(24.20)89 b(CC\002ts::FitsException)23 b(Class)e(Ref)o(erence)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 2015 a SDict begin H.S end 515 2015 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 976 1941 a SDict begin H.R end 976 1941 a 976 1997 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 976 1997 a 0 TeXcolorgray 21 w Fx(is)g(the)f(base)g(class)i(for)d(all)i(e)o (xceptions)d(thro)n(wn)h(by)h(this)h(library)-5 b(.)515 2144 y Fr(#include)48 b Fu(<)p Fr(FitsError.h)p Fu(>)515 2291 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::FitsException:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 105 110 TeXDict begin 105 109 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.105) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.20)81 b(CC\002ts::FitsException)18 b(Class)j(Refer)o(ence)1114 b(105)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1161 3275 a @beginspecial 0 @llx 0 @lly 500 @urx 901.287537 @ury 3401 @rhi @setspecial %%BeginDocument: classCCfits_1_1FitsException.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 901.287554 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 0.554762 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 21 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FitsException) cw (CCfits::Column::InsufficientElements) cw (CCfits::Column::InvalidDataType) cw (CCfits::Column::InvalidNumberOfRows) cw (CCfits::Column::InvalidRowNumber) cw (CCfits::Column::InvalidRowParameter) cw (CCfits::Column::NoNullValue) cw (CCfits::Column::RangeError) cw (CCfits::Column::WrongColumnType) cw (CCfits::ExtHDU::WrongExtensionType) cw (CCfits::FITS::CantCreate) cw (CCfits::FITS::CantOpen) cw (CCfits::FITS::NoSuchHDU) cw (CCfits::FITS::OperationNotSupported) cw (CCfits::FitsError) cw (CCfits::FITSUtil::UnrecognizedType) cw (CCfits::HDU::InvalidExtensionType) cw (CCfits::HDU::InvalidImageDataType) cw (CCfits::HDU::NoNullValue) cw (CCfits::HDU::NoSuchKeyword) cw (CCfits::Table::NoSuchColumn) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FitsException) 0.000000 20.000000 box (CCfits::Column::InsufficientElements) 1.000000 19.000000 box (CCfits::Column::InvalidDataType) 1.000000 18.000000 box (CCfits::Column::InvalidNumberOfRows) 1.000000 17.000000 box (CCfits::Column::InvalidRowNumber) 1.000000 16.000000 box (CCfits::Column::InvalidRowParameter) 1.000000 15.000000 box (CCfits::Column::NoNullValue) 1.000000 14.000000 box (CCfits::Column::RangeError) 1.000000 13.000000 box (CCfits::Column::WrongColumnType) 1.000000 12.000000 box (CCfits::ExtHDU::WrongExtensionType) 1.000000 11.000000 box (CCfits::FITS::CantCreate) 1.000000 10.000000 box (CCfits::FITS::CantOpen) 1.000000 9.000000 box (CCfits::FITS::NoSuchHDU) 1.000000 8.000000 box (CCfits::FITS::OperationNotSupported) 1.000000 7.000000 box (CCfits::FitsError) 1.000000 6.000000 box (CCfits::FITSUtil::UnrecognizedType) 1.000000 5.000000 box (CCfits::HDU::InvalidExtensionType) 1.000000 4.000000 box (CCfits::HDU::InvalidImageDataType) 1.000000 3.000000 box (CCfits::HDU::NoNullValue) 1.000000 2.000000 box (CCfits::HDU::NoSuchKeyword) 1.000000 1.000000 box (CCfits::Table::NoSuchColumn) 1.000000 0.000000 box % ----- relations ----- solid 1 0.000000 19.250000 out solid 0 0.000000 19.500000 hedge solid 0 0.000000 18.500000 hedge solid 0 0.000000 17.500000 hedge solid 0 0.000000 16.500000 hedge solid 0 0.000000 15.500000 hedge solid 0 0.000000 14.500000 hedge solid 0 0.000000 13.500000 hedge solid 0 0.000000 12.500000 hedge solid 0 0.000000 11.500000 hedge solid 0 0.000000 10.500000 hedge solid 0 0.000000 9.500000 hedge solid 0 0.000000 8.500000 hedge solid 0 0.000000 7.500000 hedge solid 0 0.000000 6.500000 hedge solid 0 0.000000 5.500000 hedge solid 0 0.000000 4.500000 hedge solid 0 0.000000 3.500000 hedge solid 0 0.000000 2.500000 hedge solid 0 0.000000 1.500000 hedge solid 0 0.000000 0.500000 hedge solid 0.000000 20.000000 0.500000 vedge %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 3625 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 3682 a SDict begin H.S end 515 3682 a 515 3682 a SDict begin 12 H.A end 515 3682 a 515 3682 a SDict begin [ /View [/XYZ H.V] /Dest (section*.33) cvn H.B /DEST pdfmark end 515 3682 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3813 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3831 a SDict begin H.S end 722 3831 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1184 3756 a SDict begin H.R end 1184 3756 a 1184 3813 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException_a37025adf45d65172027274ef5227cd94) cvn H.B /ANN pdfmark end 1184 3813 a 0 TeXcolorgray 20 w Fx(\(const)i(string)g(&msg,)f(bool)h(&silent\))p 0 TeXcolorgray 652 3920 a(\225)p 0 TeXcolorgray 41 w(const)g(string)g (&)p 0 0 1 TeXcolorrgb 1214 3938 a SDict begin H.S end 1214 3938 a 0 0 1 TeXcolorrgb -18 x Fx(message)p 0 0 1 TeXcolorrgb 1495 3882 a SDict begin H.R end 1495 3882 a 1495 3920 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException_ae7c4688e2a2b829abdcf969f167c8ec6) cvn H.B /ANN pdfmark end 1495 3920 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4043 a Fl(r)m(eturns)g(the)f(err)m(or)g(messa)o(g)o(e)515 4179 y SDict begin H.S end 515 4179 a 515 4179 a SDict begin 12 H.A end 515 4179 a 515 4179 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.20.1) cvn H.B /DEST pdfmark end 515 4179 a 0.25 TeXcolorgray 131 x Fo(24.20.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4531 a SDict begin H.S end 515 4531 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 976 4457 a SDict begin H.R end 976 4457 a 976 4513 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 976 4513 a 0 TeXcolorgray 21 w Fx(is)j(the)f(base)g(class)i(for)d(all)i(e)o (xceptions)d(thro)n(wn)h(by)h(this)h(library)-5 b(.)515 4660 y(All)19 b(e)o(xceptions)d(deri)n(v)o(ed)h(from)g(this)i(class)g (can)f(be)g(caught)f(by)h(a)h(single)f('catch')f(clause)i(catching)p 0 0 1 TeXcolorrgb 515 4778 a SDict begin H.S end 515 4778 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 976 4703 a SDict begin H.R end 976 4703 a 976 4760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 976 4760 a 0 TeXcolorgray 21 w Fx(by)h(reference)e(\(which)h(is)i(the)g(point)e(of)h(this)h(base)f (class)h(design\).)515 4907 y(A)f(static)g("v)o(erboseMode")c (parameter)i(is)i(pro)o(vided)d(by)i(the)p 0 0 1 TeXcolorrgb 2294 4908 a SDict begin H.S end 2294 4908 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2464 4850 a SDict begin H.R end 2464 4850 a 2464 4907 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2464 4907 a 0 TeXcolorgray 20 w Fx(class)i(to)e(control)f(diagnostics) 515 5006 y(-)k(if)p 0 0 1 TeXcolorrgb 638 5021 a SDict begin H.S end 638 5021 a 0 0 1 TeXcolorrgb -15 x Fx(FITS::v)o(erboseMode\(\))p 0 0 1 TeXcolorrgb 1361 4950 a SDict begin H.R end 1361 4950 a 1361 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 1361 5006 a 0 TeXcolorgray 22 w Fx(is)h(true,)f(all)h(diagnostics)e (are)g(printed)g(\(for)g(deb)n(ugging)e(purposes\).)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 106 111 TeXDict begin 106 110 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.106) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.21)81 b(CC\002ts::FitsF)n(atal)18 b(Class)j(Refer)o(ence)1286 b(106)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(If)23 b(not,)g(then)f(a)i(boolean)d Ft(silent)k Fx(determines)d(printing)f(of)i(messages.)34 b(Each)22 b(e)o(xception)f(deri)n(v)o(ed)515 623 y(from)p 0 0 1 TeXcolorrgb 697 641 a SDict begin H.S end 697 641 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1158 566 a SDict begin H.R end 1158 566 a 1158 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1158 623 a 0 TeXcolorgray 21 w Fx(must)f(de\002ne)g(a)g(def)o(ault)g(v)n(alue)f(for)h(the)g Ft(silent)i Fx(parameter)-5 b(.)515 762 y SDict begin H.S end 515 762 a 515 762 a SDict begin 12 H.A end 515 762 a 515 762 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.20.2) cvn H.B /DEST pdfmark end 515 762 a 0.25 TeXcolorgray 129 x Fo(24.20.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1094 a SDict begin H.S end 515 1094 a 0 TeXcolorgray 0 TeXcolorgray 515 1094 a SDict begin H.R end 515 1094 a 515 1094 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsException_a37025adf45d65172027274ef5227cd94) cvn H.B /DEST pdfmark end 515 1094 a 0 TeXcolorgray 515 1131 a SDict begin H.S end 515 1131 a 515 1131 a SDict begin 12 H.A end 515 1131 a 515 1131 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.20.2.1) cvn H.B /DEST pdfmark end 515 1131 a 0.25 TeXcolorgray 147 x Fo(24.20.2.1)75 b(CC\002ts::FitsException::Fit)q(sExcept)q(ion)24 b(\()34 b(const)18 b(string)h(&)e Fk(dia)o(g,)35 b Fo(bool)19 b(&)e Fk(silent)35 b Fo(\))p 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 1441 a(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1383 a SDict begin H.S end 515 1383 a 515 1383 a SDict begin 12 H.A end 515 1383 a 515 1383 a SDict begin [ /View [/XYZ H.V] /Dest (table.71) cvn H.B /DEST pdfmark end 515 1383 a 0.5 TeXcolorgray 515 1486 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1486 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1586 4 100 v 0 TeXcolorgray 830 1556 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 1586 V 0 TeXcolorgray 59 w Fx(A)21 b(diagnostic)e(string)h(to)g(be)g(printed)f(optionally)-5 b(.)p 0.5 TeXcolorgray 3400 1586 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1589 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1589 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1689 4 100 v 0 TeXcolorgray 796 1659 a Ft(silent)p 0.5 TeXcolorgray 1005 1689 V 0 TeXcolorgray 61 w Fx(A)21 b(boolean)d(controlling)g(the)j (printing)d(of)i(messages)p 0.5 TeXcolorgray 3400 1689 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1692 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1692 V 0 TeXcolorgray 515 1814 a SDict begin H.S end 515 1814 a 515 1814 a SDict begin 12 H.A end 515 1814 a 515 1814 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.20.3) cvn H.B /DEST pdfmark end 515 1814 a 0.25 TeXcolorgray 146 x Fo(24.20.3)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2163 a SDict begin H.S end 515 2163 a 0 TeXcolorgray 0 TeXcolorgray 515 2163 a SDict begin H.R end 515 2163 a 515 2163 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsException_ae7c4688e2a2b829abdcf969f167c8ec6) cvn H.B /DEST pdfmark end 515 2163 a 0 TeXcolorgray 515 2201 a SDict begin H.S end 515 2201 a 515 2201 a SDict begin 12 H.A end 515 2201 a 515 2201 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.20.3.1) cvn H.B /DEST pdfmark end 515 2201 a 0.25 TeXcolorgray 147 x Fo(24.20.3.1)75 b(const)18 b(string)h(&)e(CC\002ts::FitsException::messag)q(e)23 b(\()69 b(\))17 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 2532 a Fx(returns)19 b(the)h(error)f(message)515 2679 y(This)31 b(returns)e(the)i(diagnostic)e(error)h(message)g (associated)h(with)f(the)h(e)o(xception)e(object,)j(and)515 2778 y(which)19 b(is)j(accessible)e(re)o(gardless)f(of)g(the)i(v)o (erboseMode)c(and)j(silent)g(\003ag)h(settings.)515 2925 y(The)f(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from) g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 3138 a(\225)p 0 TeXcolorgray 41 w(FitsError)-5 b(.h)p 0 TeXcolorgray 652 3246 a(\225)p 0 TeXcolorgray 41 w(FitsError)g(.cxx)p 0 TeXcolorgray 515 3460 a SDict begin H.S end 515 3460 a 0 TeXcolorgray 0 TeXcolorgray 515 3460 a SDict begin H.R end 515 3460 a 515 3460 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsFatal) cvn H.B /DEST pdfmark end 515 3460 a 0 TeXcolorgray 515 3581 a SDict begin H.S end 515 3581 a 515 3581 a SDict begin 12 H.A end 515 3581 a 515 3581 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.21) cvn H.B /DEST pdfmark end 515 3581 a 0.25 TeXcolorgray 164 x Fq(24.21)89 b(CC\002ts::FitsF)o(atal)23 b(Class)e(Ref)o(erence)p 0 TeXcolorgray 515 3948 a Fx([)o(potential])e(base)i(class)g(for)e(e)o (xceptions)g(to)h(be)g(thro)n(wn)f(on)h(internal)f(library)h(error)-5 b(.)515 4094 y Fr(#include)48 b Fu(<)p Fr(FitsError.h)p Fu(>)p 0.25 TeXcolorgray 515 4363 a Fo(Pub)o(lic)18 b(Member)g (Functions)p 0 TeXcolorgray 515 4419 a SDict begin H.S end 515 4419 a 515 4419 a SDict begin 12 H.A end 515 4419 a 515 4419 a SDict begin [ /View [/XYZ H.V] /Dest (section*.34) cvn H.B /DEST pdfmark end 515 4419 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 4552 a Fx(\225)p 0 0 1 TeXcolorrgb 722 4553 a SDict begin H.S end 722 4553 a 0 0 1 TeXcolorrgb -1 x Fx(FitsF)o(atal)p 0 0 1 TeXcolorrgb 1012 4495 a SDict begin H.R end 1012 4495 a 1012 4552 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsFatal_a42ba5b32d85531fa7570c2345c929f7a) cvn H.B /ANN pdfmark end 1012 4552 a 0 TeXcolorgray 20 w Fx(\(const)i(string)g(&diag\))p 0 TeXcolorgray 0 TeXcolorgray 840 4676 a Fl(Prints)f(a)g(messa)o(g)o(e) h(starting)f(")p Fc(\003\003\003)h Fl(CC\002ts)f(F)-6 b(atal)19 b(Err)m(or:)k(...")18 b(and)i(calls)f(terminate\(\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 107 112 TeXDict begin 107 111 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.107) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.22)81 b (CC\002ts::FITSUtil::auto_array_ptr)p Fu(<)14 b Fy(X)21 b Fu(>)f Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)100 b(107)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.21.1) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.21.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 726 a Fx([)o(potential])h(base)i(class)g(for)e(e)o(xceptions)g(to)h (be)g(thro)n(wn)f(on)h(internal)f(library)h(error)-5 b(.)515 873 y(As)21 b(of)g(this)g(v)o(ersion)f(there)g(are)h(no)f (subclasses.)28 b(This)21 b(error)e(requests)i(that)g(the)f(user)h (reports)f(this)515 972 y(circumstance)f(to)h(HEASARC.)515 1095 y SDict begin H.S end 515 1095 a 515 1095 a SDict begin 12 H.A end 515 1095 a 515 1095 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.21.2) cvn H.B /DEST pdfmark end 515 1095 a 0.25 TeXcolorgray 146 x Fo(24.21.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1444 a SDict begin H.S end 515 1444 a 0 TeXcolorgray 0 TeXcolorgray 515 1444 a SDict begin H.R end 515 1444 a 515 1444 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FitsFatal_a42ba5b32d85531fa7570c2345c929f7a) cvn H.B /DEST pdfmark end 515 1444 a 0 TeXcolorgray 515 1481 a SDict begin H.S end 515 1481 a 515 1481 a SDict begin 12 H.A end 515 1481 a 515 1481 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.21.2.1) cvn H.B /DEST pdfmark end 515 1481 a 0.25 TeXcolorgray 147 x Fo(24.21.2.1)75 b(CC\002ts::FitsF)o(atal::FitsF)o(at)q(al)23 b(\()34 b(const)19 b(string)f(&)f Fk(dia)o(g)35 b Fo(\))p 0 TeXcolorgray 515 1812 a Fx(Prints)20 b(a)h(message)f(starting)g(")p Fp(\003\003\003)f Fx(CC\002ts)j(F)o(atal)e(Error:)k(...")c(and)g(calls) h Ft(terminate\(\))p 0 TeXcolorgray 0.25 TeXcolorgray 506 2022 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1965 a SDict begin H.S end 515 1965 a 515 1965 a SDict begin 12 H.A end 515 1965 a 515 1965 a SDict begin [ /View [/XYZ H.V] /Dest (table.72) cvn H.B /DEST pdfmark end 515 1965 a 0.5 TeXcolorgray 515 2068 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2068 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2167 4 100 v 0 TeXcolorgray 830 2137 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 2167 V 0 TeXcolorgray 59 w Fx(A)g(diagnostic)e (string)h(to)g(be)g(printed)f(identifying)f(the)i(conte)o(xt)f(of)h (the)g(error)-5 b(.)p 0.5 TeXcolorgray 3400 2167 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2171 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2171 V 0 TeXcolorgray 515 2401 a(The)20 b(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from)g(the) h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 2614 a(\225)p 0 TeXcolorgray 41 w(FitsError)-5 b(.h)p 0 TeXcolorgray 652 2722 a(\225)p 0 TeXcolorgray 41 w(FitsError)g(.cxx)p 0 TeXcolorgray 515 2935 a SDict begin H.S end 515 2935 a 0 TeXcolorgray 0 TeXcolorgray 515 2935 a SDict begin H.R end 515 2935 a 515 2935 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr) cvn H.B /DEST pdfmark end 515 2935 a 0 TeXcolorgray 515 3056 a SDict begin H.S end 515 3056 a 515 3056 a SDict begin 12 H.A end 515 3056 a 515 3056 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.22) cvn H.B /DEST pdfmark end 515 3056 a 0.25 TeXcolorgray 164 x Fq(24.22)89 b(CC\002ts::FITSUtil::auto)p 1536 3220 27 4 v 37 w(arra)o(y)p 1753 3220 V 31 w(ptr)p Fa(<)21 b Fq(X)f Fa(>)h Fq(Class)g(T)l(emplate)g(Ref)o(erence)p 0 TeXcolorgray 515 3423 a Fx(A)f(class)i(that)e(mimics)g(the)g(std::)26 b(library)19 b(auto_ptr)g(class,)i(b)n(ut)f(w)o(orks)g(with)g(arrays.) 515 3570 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)p 0.25 TeXcolorgray 515 3838 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 3895 a SDict begin H.S end 515 3895 a 515 3895 a SDict begin 12 H.A end 515 3895 a 515 3895 a SDict begin [ /View [/XYZ H.V] /Dest (section*.35) cvn H.B /DEST pdfmark end 515 3895 a 0 TeXcolorgray 0 TeXcolorgray 652 4027 a Fx(\225)p 0 TeXcolorgray 722 4027 a SDict begin H.S end 722 4027 a 0 TeXcolorgray 0 TeXcolorgray 722 4027 a SDict begin H.R end 722 4027 a 722 4027 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_aa7eff76215f0bd5ac0aec23c39b903fe) cvn H.B /DEST pdfmark end 722 4027 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4045 a SDict begin H.S end 743 4045 a 0 0 1 TeXcolorrgb -18 x Fx(auto_array_ptr)p 0 0 1 TeXcolorrgb 1232 3980 a SDict begin H.R end 1232 3980 a 1232 4027 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_aa7eff76215f0bd5ac0aec23c39b903fe) cvn H.B /ANN pdfmark end 1232 4027 a 0 TeXcolorgray 21 w Fx(\(X)i Fp(\003)p Fx(p=0\))f(thro)n(w) g(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4151 a Fl(constructor)-8 b(.)24 b(allows)19 b(cr)m(eation)h(of)f(pointer)h(to)e(null,)h(can)h (be)f(modi\002ed)h(by)p 0 0 1 TeXcolorrgb 2820 4164 a SDict begin H.S end 2820 4164 a 0 0 1 TeXcolorrgb -13 x Fl(r)m(eset\(\))p 0 0 1 TeXcolorrgb 3012 4101 a SDict begin H.R end 3012 4101 a 3012 4151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_af2e65ee8fafdd812f2782da2dfea285a) cvn H.B /ANN pdfmark end 3012 4151 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 652 4259 a Fx(\225)p 0 TeXcolorgray 722 4259 a SDict begin H.S end 722 4259 a 0 TeXcolorgray 0 TeXcolorgray 722 4259 a SDict begin H.R end 722 4259 a 722 4259 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a3be729bfbf66a839903e92cfa0301b21) cvn H.B /DEST pdfmark end 722 4259 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4277 a SDict begin H.S end 743 4277 a 0 0 1 TeXcolorrgb -18 x Fx(auto_array_ptr)p 0 0 1 TeXcolorrgb 1232 4212 a SDict begin H.R end 1232 4212 a 1232 4259 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a3be729bfbf66a839903e92cfa0301b21) cvn H.B /ANN pdfmark end 1232 4259 a 0 TeXcolorgray 21 w Fx(\()p 0 0 1 TeXcolorrgb 1281 4277 a SDict begin H.S end 1281 4277 a 0 0 1 TeXcolorrgb -18 x Fx(auto_array_ptr)p 0 0 1 TeXcolorrgb 1769 4212 a SDict begin H.R end 1769 4212 a 1769 4259 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr) cvn H.B /ANN pdfmark end 1769 4259 a 0 TeXcolorgray Fu(<)g Fx(X)h Fu(>)f Fx(&right\))f(thro)n(w) g(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4384 a Fl(copy)h (constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 4492 a Fx(\225)p 0 TeXcolorgray 722 4492 a SDict begin H.S end 722 4492 a 0 TeXcolorgray 0 TeXcolorgray 722 4492 a SDict begin H.R end 722 4492 a 722 4492 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a53dbf2f60ac2851b86b70dad5619b862) cvn H.B /DEST pdfmark end 722 4492 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4510 a SDict begin H.S end 743 4510 a 0 0 1 TeXcolorrgb -18 x Fp(\030)p Fx(auto_array_ptr)p 0 0 1 TeXcolorrgb 1296 4445 a SDict begin H.R end 1296 4445 a 1296 4492 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a53dbf2f60ac2851b86b70dad5619b862) cvn H.B /ANN pdfmark end 1296 4492 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4616 a Fl(destructor)-8 b(.)p 0 TeXcolorgray 0 TeXcolorgray 652 4724 a Fx(\225)p 0 TeXcolorgray 722 4724 a SDict begin H.S end 722 4724 a 0 TeXcolorgray 0 TeXcolorgray 722 4724 a SDict begin H.R end 722 4724 a 722 4724 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a6cf9e51e5dd7a9d9d512900465c5ea1f) cvn H.B /DEST pdfmark end 722 4724 a 0 TeXcolorgray 21 w Fx(X)21 b Fp(\003)p 0 0 1 TeXcolorrgb 886 4742 a SDict begin H.S end 886 4742 a 0 0 1 TeXcolorrgb -18 x Fx(get)p 0 0 1 TeXcolorrgb 987 4677 a SDict begin H.R end 987 4677 a 987 4724 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a6cf9e51e5dd7a9d9d512900465c5ea1f) cvn H.B /ANN pdfmark end 987 4724 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4849 a Fl(r)m(eturn)g(a)f(tok)o(en)h(for)f(the)g(underlying)h (content)g(of)f Fc(\003)p Fl(this)p 0 TeXcolorgray 0 TeXcolorgray 652 4957 a Fx(\225)p 0 TeXcolorgray 722 4957 a SDict begin H.S end 722 4957 a 0 TeXcolorgray 0 TeXcolorgray 722 4957 a SDict begin H.R end 722 4957 a 722 4957 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a46abc946300c6b7deaa7e456ba9f1aed) cvn H.B /DEST pdfmark end 722 4957 a 0 TeXcolorgray 21 w Fx(X)i(&)p 0 0 1 TeXcolorrgb 909 4975 a SDict begin H.S end 909 4975 a 0 0 1 TeXcolorrgb -18 x Fx(operator)p Fp(\003)p 0 0 1 TeXcolorrgb 1227 4910 a SDict begin H.R end 1227 4910 a 1227 4957 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a46abc946300c6b7deaa7e456ba9f1aed) cvn H.B /ANN pdfmark end 1227 4957 a 0 TeXcolorgray 21 w Fx(\(\))f(thro)n(w)f(\(\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 108 113 TeXDict begin 108 112 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.108) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.22)81 b (CC\002ts::FITSUtil::auto_array_ptr)p Fu(<)14 b Fy(X)21 b Fu(>)f Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)100 b(108)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(defer)m(ence)21 b(oper)o(ator)p 0 TeXcolorgray 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 722 631 a SDict begin H.S end 722 631 a 0 TeXcolorgray 0 TeXcolorgray 722 631 a SDict begin H.R end 722 631 a 722 631 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ae387ac0d5d498974cc05d5ff878ae) cvn H.B /DEST pdfmark end 722 631 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 649 a SDict begin H.S end 910 649 a 0 0 1 TeXcolorrgb -18 x Fx(operator=)p 0 0 1 TeXcolorrgb 1233 584 a SDict begin H.R end 1233 584 a 1233 631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ae387ac0d5d498974cc05d5ff878ae) cvn H.B /ANN pdfmark end 1233 631 a 0 TeXcolorgray 21 w Fx(\()p 0 0 1 TeXcolorrgb 1282 649 a SDict begin H.S end 1282 649 a 0 0 1 TeXcolorrgb -18 x Fx(auto_array_ptr)p 0 0 1 TeXcolorrgb 1770 584 a SDict begin H.R end 1770 584 a 1770 631 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr) cvn H.B /ANN pdfmark end 1770 631 a 0 TeXcolorgray Fu(<)g Fx(X)f Fu(>)h Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 756 a Fl(assignment)f(oper)o(ator:)25 b(tr)o(ansfer)19 b(of)g(owner)o(ship)h(semantics)p 0 TeXcolorgray 0 TeXcolorgray 652 863 a Fx(\225)p 0 TeXcolorgray 722 863 a SDict begin H.S end 722 863 a 0 TeXcolorgray 0 TeXcolorgray 722 863 a SDict begin H.R end 722 863 a 722 863 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a114a298f4d870f74ed1039c6ee41b2b5) cvn H.B /DEST pdfmark end 722 863 a 0 TeXcolorgray 21 w Fx(X)h(&)p 0 0 1 TeXcolorrgb 909 881 a SDict begin H.S end 909 881 a 0 0 1 TeXcolorrgb -18 x Fx(operator[)7 b(])p 0 0 1 TeXcolorrgb 1250 809 a SDict begin H.R end 1250 809 a 1250 863 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a114a298f4d870f74ed1039c6ee41b2b5) cvn H.B /ANN pdfmark end 1250 863 a 0 TeXcolorgray 21 w Fx(\(size_t)20 b(i\))h(thro)n(w)e(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 988 a Fl(r)m(eturn)h(a)f(r)m(efer)m(ence)h(to)f(the)g(ith)g (element)g(of)g(the)g(arr)o(ay)p 0 TeXcolorgray 0 TeXcolorgray 652 1096 a Fx(\225)p 0 TeXcolorgray 722 1096 a SDict begin H.S end 722 1096 a 0 TeXcolorgray 0 TeXcolorgray 722 1096 a SDict begin H.R end 722 1096 a 722 1096 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a71fed8548c3d114a231a3ea87f35e218) cvn H.B /DEST pdfmark end 722 1096 a 0 TeXcolorgray 21 w Fx(X)p 0 0 1 TeXcolorrgb 824 1114 a SDict begin H.S end 824 1114 a 0 0 1 TeXcolorrgb -18 x Fx(operator[)6 b(])p 0 0 1 TeXcolorrgb 1165 1042 a SDict begin H.R end 1165 1042 a 1165 1096 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a71fed8548c3d114a231a3ea87f35e218) cvn H.B /ANN pdfmark end 1165 1096 a 0 TeXcolorgray 21 w Fx(\(size_t)20 b(i\))g(const)g(thro)n(w)g(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1220 a Fl(r)m(eturn)g(a)f(copy)h(of)f (the)g(ith)f(element)h(of)g(the)g(arr)o(ay)p 0 TeXcolorgray 0 TeXcolorgray 652 1328 a Fx(\225)p 0 TeXcolorgray 722 1328 a SDict begin H.S end 722 1328 a 0 TeXcolorgray 0 TeXcolorgray 722 1328 a SDict begin H.R end 722 1328 a 722 1328 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a994e12743b5b7d75b4168ac095a60c1f) cvn H.B /DEST pdfmark end 722 1328 a 0 TeXcolorgray 21 w Fx(X)i Fp(\003)p 0 0 1 TeXcolorrgb 886 1329 a SDict begin H.S end 886 1329 a 0 0 1 TeXcolorrgb -1 x Fx(release)p 0 0 1 TeXcolorrgb 1116 1272 a SDict begin H.R end 1116 1272 a 1116 1328 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a994e12743b5b7d75b4168ac095a60c1f) cvn H.B /ANN pdfmark end 1116 1328 a 0 TeXcolorgray 21 w Fx(\(\))f(thro)n(w)g(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1453 a Fl(r)m(eturn)g(underlying)h(content)e(of)g Fc(\003)p Fl(this,)g(tr)o(ansferring)g(memory)h(owner)o(ship)p 0 TeXcolorgray 0 TeXcolorgray 652 1561 a Fx(\225)p 0 TeXcolorgray 722 1561 a SDict begin H.S end 722 1561 a 0 TeXcolorgray 0 TeXcolorgray 722 1561 a SDict begin H.R end 722 1561 a 722 1561 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_af2e65ee8fafdd812f2782da2dfea285a) cvn H.B /DEST pdfmark end 722 1561 a 0 TeXcolorgray 21 w Fx(X)h Fp(\003)p 0 0 1 TeXcolorrgb 886 1562 a SDict begin H.S end 886 1562 a 0 0 1 TeXcolorrgb -1 x Fx(reset)p 0 0 1 TeXcolorrgb 1043 1514 a SDict begin H.R end 1043 1514 a 1043 1561 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_af2e65ee8fafdd812f2782da2dfea285a) cvn H.B /ANN pdfmark end 1043 1561 a 0 TeXcolorgray 21 w Fx(\(X)f Fp(\003)p Fx(p\))f(thro)n(w)h(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1685 a Fl(c)o(hang)o(e)h(the)e(content) h(of)e(the)p 0 0 1 TeXcolorrgb 1608 1701 a SDict begin H.S end 1608 1701 a 0 0 1 TeXcolorrgb -16 x Fl(auto_arr)o(ay_ptr)p 0 0 1 TeXcolorrgb 2068 1645 a SDict begin H.R end 2068 1645 a 2068 1685 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr) cvn H.B /ANN pdfmark end 2068 1685 a 0 TeXcolorgray 19 w Fl(to)h(p)p 0.25 TeXcolorgray 515 1954 a Fo(Static)f(Pub)o(lic)g(Member)g(Functions)p 0 TeXcolorgray 515 2011 a SDict begin H.S end 515 2011 a 515 2011 a SDict begin 12 H.A end 515 2011 a 515 2011 a SDict begin [ /View [/XYZ H.V] /Dest (section*.36) cvn H.B /DEST pdfmark end 515 2011 a 0 TeXcolorgray 0 TeXcolorgray 652 2143 a Fx(\225)p 0 TeXcolorgray 722 2143 a SDict begin H.S end 722 2143 a 0 TeXcolorgray 0 TeXcolorgray 722 2143 a SDict begin H.R end 722 2143 a 722 2143 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ca62c9f81dbc710968b2afae2d18a7) cvn H.B /DEST pdfmark end 722 2143 a 0 TeXcolorgray 21 w Fx(static)j(v)n(oid)p 0 0 1 TeXcolorrgb 1106 2144 a SDict begin H.S end 1106 2144 a 0 0 1 TeXcolorrgb -1 x Fx(remo)o(v)o(e)p 0 0 1 TeXcolorrgb 1352 2104 a SDict begin H.R end 1352 2104 a 1352 2143 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITSUtil_1_1auto__array__ptr_a13ca62c9f81dbc710968b2afae2d18a7) cvn H.B /ANN pdfmark end 1352 2143 a 0 TeXcolorgray 21 w Fx(\(X)f Fp(\003)p Fx(&x\))p 0 TeXcolorgray 0 TeXcolorgray 840 2267 a Fl(utility)e(function)i(to)f(delete)g(the)g(memory)g(owned)h (by)f(x)g(and)h(set)f(it)f(to)h(null.)515 2404 y SDict begin H.S end 515 2404 a 515 2404 a SDict begin 12 H.A end 515 2404 a 515 2404 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.22.1) cvn H.B /DEST pdfmark end 515 2404 a 0.25 TeXcolorgray 131 x Fo(24.22.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 2738 a(template)p Fu(<)p Fo(typename)i(X)p Fu(>)p Fo(c)o(lass)d(CC\002ts::FITSUtil::auto) p 2030 2738 23 4 v 33 w(arra)o(y)p 2212 2738 V 26 w(ptr)p Fu(<)g Fo(X)g Fu(>)p 0 TeXcolorgray 515 2810 a SDict begin H.S end 515 2810 a 515 2810 a SDict begin 12 H.A end 515 2810 a 515 2810 a SDict begin [ /View [/XYZ H.V] /Dest (section*.37) cvn H.B /DEST pdfmark end 515 2810 a 131 x Fx(A)j(class)i (that)e(mimics)g(the)g(std::)26 b(library)19 b(auto_ptr)g(class,)i(b)n (ut)f(w)o(orks)g(with)g(arrays.)515 3088 y(This)30 b(code)g(w)o(as)h (written)f(by)f(Jack)i(Ree)n(v)o(es)f(and)f(\002rst)i(appeared)e(C++)i (Report,)h(March)d(1996)515 3188 y(edition.)53 b(Although)28 b(some)i(authors)e(think)h(one)h(shouldn')o(t)d(need)i(such)h(a)g (contri)n(v)n(ance,)g(there)515 3287 y(seems)20 b(to)h(be)f(a)g(need)g (for)g(it)g(when)g(wrapping)e(C)j(code.)515 3434 y(Usage:)k(replace)515 3581 y(\003oat)p Fp(\003)20 b Ft(f)33 b Fx(=)20 b(ne)n(w)g(\003oat[)o (200])o(;)515 3728 y(with)515 3875 y(FITSUtil::auto_array_ptr)p Fu(<)p Fx(\003oat)p Fu(>)15 b Ft(f\(ne)o(w)20 b(\003oat[)o(200])o(\))p Fx(;)515 4022 y(Then)h(the)h(memory)e(will)j(be)f(managed)f(correctly)f (in)j(the)f(presence)f(of)h(e)o(xceptions,)e(and)i(delete)515 4121 y(will)f(be)f(called)g(automatically)f(for)g Ft(f)33 b Fx(when)20 b(lea)n(ving)f(scope.)515 4268 y(The)h(documentation)d (for)i(this)i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f (\002le:)p 0 TeXcolorgray 652 4481 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 4695 a SDict begin H.S end 515 4695 a 0 TeXcolorgray 0 TeXcolorgray 515 4695 a SDict begin H.R end 515 4695 a 515 4695 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1CAarray) cvn H.B /DEST pdfmark end 515 4695 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 560 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 109 114 TeXDict begin 109 113 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.109) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.23)81 b(CC\002ts::FITSUtil::CAarray)p Fu(<)17 b Fy(T)k Fu(>)f Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)335 b(109)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.23) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fq(24.23)89 b(CC\002ts::FITSUtil::CAarra)o (y)p Fa(<)24 b Fq(T)c Fa(>)h Fq(Class)g(T)l(emplate)g(Ref)o(erence)p 0 TeXcolorgray 515 726 a Fx(function)d(object)i(returning)e(C)j(array)e (from)h(a)g(v)n(alarray)-5 b(.)23 b(see)p 0 0 1 TeXcolorrgb 2306 744 a SDict begin H.S end 2306 744 a 0 0 1 TeXcolorrgb -18 x Fx(CV)-9 b(array)p 0 0 1 TeXcolorrgb 2583 670 a SDict begin H.R end 2583 670 a 2583 726 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 2583 726 a 0 TeXcolorgray 20 w Fx(for)20 b(details)515 873 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)p 0.25 TeXcolorgray 515 1135 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 1192 a SDict begin H.S end 515 1192 a 515 1192 a SDict begin 12 H.A end 515 1192 a 515 1192 a SDict begin [ /View [/XYZ H.V] /Dest (section*.38) cvn H.B /DEST pdfmark end 515 1192 a 0 TeXcolorgray 0 TeXcolorgray 652 1318 a Fx(\225)p 0 TeXcolorgray 722 1318 a SDict begin H.S end 722 1318 a 0 TeXcolorgray 0 TeXcolorgray 722 1318 a SDict begin H.R end 722 1318 a 722 1318 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1CAarray_a696f1168e9058a218e91ea0ead06693f) cvn H.B /DEST pdfmark end 722 1318 a 0 TeXcolorgray 21 w Fx(T)j Fp(\003)p 0 0 1 TeXcolorrgb 877 1336 a SDict begin H.S end 877 1336 a 0 0 1 TeXcolorrgb -18 x Fx(operator\(\))p 0 0 1 TeXcolorrgb 1209 1261 a SDict begin H.R end 1209 1261 a 1209 1318 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CAarray_a696f1168e9058a218e91ea0ead06693f) cvn H.B /ANN pdfmark end 1209 1318 a 0 TeXcolorgray 20 w Fx(\(const)f(std::v)n(alarray)p Fu(<)e Fx(T)j Fu(>)f Fx(&inArray\))p 0 TeXcolorgray 0 TeXcolorgray 840 1436 a Fl(oper)o(ator)g(r)m(eturning)h(C)d(arr)o(ay)i(for)f(use)g(with)f (ima)o(g)o(e)i(data.)515 1566 y SDict begin H.S end 515 1566 a 515 1566 a SDict begin 12 H.A end 515 1566 a 515 1566 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.23.1) cvn H.B /DEST pdfmark end 515 1566 a 0.25 TeXcolorgray 132 x Fo(24.23.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 1901 a(template)p Fu(<)p Fo(typename)i(T)p Fu(>)p Fo(c)o(lass)d(CC\002ts::FITSUtil::CAarra)o(y)p Fu(<)22 b Fo(T)17 b Fu(>)p 0 TeXcolorgray 515 1973 a SDict begin H.S end 515 1973 a 515 1973 a SDict begin 12 H.A end 515 1973 a 515 1973 a SDict begin [ /View [/XYZ H.V] /Dest (section*.39) cvn H.B /DEST pdfmark end 515 1973 a 131 x Fx(function)h(object)i(returning)e(C)j(array)e(from)h(a)g(v)n (alarray)-5 b(.)23 b(see)p 0 0 1 TeXcolorrgb 2306 2122 a SDict begin H.S end 2306 2122 a 0 0 1 TeXcolorrgb -18 x Fx(CV)-9 b(array)p 0 0 1 TeXcolorrgb 2583 2048 a SDict begin H.R end 2583 2048 a 2583 2104 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 2583 2104 a 0 TeXcolorgray 20 w Fx(for)20 b(details)515 2251 y(The)g(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e (from)g(the)h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 2438 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 2625 a SDict begin H.S end 515 2625 a 0 TeXcolorgray 0 TeXcolorgray 515 2625 a SDict begin H.R end 515 2625 a 515 2625 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1CVAarray) cvn H.B /DEST pdfmark end 515 2625 a 0 TeXcolorgray 515 2741 a SDict begin H.S end 515 2741 a 515 2741 a SDict begin 12 H.A end 515 2741 a 515 2741 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.24) cvn H.B /DEST pdfmark end 515 2741 a 0.25 TeXcolorgray 163 x Fq(24.24)89 b (CC\002ts::FITSUtil::CVAarra)o(y)p Fa(<)24 b Fq(T)c Fa(>)h Fq(Class)g(T)l(emplate)g(Ref)o(erence)p 0 TeXcolorgray 515 3107 a Fx(function)d(object)i(returning)e(C)j(array)e(from)h(a)g(v) o(ector)f(of)h(v)n(alarrays.)k(see)p 0 0 1 TeXcolorrgb 2661 3125 a SDict begin H.S end 2661 3125 a 0 0 1 TeXcolorrgb -18 x Fx(CV)-9 b(array)p 0 0 1 TeXcolorrgb 2937 3051 a SDict begin H.R end 2937 3051 a 2937 3107 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 2937 3107 a 0 TeXcolorgray 21 w Fx(for)19 b(details)515 3254 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)p 0.25 TeXcolorgray 515 3516 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 3573 a SDict begin H.S end 515 3573 a 515 3573 a SDict begin 12 H.A end 515 3573 a 515 3573 a SDict begin [ /View [/XYZ H.V] /Dest (section*.40) cvn H.B /DEST pdfmark end 515 3573 a 0 TeXcolorgray 0 TeXcolorgray 652 3699 a Fx(\225)p 0 TeXcolorgray 722 3699 a SDict begin H.S end 722 3699 a 0 TeXcolorgray 0 TeXcolorgray 722 3699 a SDict begin H.R end 722 3699 a 722 3699 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1CVAarray_a817543d5a8700ca336a35e62a3223d12) cvn H.B /DEST pdfmark end 722 3699 a 0 TeXcolorgray 21 w Fx(T)j Fp(\003)p 0 0 1 TeXcolorrgb 877 3717 a SDict begin H.S end 877 3717 a 0 0 1 TeXcolorrgb -18 x Fx(operator\(\))p 0 0 1 TeXcolorrgb 1209 3642 a SDict begin H.R end 1209 3642 a 1209 3699 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVAarray_a817543d5a8700ca336a35e62a3223d12) cvn H.B /ANN pdfmark end 1209 3699 a 0 TeXcolorgray 20 w Fx(\(const)f(std::v)o(ector)p Fu(<)f Fx(std::v)n(alarray)p Fu(<)f Fx(T)i Fu(>)h(>)f Fx(&inArray\))p 0 TeXcolorgray 0 TeXcolorgray 840 3817 a Fl(oper)o(ator)g(r)m(eturning)h(C)d(arr)o(ay) i(for)f(use)g(with)f(vector)i(column)f(data.)515 3948 y SDict begin H.S end 515 3948 a 515 3948 a SDict begin 12 H.A end 515 3948 a 515 3948 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.24.1) cvn H.B /DEST pdfmark end 515 3948 a 0.25 TeXcolorgray 131 x Fo(24.24.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 4282 a(template)p Fu(<)p Fo(typename)i(T)p Fu(>)p Fo(c)o(lass)d (CC\002ts::FITSUtil::CVAarra)o(y)p Fu(<)22 b Fo(T)17 b Fu(>)p 0 TeXcolorgray 515 4354 a SDict begin H.S end 515 4354 a 515 4354 a SDict begin 12 H.A end 515 4354 a 515 4354 a SDict begin [ /View [/XYZ H.V] /Dest (section*.41) cvn H.B /DEST pdfmark end 515 4354 a 131 x Fx(function)h(object)i (returning)e(C)j(array)e(from)h(a)g(v)o(ector)f(of)h(v)n(alarrays.)k (see)p 0 0 1 TeXcolorrgb 2661 4503 a SDict begin H.S end 2661 4503 a 0 0 1 TeXcolorrgb -18 x Fx(CV)-9 b(array)p 0 0 1 TeXcolorrgb 2937 4429 a SDict begin H.R end 2937 4429 a 2937 4485 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 2937 4485 a 0 TeXcolorgray 21 w Fx(for)19 b(details)515 4632 y(The)h(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 4819 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 5006 a SDict begin H.S end 515 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5006 a SDict begin H.R end 515 5006 a 515 5006 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /DEST pdfmark end 515 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 249 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 110 115 TeXDict begin 110 114 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.110) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.25)81 b(CC\002ts::FITSUtil::CV)-8 b(array)p Fu(<)17 b Fy(T)k Fu(>)g Fy(Class)f(T)-8 b(emplate)21 b(Refer)o(ence)343 b(110)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.25) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fq(24.25)89 b(CC\002ts::FITSUtil::CV)l (arra)o(y)p Fa(<)24 b Fq(T)c Fa(>)h Fq(Class)g(T)l(emplate)f(Ref)o (erence)p 0 TeXcolorgray 515 726 a Fx(Function)j(object)h(class)i(for)e (returning)f(C)i(arrays)f(from)g(standard)f(library)h(objects)g(used)h (in)g(the)p 0 0 1 TeXcolorrgb 515 827 a SDict begin H.S end 515 827 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 685 769 a SDict begin H.R end 685 769 a 685 826 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 685 826 a 0 TeXcolorgray 21 w Fx(library)19 b(implementation.)515 972 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)p 0.25 TeXcolorgray 515 1241 a Fo(Pub)o(lic)18 b(Member)g (Functions)p 0 TeXcolorgray 515 1298 a SDict begin H.S end 515 1298 a 515 1298 a SDict begin 12 H.A end 515 1298 a 515 1298 a SDict begin [ /View [/XYZ H.V] /Dest (section*.42) cvn H.B /DEST pdfmark end 515 1298 a 0 TeXcolorgray 0 TeXcolorgray 652 1430 a Fx(\225)p 0 TeXcolorgray 722 1430 a SDict begin H.S end 722 1430 a 0 TeXcolorgray 0 TeXcolorgray 722 1430 a SDict begin H.R end 722 1430 a 722 1430 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1CVarray_a661c853b542621505841646ffb4f9b60) cvn H.B /DEST pdfmark end 722 1430 a 0 TeXcolorgray 21 w Fx(T)j Fp(\003)p 0 0 1 TeXcolorrgb 877 1448 a SDict begin H.S end 877 1448 a 0 0 1 TeXcolorrgb -18 x Fx(operator\(\))p 0 0 1 TeXcolorrgb 1209 1373 a SDict begin H.R end 1209 1373 a 1209 1430 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray_a661c853b542621505841646ffb4f9b60) cvn H.B /ANN pdfmark end 1209 1430 a 0 TeXcolorgray 20 w Fx(\(const)f(std::v)o(ector)p Fu(<)f Fx(T)h Fu(>)g Fx(&inArray\))p 0 TeXcolorgray 0 TeXcolorgray 840 1554 a Fl(oper)o(ator)g(r)m(eturning)h(C)d(arr)o(ay)i(for)f(use)g(with)f (scalar)i(column)f(data.)515 1691 y SDict begin H.S end 515 1691 a 515 1691 a SDict begin 12 H.A end 515 1691 a 515 1691 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.25.1) cvn H.B /DEST pdfmark end 515 1691 a 0.25 TeXcolorgray 131 x Fo(24.25.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 2025 a(template)p Fu(<)p Fo(typename)i(T)p Fu(>)p Fo(c)o(lass)d(CC\002ts::FITSUtil::CV)l(arra)o(y)p Fu(<)22 b Fo(T)17 b Fu(>)p 0 TeXcolorgray 515 2097 a SDict begin H.S end 515 2097 a 515 2097 a SDict begin 12 H.A end 515 2097 a 515 2097 a SDict begin [ /View [/XYZ H.V] /Dest (section*.43) cvn H.B /DEST pdfmark end 515 2097 a 131 x Fx(Function)23 b(object)h(class)i(for)e(returning)f(C)i(arrays) f(from)g(standard)f(library)h(objects)g(used)h(in)g(the)p 0 0 1 TeXcolorrgb 515 2329 a SDict begin H.S end 515 2329 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 685 2272 a SDict begin H.R end 685 2272 a 685 2328 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 685 2328 a 0 TeXcolorgray 21 w Fx(library)19 b(implementation.)515 2475 y(There)14 b(are)h(3)h(v)o(ersions)e(which)g (con)m(v)o(ert)g(std::v)o(ector)p Fu(<)p Fx(T)p Fu(>)p Fx(,)f(std::v)n(alarray)p Fu(<)p Fx(T)p Fu(>)p Fx(,)g(and)i(std::v)o (ector)p Fu(<)p Fx(std-)515 2574 y(::v)n(alarray)p Fu(<)p Fx(T)p Fu(>)i(>)k Fx(objects)f(to)g(pointers)f(to)h(T)-6 b(,)21 b(called)p 0 0 1 TeXcolorrgb 2137 2592 a SDict begin H.S end 2137 2592 a 0 0 1 TeXcolorrgb -18 x Fx(CV)-9 b(array)p 0 0 1 TeXcolorrgb 2413 2518 a SDict begin H.R end 2413 2518 a 2413 2574 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVarray) cvn H.B /ANN pdfmark end 2413 2574 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2455 2592 a SDict begin H.S end 2455 2592 a 0 0 1 TeXcolorrgb -18 x Fx(CAarray)p 0 0 1 TeXcolorrgb 2741 2518 a SDict begin H.R end 2741 2518 a 2741 2574 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CAarray) cvn H.B /ANN pdfmark end 2741 2574 a 0 TeXcolorgray Fx(,)20 b(and)p 0 0 1 TeXcolorrgb 2923 2592 a SDict begin H.S end 2923 2592 a 0 0 1 TeXcolorrgb -18 x Fx(CVAarray)p 0 0 1 TeXcolorrgb 3268 2518 a SDict begin H.R end 3268 2518 a 3268 2574 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1CVAarray) cvn H.B /ANN pdfmark end 3268 2574 a 0 TeXcolorgray Fx(.)515 2721 y(An)i(alternati)n(v)o(e)f (function,)g(CharArray)-5 b(,)20 b(is)k(pro)o(vided)19 b(to)k(deal)f(with)g(the)h(special)f(case)h(of)f(v)o(ector)515 2821 y(string)e(arrays.)515 2968 y(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 3181 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 3394 a SDict begin H.S end 515 3394 a 0 TeXcolorgray 0 TeXcolorgray 515 3394 a SDict begin H.R end 515 3394 a 515 3394 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1MatchName) cvn H.B /DEST pdfmark end 515 3394 a 0 TeXcolorgray 515 3516 a SDict begin H.S end 515 3516 a 515 3516 a SDict begin 12 H.A end 515 3516 a 515 3516 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.26) cvn H.B /DEST pdfmark end 515 3516 a 0.25 TeXcolorgray 163 x Fq(24.26)89 b(CC\002ts::FITSUtil::Matc)o(hName)p Fa(<)26 b Fq(T)21 b Fa(>)g Fq(Class)f(T)l(emplate)h(Ref)o(erence)p 0 TeXcolorgray 515 3882 a Fx(predicate)d(for)g(classes)i(that)g(ha)n(v) o(e)e(a)i(name)e(attrib)n(ute;)i(match)e(input)h(string)f(with)i (instance)e(name.)515 4029 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)515 4154 y SDict begin H.S end 515 4154 a 515 4154 a SDict begin 12 H.A end 515 4154 a 515 4154 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.26.1) cvn H.B /DEST pdfmark end 515 4154 a 0.25 TeXcolorgray 143 x Fo(24.26.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 4500 a(template)p Fu(<)p Fo(c)o(lass)g(T)p Fu(>)p Fo(c)o(lass)g(CC\002ts::FITSUtil::Matc)o(hName)p Fu(<)23 b Fo(T)17 b Fu(>)p 0 TeXcolorgray 515 4572 a SDict begin H.S end 515 4572 a 515 4572 a SDict begin 12 H.A end 515 4572 a 515 4572 a SDict begin [ /View [/XYZ H.V] /Dest (section*.44) cvn H.B /DEST pdfmark end 515 4572 a 131 x Fx(predicate)h(for)g(classes)i(that)g(ha)n(v)o(e)e(a)i(name)e (attrib)n(ute;)i(match)e(input)h(string)f(with)i(instance)e(name.)515 4850 y(Usage:)25 b(MatchName)p Fu(<)p Fx(NamedClass)p Fu(>)18 b Fx(Ex;)515 4997 y(list)p Fu(<)p Fx(NamedClass)p Fu(>)i Fx(ListObject;)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 111 116 TeXDict begin 111 115 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.111) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.27)81 b(CC\002ts::FITSUtil::MatchNum)p Fu(<)18 b Fy(T)k Fu(>)e Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)247 b(111)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(...)25 b(...)515 670 y(\002nd_if\(ListObject.be)o (gin\(\),ListObject\(\))o(.en)o(d\()o(\),b)o(ind)o(2n)o(d\(E)o(x,")o (need)o(le"\)\))o(;)515 817 y(Since)20 b(most)g(of)g(the)g(classes)i (within)p 0 0 1 TeXcolorrgb 1599 818 a SDict begin H.S end 1599 818 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1811 760 a SDict begin H.R end 1811 760 a 1811 817 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1811 817 a 0 TeXcolorgray 21 w Fx(are)e(not)g(implemented)e(with)i(lists,)i(these)e(functions)515 916 y(are)g(no)n(w)g(of)f(little)i(direct)f(use.)515 1063 y(The)g(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e (from)g(the)h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 1277 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 1490 a SDict begin H.S end 515 1490 a 0 TeXcolorgray 0 TeXcolorgray 515 1490 a SDict begin H.R end 515 1490 a 515 1490 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1MatchNum) cvn H.B /DEST pdfmark end 515 1490 a 0 TeXcolorgray 515 1611 a SDict begin H.S end 515 1611 a 515 1611 a SDict begin 12 H.A end 515 1611 a 515 1611 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.27) cvn H.B /DEST pdfmark end 515 1611 a 0.25 TeXcolorgray 164 x Fq(24.27)89 b (CC\002ts::FITSUtil::Matc)o(hNum)p Fa(<)27 b Fq(T)20 b Fa(>)h Fq(Class)f(T)l(emplate)h(Ref)o(erence)p 0 TeXcolorgray 515 1978 a Fx(predicate)15 b(for)g(classes)j(that)e(ha)n(v)o(e)g(an)g (inde)o(x)f(attrib)n(ute;)i(match)f(input)f(inde)o(x)g(with)i(instance) e(v)n(alue.)515 2125 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)515 2249 y SDict begin H.S end 515 2249 a 515 2249 a SDict begin 12 H.A end 515 2249 a 515 2249 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.27.1) cvn H.B /DEST pdfmark end 515 2249 a 0.25 TeXcolorgray 144 x Fo(24.27.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 2596 a(template)p Fu(<)p Fo(c)o(lass)g(T)p Fu(>)p Fo(c)o(lass)g(CC\002ts::FITSUtil::Matc)o(hNum)q Fu(<)k Fo(T)c Fu(>)p 0 TeXcolorgray 515 2667 a SDict begin H.S end 515 2667 a 515 2667 a SDict begin 12 H.A end 515 2667 a 515 2667 a SDict begin [ /View [/XYZ H.V] /Dest (section*.45) cvn H.B /DEST pdfmark end 515 2667 a 132 x Fx(predicate)d(for)g (classes)j(that)e(ha)n(v)o(e)g(an)g(inde)o(x)f(attrib)n(ute;)i(match)f (input)f(inde)o(x)g(with)i(instance)e(v)n(alue.)515 2945 y(Usage:)25 b(MatchName)p Fu(<)p Fx(Inde)o(x)o(edClass)p Fu(>)16 b Fx(Ex;)515 3092 y(list)p Fu(<)p Fx(NamedClass)p Fu(>)k Fx(ListObject;)515 3239 y(...)25 b(...)515 3386 y(\002nd_if\(ListObject.be)o(gin\(\),ListObject\(\))o(.en)o(d\()o(\),b) o(ind)o(2n)o(d\(E)o(x,5)o(\)\))o(;)515 3533 y(Since)k(most)g(of)g(the)g (classes)h(within)p 0 0 1 TeXcolorrgb 1652 3534 a SDict begin H.S end 1652 3534 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1864 3477 a SDict begin H.R end 1864 3477 a 1864 3533 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1864 3533 a 0 TeXcolorgray 30 w Fx(are)f(implemented)e(with)i(std::maps)g(rather)f(than)515 3633 y(lists,)21 b(these)f(functions)f(are)h(no)n(w)g(of)g(little)h (direct)f(use.)515 3779 y(The)g(documentation)d(for)i(this)i(class)g(w) o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 3993 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 4206 a SDict begin H.S end 515 4206 a 0 TeXcolorgray 0 TeXcolorgray 515 4206 a SDict begin H.R end 515 4206 a 515 4206 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1MatchPtrName) cvn H.B /DEST pdfmark end 515 4206 a 0 TeXcolorgray 515 4327 a SDict begin H.S end 515 4327 a 515 4327 a SDict begin 12 H.A end 515 4327 a 515 4327 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.28) cvn H.B /DEST pdfmark end 515 4327 a 0.25 TeXcolorgray 164 x Fq(24.28)89 b(CC\002ts::FITSUtil::Matc)o(hPtrName)p Fa(<)26 b Fq(T)21 b Fa(>)g Fq(Class)f(T)l(emplate)h(Ref)o(erence)p 0 TeXcolorgray 515 4694 a Fx(as)g(for)p 0 0 1 TeXcolorrgb 722 4695 a SDict begin H.S end 722 4695 a 0 0 1 TeXcolorrgb -1 x Fx(MatchName)p 0 0 1 TeXcolorrgb 1133 4638 a SDict begin H.R end 1133 4638 a 1133 4694 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchName) cvn H.B /ANN pdfmark end 1133 4694 a 0 TeXcolorgray Fx(,)f(only)f(with)i(the)f(input)f(class)j (a)e(pointer)-5 b(.)515 4841 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 112 117 TeXDict begin 112 116 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.112) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.29)81 b(CC\002ts::FITSUtil::MatchPtrNum)p Fu(<)18 b Fy(T)j Fu(>)f Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)132 b(112)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.28.1) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.28.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 726 a(template)p Fu(<)p Fo(c)o(lass)g(T)p Fu(>)p Fo(c)o(lass)g (CC\002ts::FITSUtil::Matc)o(hPtrName)p Fu(<)23 b Fo(T)17 b Fu(>)p 0 TeXcolorgray 515 798 a SDict begin H.S end 515 798 a 515 798 a SDict begin 12 H.A end 515 798 a 515 798 a SDict begin [ /View [/XYZ H.V] /Dest (section*.46) cvn H.B /DEST pdfmark end 515 798 a 131 x Fx(as)k(for)p 0 0 1 TeXcolorrgb 722 930 a SDict begin H.S end 722 930 a 0 0 1 TeXcolorrgb -1 x Fx(MatchName)p 0 0 1 TeXcolorrgb 1133 873 a SDict begin H.R end 1133 873 a 1133 929 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchName) cvn H.B /ANN pdfmark end 1133 929 a 0 TeXcolorgray Fx(,)f(only)f(with)i(the)f (input)f(class)j(a)e(pointer)-5 b(.)515 1076 y(The)20 b(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from)g(the) h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 1282 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 1489 a SDict begin H.S end 515 1489 a 0 TeXcolorgray 0 TeXcolorgray 515 1489 a SDict begin H.R end 515 1489 a 515 1489 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1MatchPtrNum) cvn H.B /DEST pdfmark end 515 1489 a 0 TeXcolorgray 515 1609 a SDict begin H.S end 515 1609 a 515 1609 a SDict begin 12 H.A end 515 1609 a 515 1609 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.29) cvn H.B /DEST pdfmark end 515 1609 a 0.25 TeXcolorgray 163 x Fq(24.29)89 b(CC\002ts::FITSUtil::Matc)o (hPtrNum)p Fa(<)27 b Fq(T)20 b Fa(>)h Fq(Class)f(T)l(emplate)h(Ref)o (erence)p 0 TeXcolorgray 515 1975 a Fx(as)g(for)p 0 0 1 TeXcolorrgb 722 1976 a SDict begin H.S end 722 1976 a 0 0 1 TeXcolorrgb -1 x Fx(MatchNum)p 0 0 1 TeXcolorrgb 1100 1919 a SDict begin H.R end 1100 1919 a 1100 1975 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchNum) cvn H.B /ANN pdfmark end 1100 1975 a 0 TeXcolorgray Fx(,)g(only)e(with)i(the)f (input)f(class)i(a)g(pointer)-5 b(.)515 2122 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)515 2245 y SDict begin H.S end 515 2245 a 515 2245 a SDict begin 12 H.A end 515 2245 a 515 2245 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.29.1) cvn H.B /DEST pdfmark end 515 2245 a 0.25 TeXcolorgray 144 x Fo(24.29.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 2592 a(template)p Fu(<)p Fo(c)o(lass)g(T)p Fu(>)p Fo(c)o(lass)g(CC\002ts::FITSUtil::Matc)o(hPtrNum)q Fu(<)k Fo(T)c Fu(>)p 0 TeXcolorgray 515 2663 a SDict begin H.S end 515 2663 a 515 2663 a SDict begin 12 H.A end 515 2663 a 515 2663 a SDict begin [ /View [/XYZ H.V] /Dest (section*.47) cvn H.B /DEST pdfmark end 515 2663 a 131 x Fx(as)j(for)p 0 0 1 TeXcolorrgb 722 2795 a SDict begin H.S end 722 2795 a 0 0 1 TeXcolorrgb -1 x Fx(MatchNum)p 0 0 1 TeXcolorrgb 1100 2738 a SDict begin H.R end 1100 2738 a 1100 2794 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchNum) cvn H.B /ANN pdfmark end 1100 2794 a 0 TeXcolorgray Fx(,)g(only)e(with)i(the) f(input)f(class)i(a)g(pointer)-5 b(.)515 2941 y(The)20 b(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from)g(the) h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 3148 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 3354 a SDict begin H.S end 515 3354 a 0 TeXcolorgray 0 TeXcolorgray 515 3354 a SDict begin H.R end 515 3354 a 515 3354 a SDict begin [ /View [/XYZ H.V] /Dest (structCCfits_1_1FITSUtil_1_1MatchType) cvn H.B /DEST pdfmark end 515 3354 a 0 TeXcolorgray 515 3474 a SDict begin H.S end 515 3474 a 515 3474 a SDict begin 12 H.A end 515 3474 a 515 3474 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.30) cvn H.B /DEST pdfmark end 515 3474 a 0.25 TeXcolorgray 164 x Fq(24.30)89 b(CC\002ts::FITSUtil::Matc)o(hT)l (ype)p Fa(<)25 b Fq(T)c Fa(>)g Fq(Class)f(T)l(emplate)h(Ref)o(erence)p 0 TeXcolorgray 515 3841 a Fx(function)14 b(object)i(that)g(returns)f (the)p 0 0 1 TeXcolorrgb 1535 3842 a SDict begin H.S end 1535 3842 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1705 3784 a SDict begin H.R end 1705 3784 a 1705 3841 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1705 3841 a 0 TeXcolorgray 17 w Fx(V)-9 b(alueT)i(ype)15 b(corresponding)d(to)17 b(an)f(input)f(intrinsic)h(type)515 3988 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)515 4111 y SDict begin H.S end 515 4111 a 515 4111 a SDict begin 12 H.A end 515 4111 a 515 4111 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.30.1) cvn H.B /DEST pdfmark end 515 4111 a 0.25 TeXcolorgray 143 x Fo(24.30.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 4457 a(template)p Fu(<)p Fo(typename)i(T)p Fu(>)p Fo(c)o(lass)d(CC\002ts::FITSUtil::Matc)o(hT)m(yp)q(e)p Fu(<)22 b Fo(T)c Fu(>)p 0 TeXcolorgray 515 4529 a SDict begin H.S end 515 4529 a 515 4529 a SDict begin 12 H.A end 515 4529 a 515 4529 a SDict begin [ /View [/XYZ H.V] /Dest (section*.48) cvn H.B /DEST pdfmark end 515 4529 a 131 x Fx(function)c(object)i(that)g(returns)f(the)p 0 0 1 TeXcolorrgb 1535 4661 a SDict begin H.S end 1535 4661 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1705 4604 a SDict begin H.R end 1705 4604 a 1705 4660 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1705 4660 a 0 TeXcolorgray 17 w Fx(V)-9 b(alueT)i(ype)15 b(corresponding)d(to)17 b(an)f(input)f(intrinsic)h (type)515 4807 y(This)25 b(is)h(particularly)d(useful)h(inside)h (templated)f(class)h(instances)g(where)f(calls)i(to)f(c\002tsio)g(need) 515 4907 y(to)20 b(supply)f(a)h(v)n(alue)g(type.)k(W)m(ith)c(this)h (function)d(one)i(can)f(e)o(xtract)h(the)g(v)n(alue)f(type)h(from)f (the)h(class)515 5006 y(type.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 113 118 TeXDict begin 113 117 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.113) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.31)81 b(CC\002ts::FITSUtil::Unr)o (ecognizedT)-6 b(ype)17 b(Class)k(Refer)o(ence)568 b(113)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Ft(usa)o(g)o(e:)515 670 y(Matc)o(hT)-6 b(ype)p Fu(<)p Ft(T)p Fu(>)18 b Ft(type;)515 817 y(V)-9 b(alueT)j(ype)18 b(dataT)-6 b(ype)19 b(=)i(type\(\);)515 964 y Fx(Uses)g(run-time)e(type)g(information)f(\(RTTI\))i(methods.)515 1111 y(The)g(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e (from)g(the)h(follo)n(wing)f(\002le:)p 0 TeXcolorgray 652 1324 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 515 1537 a SDict begin H.S end 515 1537 a 0 TeXcolorgray 0 TeXcolorgray 515 1537 a SDict begin H.R end 515 1537 a 515 1537 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1FITSUtil_1_1UnrecognizedType) cvn H.B /DEST pdfmark end 515 1537 a 0 TeXcolorgray 515 1659 a SDict begin H.S end 515 1659 a 515 1659 a SDict begin 12 H.A end 515 1659 a 515 1659 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.31) cvn H.B /DEST pdfmark end 515 1659 a 0.25 TeXcolorgray 163 x Fq(24.31)89 b (CC\002ts::FITSUtil::Unrecogniz)q(edT)l(ype)23 b(Class)e(Ref)o(erence)p 0 TeXcolorgray 515 2025 a Fx(e)o(xception)d(thro)n(wn)h(by)p 0 0 1 TeXcolorrgb 1215 2043 a SDict begin H.S end 1215 2043 a 0 0 1 TeXcolorrgb -18 x Fx(MatchT)-7 b(ype)p 0 0 1 TeXcolorrgb 1591 1969 a SDict begin H.R end 1591 1969 a 1591 2025 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchType) cvn H.B /ANN pdfmark end 1591 2025 a 0 TeXcolorgray 21 w Fx(if)20 b(it)h(encounters)d(data)i(type)g(incompatible)e(with)j (c\002tsio.)515 2172 y Fr(#include)48 b Fu(<)p Fr(FITSUtil.h)p Fu(>)515 2319 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::FITSUtil::UnrecognizedT)-7 b(ype:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1312 2917 a @beginspecial 0 @llx 0 @lly 500 @urx 186.046509 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1FITSUtil_1_1UnrecognizedType.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 186.046512 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.687500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::FITSUtil::UnrecognizedType) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::FITSUtil::UnrecognizedType) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 515 3121 a SDict begin H.S end 515 3121 a 515 3121 a SDict begin 12 H.A end 515 3121 a 515 3121 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.31.1) cvn H.B /DEST pdfmark end 515 3121 a 0.25 TeXcolorgray 147 x Fo(24.31.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3471 a Fx(e)o(xception)g(thro)n(wn)h(by)p 0 0 1 TeXcolorrgb 1215 3489 a SDict begin H.S end 1215 3489 a 0 0 1 TeXcolorrgb -18 x Fx(MatchT)-7 b(ype)p 0 0 1 TeXcolorrgb 1591 3415 a SDict begin H.R end 1591 3415 a 1591 3471 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (structCCfits_1_1FITSUtil_1_1MatchType) cvn H.B /ANN pdfmark end 1591 3471 a 0 TeXcolorgray 21 w Fx(if)20 b(it)h(encounters)d (data)i(type)g(incompatible)e(with)j(c\002tsio.)515 3618 y(The)f(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from) g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 3831 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.h)p 0 TeXcolorgray 652 3939 a(\225)p 0 TeXcolorgray 41 w(FITSUtil.cxx)p 0 TeXcolorgray 515 4153 a SDict begin H.S end 515 4153 a 0 TeXcolorgray 0 TeXcolorgray 515 4153 a SDict begin H.R end 515 4153 a 515 4153 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU) cvn H.B /DEST pdfmark end 515 4153 a 0 TeXcolorgray 515 4274 a SDict begin H.S end 515 4274 a 515 4274 a SDict begin 12 H.A end 515 4274 a 515 4274 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.32) cvn H.B /DEST pdfmark end 515 4274 a 0.25 TeXcolorgray 163 x Fq(24.32)89 b(CC\002ts::HDU)22 b(Class)f(Ref)o(erence)p 0 TeXcolorgray 515 4640 a Fx(Base)g(class)g(for)f(all)p 0 0 1 TeXcolorrgb 1100 4641 a SDict begin H.S end 1100 4641 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1280 4586 a SDict begin H.R end 1280 4586 a 1280 4640 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1280 4640 a 0 TeXcolorgray 21 w Fx([Header)n(-Data)f (Unit])h(objects.)515 4787 y Fr(#include)48 b Fu(<)p Fr(HDU.h)p Fu(>)515 4934 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::HDU:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h (f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 114 119 TeXDict begin 114 118 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.114) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(114)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 698 1385 a @beginspecial 0 @llx 0 @lly 500 @urx 189.125290 @ury 1133 @rhi @setspecial %%BeginDocument: classCCfits_1_1HDU.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 189.125296 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.643750 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 4 def /cols 3 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::HDU) cw (CCfits::ExtHDU) cw (CCfits::PHDU) cw (CCfits::ImageExt< T >) cw (CCfits::Table) cw (CCfits::AsciiTable) cw (CCfits::BinTable) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::HDU) 1.000000 3.000000 box (CCfits::ExtHDU) 0.500000 2.000000 box (CCfits::PHDU) 1.500000 2.000000 box (CCfits::ImageExt< T >) 0.000000 1.000000 box (CCfits::Table) 1.000000 1.000000 box (CCfits::AsciiTable) 0.500000 0.000000 box (CCfits::BinTable) 1.500000 0.000000 box % ----- relations ----- solid 1 1.000000 2.250000 out solid 0.500000 1.500000 3.000000 conn solid 0 0.500000 2.750000 in solid 1 0.500000 1.250000 out solid 0.000000 1.000000 2.000000 conn solid 0 1.500000 2.750000 in solid 0 0.000000 1.750000 in solid 0 1.000000 1.750000 in solid 1 1.000000 0.250000 out solid 0.500000 1.500000 1.000000 conn solid 0 0.500000 0.750000 in solid 0 1.500000 0.750000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1736 a Fo(Classes)p 0 TeXcolorgray 515 1793 a SDict begin H.S end 515 1793 a 515 1793 a SDict begin 12 H.A end 515 1793 a 515 1793 a SDict begin [ /View [/XYZ H.V] /Dest (section*.49) cvn H.B /DEST pdfmark end 515 1793 a 0 TeXcolorgray 652 1924 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 1942 a SDict begin H.S end 904 1942 a 0 0 1 TeXcolorrgb -18 x Fx(In)m(v)n(alidExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1630 1868 a SDict begin H.R end 1630 1868 a 1630 1924 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidExtensionType) cvn H.B /ANN pdfmark end 1630 1924 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2048 a Fl(e)o(xception)23 b(to)f(be)g(thr)m(own)g(if)f(user)h(r)m(equests)h(e)o(xtension)g(type)f (that)g(can)g(not)g(be)g(under)o(stood)j(as)p 0 0 1 TeXcolorrgb 840 2154 a SDict begin H.S end 840 2154 a 0 0 1 TeXcolorrgb -15 x Fl(Ima)o(g)o(eExt)p 0 0 1 TeXcolorrgb 1125 2091 a SDict begin H.R end 1125 2091 a 1125 2139 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 1125 2139 a 0 TeXcolorgray Fl(,)p 0 0 1 TeXcolorrgb 1163 2140 a SDict begin H.S end 1163 2140 a 0 0 1 TeXcolorrgb -1 x Fl(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1475 2088 a SDict begin H.R end 1475 2088 a 1475 2139 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1475 2139 a 0 TeXcolorgray 19 w Fl(or)p 0 0 1 TeXcolorrgb 1579 2140 a SDict begin H.S end 1579 2140 a 0 0 1 TeXcolorrgb -1 x Fl(BinT)g(able)p 0 0 1 TeXcolorrgb 1846 2088 a SDict begin H.R end 1846 2088 a 1846 2139 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1846 2139 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 652 2246 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2264 a SDict begin H.S end 904 2264 a 0 0 1 TeXcolorrgb -18 x Fx(In)m(v)n(alidImageDataT)g(ype)p 0 0 1 TeXcolorrgb 1662 2190 a SDict begin H.R end 1662 2190 a 1662 2246 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidImageDataType) cvn H.B /ANN pdfmark end 1662 2246 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2370 a Fl(e)o(xception)21 b(to)e(be)h(thr)m(own)g(if)f(user)h(r)m (equests)h(cr)m(eation)g(of)f(an)g(ima)o(g)o(e)g(of)g(type)g(not)g (supported)h(by)840 2462 y(c\002tsio.)p 0 TeXcolorgray 652 2569 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2570 a SDict begin H.S end 904 2570 a 0 0 1 TeXcolorrgb -1 x Fx(NoNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1343 2513 a SDict begin H.R end 1343 2513 a 1343 2569 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoNullValue) cvn H.B /ANN pdfmark end 1343 2569 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2693 a Fl(e)o(xception)20 b(to)f(be)g(thr)m(own)g(on)g(seek)h(err)m(or)o(s)f(for)g(k)o(e)n(ywor)m (ds.)p 0 TeXcolorgray 652 2800 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2818 a SDict begin H.S end 904 2818 a 0 0 1 TeXcolorrgb -18 x Fx(NoSuchK)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1477 2744 a SDict begin H.R end 1477 2744 a 1477 2800 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoSuchKeyword) cvn H.B /ANN pdfmark end 1477 2800 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2924 a Fl(e)o(xception)h(to)f(be)g(thr)m(own)g(on)g(seek)h(err)m(or)o (s)f(for)g(k)o(e)n(ywor)m(ds.)p 0.25 TeXcolorgray 515 3192 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 3249 a SDict begin H.S end 515 3249 a 515 3249 a SDict begin 12 H.A end 515 3249 a 515 3249 a SDict begin [ /View [/XYZ H.V] /Dest (section*.50) cvn H.B /DEST pdfmark end 515 3249 a 0 TeXcolorgray 0 TeXcolorgray 652 3380 a Fx(\225)p 0 TeXcolorgray 722 3380 a SDict begin H.S end 722 3380 a 0 TeXcolorgray 0 TeXcolorgray 722 3380 a SDict begin H.R end 722 3380 a 722 3380 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a9fed5392151d12c459e5be9e955e1587) cvn H.B /DEST pdfmark end 722 3380 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 3381 a SDict begin H.S end 743 3381 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 923 3326 a SDict begin H.R end 923 3326 a 923 3380 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9fed5392151d12c459e5be9e955e1587) cvn H.B /ANN pdfmark end 923 3380 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1167 3381 a SDict begin H.S end 1167 3381 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1347 3326 a SDict begin H.R end 1347 3326 a 1347 3380 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1347 3380 a 0 TeXcolorgray 21 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 3504 a Fl(copy)i(constructor)p 0 TeXcolorgray 652 3611 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(T)c Fg(>)p 0 0 1 TeXcolorrgb 722 3729 a SDict begin H.S end 722 3729 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1027 3655 a SDict begin H.R end 1027 3655 a 1027 3711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1027 3711 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1133 3729 a SDict begin H.S end 1133 3729 a 0 0 1 TeXcolorrgb -18 x Fx(addK)n(e)o(y)p 0 0 1 TeXcolorrgb 1388 3655 a SDict begin H.R end 1388 3655 a 1388 3711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) cvn H.B /ANN pdfmark end 1388 3711 a 0 TeXcolorgray 21 w Fx(\(const)i(String)h(&name,)f(T)i(v)n (al,)e(const)i(String)e(&comment\))p 0 TeXcolorgray 0 TeXcolorgray 840 3835 a Fl(cr)m(eate)h(a)f(ne)o(w)g(k)o(e)n(ywor)m(d)h (in)f(the)p 0 0 1 TeXcolorrgb 1690 3836 a SDict begin H.S end 1690 3836 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1852 3787 a SDict begin H.R end 1852 3787 a 1852 3835 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1852 3835 a 0 TeXcolorgray 18 w Fl(with)g(speci\002ed)h(value)f(and)h(comment)g(\002elds)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3942 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3960 a SDict begin H.S end 722 3960 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1027 3886 a SDict begin H.R end 1027 3886 a 1027 3942 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1027 3942 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1110 3960 a SDict begin H.S end 1110 3960 a 0 0 1 TeXcolorrgb -18 x Fx(addK)n(e)o(y)p 0 0 1 TeXcolorrgb 1365 3886 a SDict begin H.R end 1365 3886 a 1365 3942 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a64b11dc4b2e2d3e2cf636fbcb8a15fc2) cvn H.B /ANN pdfmark end 1365 3942 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1609 3960 a SDict begin H.S end 1609 3960 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1914 3886 a SDict begin H.R end 1914 3886 a 1914 3942 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1914 3942 a 0 TeXcolorgray 21 w Fp(\003)p Fx(inK)n(e)o(yw)o(ord\))p 0 TeXcolorgray 0 TeXcolorgray 840 4066 a Fl(cr)m(eate)g(a)f(copy)h(of)f (an)g(e)o(xisting)p 0 0 1 TeXcolorrgb 1679 4081 a SDict begin H.S end 1679 4081 a 0 0 1 TeXcolorrgb -15 x Fl(K)m(e)n(ywor)m(d)p 0 0 1 TeXcolorrgb 1941 4015 a SDict begin H.R end 1941 4015 a 1941 4066 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1941 4066 a 0 TeXcolorgray 19 w Fl(and)g(add)h(to)p 0 0 1 TeXcolorrgb 2298 4067 a SDict begin H.S end 2298 4067 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2460 4018 a SDict begin H.R end 2460 4018 a 2460 4066 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2460 4066 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 652 4173 a Fx(\225)p 0 TeXcolorgray 722 4173 a SDict begin H.S end 722 4173 a 0 TeXcolorgray 0 TeXcolorgray 722 4173 a SDict begin H.R end 722 4173 a 722 4173 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a18bd99b5d72ace7e7b353102eb80793a) cvn H.B /DEST pdfmark end 722 4173 a 0 TeXcolorgray 21 w Fx(long)p 0 0 1 TeXcolorrgb 911 4174 a SDict begin H.S end 911 4174 a 0 0 1 TeXcolorrgb -1 x Fx(ax)o(es)p 0 0 1 TeXcolorrgb 1058 4135 a SDict begin H.R end 1058 4135 a 1058 4173 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a18bd99b5d72ace7e7b353102eb80793a) cvn H.B /ANN pdfmark end 1058 4173 a 0 TeXcolorgray 20 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4297 a Fl(r)m(eturn)f(the)f(number)h(of)f(axes)g(in)g(the)p 0 0 1 TeXcolorrgb 1815 4298 a SDict begin H.S end 1815 4298 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1977 4249 a SDict begin H.R end 1977 4249 a 1977 4297 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1977 4297 a 0 TeXcolorgray 19 w Fl(data)g(section)h (\(always)f(2)g(for)g(tables\).)p 0 TeXcolorgray 652 4405 a Fx(\225)p 0 TeXcolorgray 41 w(long)p 0 0 1 TeXcolorrgb 891 4406 a SDict begin H.S end 891 4406 a 0 0 1 TeXcolorrgb -1 x Fx(axis)p 0 0 1 TeXcolorrgb 1024 4348 a SDict begin H.R end 1024 4348 a 1024 4405 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9e19372a1a01046420c6ba4393bb5674) cvn H.B /ANN pdfmark end 1024 4405 a 0 TeXcolorgray 21 w Fx(\(size_t)h(inde)o(x\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4529 a Fl(r)m(eturn)h(the)f(size)g (of)g(axis)g(number)m(ed)h(inde)o(x)f([)q(zer)m(o)g(based])q(.)p 0 TeXcolorgray 652 4636 a Fx(\225)p 0 TeXcolorgray 41 w(long)p 0 0 1 TeXcolorrgb 891 4654 a SDict begin H.S end 891 4654 a 0 0 1 TeXcolorrgb -18 x Fx(bitpix)p 0 0 1 TeXcolorrgb 1084 4580 a SDict begin H.R end 1084 4580 a 1084 4636 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 1084 4636 a 0 TeXcolorgray 21 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4760 a Fl(r)m(eturn)g(the)f(data)h(type)f(k)o(e)n(ywor)m(d.)p 0 TeXcolorgray 0 TeXcolorgray 652 4867 a Fx(\225)p 0 TeXcolorgray 722 4867 a SDict begin H.S end 722 4867 a 0 TeXcolorgray 0 TeXcolorgray 722 4867 a SDict begin H.R end 722 4867 a 722 4867 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a5d4af8d84676f20b1c79b785f1a22cde) cvn H.B /DEST pdfmark end 722 4867 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 4868 a SDict begin H.S end 981 4868 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1160 4813 a SDict begin H.R end 1160 4813 a 1160 4867 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1160 4867 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1243 4868 a SDict begin H.S end 1243 4868 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1423 4811 a SDict begin H.R end 1423 4811 a 1423 4867 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a5d4af8d84676f20b1c79b785f1a22cde) cvn H.B /ANN pdfmark end 1423 4867 a 0 TeXcolorgray 21 w Fx(\(FITSBase)h Fp(\003)p Fx(p\))g(const)g(=0)p 0 TeXcolorgray 0 TeXcolorgray 840 4991 a Fl(virtual)f(copy)h (constructor)-8 b(,)20 b(to)f(be)g(implemented)g(in)g(subclasses.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 115 120 TeXDict begin 115 119 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.115) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(115)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 722 523 a SDict begin H.S end 722 523 a 0 TeXcolorgray 0 TeXcolorgray 722 523 a SDict begin H.R end 722 523 a 722 523 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_aecb532b753cd3460568e49e64df19ee5) cvn H.B /DEST pdfmark end 722 523 a 0 TeXcolorgray 21 w Fx(const)20 b(string)g(&)p 0 0 1 TeXcolorrgb 1234 524 a SDict begin H.S end 1234 524 a 0 0 1 TeXcolorrgb -1 x Fx(comment)p 0 0 1 TeXcolorrgb 1543 476 a SDict begin H.R end 1543 476 a 1543 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_aecb532b753cd3460568e49e64df19ee5) cvn H.B /ANN pdfmark end 1543 523 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 647 a Fl(r)m(eturn)g(the)f(comment)h (string)f(pr)m(e)o(viously)h(r)m(ead)g(by)f(g)o(etComment\(\))p 0 TeXcolorgray 652 754 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 772 a SDict begin H.S end 889 772 a 0 0 1 TeXcolorrgb -18 x Fx(cop)o(yAllK)n(e)o(ys)p 0 0 1 TeXcolorrgb 1323 698 a SDict begin H.R end 1323 698 a 1323 754 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) cvn H.B /ANN pdfmark end 1323 754 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1567 755 a SDict begin H.S end 1567 755 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1747 700 a SDict begin H.R end 1747 700 a 1747 754 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1747 754 a 0 TeXcolorgray 21 w Fp(\003)p Fx(inHdu\))p 0 TeXcolorgray 0 TeXcolorgray 840 878 a Fl(copy)h(all)f(k)o(e)n(ys)g(fr)m(om)f(another)j(header)p 0 TeXcolorgray 652 985 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 1003 a SDict begin H.S end 889 1003 a 0 0 1 TeXcolorrgb -18 x Fx(deleteK)n(e)o(y)p 0 0 1 TeXcolorrgb 1222 929 a SDict begin H.R end 1222 929 a 1222 985 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_aece6e1d7e46ce3370578972a4aeb08ab) cvn H.B /ANN pdfmark end 1222 985 a 0 TeXcolorgray 21 w Fx(\(const)f(String)f(&doomed\))p 0 TeXcolorgray 0 TeXcolorgray 840 1109 a Fl(delete)h(a)f(k)o(e)n(ywor)m(d)h(fr)m(om)e (the)h(header)p 0 TeXcolorgray 0 TeXcolorgray 652 1217 a Fx(\225)p 0 TeXcolorgray 722 1217 a SDict begin H.S end 722 1217 a 0 TeXcolorgray 0 TeXcolorgray 722 1217 a SDict begin H.R end 722 1217 a 722 1217 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a37bec2db64600e489eb8efa8a001f73d) cvn H.B /DEST pdfmark end 722 1217 a 0 TeXcolorgray 21 w Fx(\002ts\002le)i Fp(\003)p 0 0 1 TeXcolorrgb 1034 1218 a SDict begin H.S end 1034 1218 a 0 0 1 TeXcolorrgb -1 x Fx(\002tsPointer)p 0 0 1 TeXcolorrgb 1375 1160 a SDict begin H.R end 1375 1160 a 1375 1217 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a37bec2db64600e489eb8efa8a001f73d) cvn H.B /ANN pdfmark end 1375 1217 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1340 a Fl(r)m(eturn)g(the)f(\002ts\002le)g(pointer)h(for)f(the)p 0 0 1 TeXcolorrgb 1801 1341 a SDict begin H.S end 1801 1341 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1950 1290 a SDict begin H.R end 1950 1290 a 1950 1340 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1950 1340 a 0 TeXcolorgray 19 w Fl(object)g(containing)h (the)p 0 0 1 TeXcolorrgb 2618 1341 a SDict begin H.S end 2618 1341 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2780 1292 a SDict begin H.R end 2780 1292 a 2780 1340 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2780 1340 a 0 TeXcolorgray 0 TeXcolorgray 652 1448 a Fx(\225)p 0 TeXcolorgray 41 w(std::pair)p Fu(<)g Fx(unsigned)e(long,)40 b(unsigned)19 b(long)g Fu(>)p 0 0 1 TeXcolorrgb 2184 1466 a SDict begin H.S end 2184 1466 a 0 0 1 TeXcolorrgb -18 x Fx(getChecksum)p 0 0 1 TeXcolorrgb 2636 1391 a SDict begin H.R end 2636 1391 a 2636 1448 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_abdfef60e183bb3f3ae0374fccdbc4e45) cvn H.B /ANN pdfmark end 2636 1448 a 0 TeXcolorgray 21 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1572 a Fl(compute)i(and)f(r)m(eturn)g(the)g(c)o(hec)o(ksum)g (values)g(for)g(the)p 0 0 1 TeXcolorrgb 2300 1573 a SDict begin H.S end 2300 1573 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2462 1524 a SDict begin H.R end 2462 1524 a 2462 1572 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2462 1572 a 0 TeXcolorgray 20 w Fl(without)g(cr)m(eating)g(or)g(modifying)840 1663 y(the)e(CHECKSUM/DATASUM)f(k)o(e)n(ywor)m(ds.)p 0 TeXcolorgray 652 1770 a Fx(\225)p 0 TeXcolorgray 41 w(const)i(String)g(&)p 0 0 1 TeXcolorrgb 1227 1788 a SDict begin H.S end 1227 1788 a 0 0 1 TeXcolorrgb -18 x Fx(getComments)p 0 0 1 TeXcolorrgb 1689 1714 a SDict begin H.R end 1689 1714 a 1689 1770 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a6604d7907f4f0353e2821ac6c2506c73) cvn H.B /ANN pdfmark end 1689 1770 a 0 TeXcolorgray 20 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1894 a Fl(r)m(ead)g(the)f(comments)h(fr)m(om)e(the)p 0 0 1 TeXcolorrgb 1687 1895 a SDict begin H.S end 1687 1895 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1849 1846 a SDict begin H.R end 1849 1846 a 1849 1894 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1849 1894 a 0 TeXcolorgray 19 w Fl(and)h(add)h(it)e(to)h(the)p 0 0 1 TeXcolorrgb 2376 1895 a SDict begin H.S end 2376 1895 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2526 1844 a SDict begin H.R end 2526 1844 a 2526 1894 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2526 1894 a 0 TeXcolorgray 18 w Fl(object.)p 0 TeXcolorgray 652 2001 a Fx(\225)p 0 TeXcolorgray 41 w(const)h(String)g(&)p 0 0 1 TeXcolorrgb 1227 2019 a SDict begin H.S end 1227 2019 a 0 0 1 TeXcolorrgb -18 x Fx(getHistory)p 0 0 1 TeXcolorrgb 1578 1945 a SDict begin H.R end 1578 1945 a 1578 2001 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) cvn H.B /ANN pdfmark end 1578 2001 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2125 a Fl(r)m(ead)g(the)f(history)h(information)f(fr)m (om)g(the)p 0 0 1 TeXcolorrgb 1968 2126 a SDict begin H.S end 1968 2126 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2129 2077 a SDict begin H.R end 2129 2077 a 2129 2125 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2129 2125 a 0 TeXcolorgray 19 w Fl(and)h(add)g(it)e(to)h(the)p 0 0 1 TeXcolorrgb 2657 2126 a SDict begin H.S end 2657 2126 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2806 2075 a SDict begin H.R end 2806 2075 a 2806 2125 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2806 2125 a 0 TeXcolorgray 19 w Fl(object.)p 0 TeXcolorgray 0 TeXcolorgray 652 2233 a Fx(\225)p 0 TeXcolorgray 722 2233 a SDict begin H.S end 722 2233 a 0 TeXcolorgray 0 TeXcolorgray 722 2233 a SDict begin H.R end 722 2233 a 722 2233 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a7acddc0c108bc9504a3a342b010ec9a1) cvn H.B /DEST pdfmark end 722 2233 a 0 TeXcolorgray 21 w Fx(const)h(string)g(&)p 0 0 1 TeXcolorrgb 1234 2251 a SDict begin H.S end 1234 2251 a 0 0 1 TeXcolorrgb -18 x Fx(history)p 0 0 1 TeXcolorrgb 1465 2176 a SDict begin H.R end 1465 2176 a 1465 2233 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a7acddc0c108bc9504a3a342b010ec9a1) cvn H.B /ANN pdfmark end 1465 2233 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2357 a Fl(r)m(eturn)g(the)f(history)g(string)g(pr)m (e)o(viously)h(r)m(ead)g(by)p 0 0 1 TeXcolorrgb 2141 2372 a SDict begin H.S end 2141 2372 a 0 0 1 TeXcolorrgb -15 x Fl(g)o(etHistory\(\))p 0 0 1 TeXcolorrgb 2505 2306 a SDict begin H.R end 2505 2306 a 2505 2357 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) cvn H.B /ANN pdfmark end 2505 2357 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 652 2464 a Fx(\225)p 0 TeXcolorgray 722 2464 a SDict begin H.S end 722 2464 a 0 TeXcolorgray 0 TeXcolorgray 722 2464 a SDict begin H.R end 722 2464 a 722 2464 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_ab8bf6e03b7460db9dc81c1e6c4bbb214) cvn H.B /DEST pdfmark end 722 2464 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 2465 a SDict begin H.S end 910 2465 a 0 0 1 TeXcolorrgb -1 x Fx(inde)o(x)p 0 0 1 TeXcolorrgb 1093 2408 a SDict begin H.R end 1093 2408 a 1093 2464 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_ab8bf6e03b7460db9dc81c1e6c4bbb214) cvn H.B /ANN pdfmark end 1093 2464 a 0 TeXcolorgray 21 w Fx(\(int)g(v)n (alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2588 a Fl(set)f(the)p 0 0 1 TeXcolorrgb 1052 2589 a SDict begin H.S end 1052 2589 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1214 2540 a SDict begin H.R end 1214 2540 a 1214 2588 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1214 2588 a 0 TeXcolorgray 19 w Fl(number)p 0 TeXcolorgray 0 TeXcolorgray 652 2695 a Fx(\225)p 0 TeXcolorgray 722 2695 a SDict begin H.S end 722 2695 a 0 TeXcolorgray 0 TeXcolorgray 722 2695 a SDict begin H.R end 722 2695 a 722 2695 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a111434a1e35e2453237f86b30b3f4a8d) cvn H.B /DEST pdfmark end 722 2695 a 0 TeXcolorgray 21 w Fx(int)p 0 0 1 TeXcolorrgb 851 2696 a SDict begin H.S end 851 2696 a 0 0 1 TeXcolorrgb -1 x Fx(inde)o(x)p 0 0 1 TeXcolorrgb 1035 2639 a SDict begin H.R end 1035 2639 a 1035 2695 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a111434a1e35e2453237f86b30b3f4a8d) cvn H.B /ANN pdfmark end 1035 2695 a 0 TeXcolorgray 20 w Fx(\(\))i(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2819 a Fl(r)m(eturn)f(the)p 0 0 1 TeXcolorrgb 1153 2820 a SDict begin H.S end 1153 2820 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1315 2771 a SDict begin H.R end 1315 2771 a 1315 2819 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1315 2819 a 0 TeXcolorgray 19 w Fl(number)p 0 TeXcolorgray 0 TeXcolorgray 652 2926 a Fx(\225)p 0 TeXcolorgray 722 2926 a SDict begin H.S end 722 2926 a 0 TeXcolorgray 0 TeXcolorgray 722 2926 a SDict begin H.R end 722 2926 a 722 2926 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a011149805ffb96031218739369863e17) cvn H.B /DEST pdfmark end 722 2926 a 0 TeXcolorgray 21 w Fx(std::map)p Fu(<)f Fx(String,)p 0 0 1 TeXcolorrgb 1359 2944 a SDict begin H.S end 1359 2944 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1664 2870 a SDict begin H.R end 1664 2870 a 1664 2926 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1664 2926 a 0 TeXcolorgray 20 w Fp(\003)i Fu(>)f Fx(&)p 0 0 1 TeXcolorrgb 1917 2944 a SDict begin H.S end 1917 2944 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yW)-7 b(ord)p 0 0 1 TeXcolorrgb 2217 2870 a SDict begin H.R end 2217 2870 a 2217 2926 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a011149805ffb96031218739369863e17) cvn H.B /ANN pdfmark end 2217 2926 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3050 a Fl(r)m(eturn)20 b(the)f(associative)h(arr)o(ay)f(containing)i(the)p 0 0 1 TeXcolorrgb 2136 3051 a SDict begin H.S end 2136 3051 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2298 3002 a SDict begin H.R end 2298 3002 a 2298 3050 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2298 3050 a 0 TeXcolorgray 18 w Fl(k)o(e)n(ywor)m(ds)f (so)f(far)g(r)m(ead.)p 0 TeXcolorgray 0 TeXcolorgray 652 3157 a Fx(\225)p 0 TeXcolorgray 722 3157 a SDict begin H.S end 722 3157 a 0 TeXcolorgray 0 TeXcolorgray 722 3157 a SDict begin H.R end 722 3157 a 722 3157 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_abb274465a32c564e884b69810161078c) cvn H.B /DEST pdfmark end 722 3157 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 3175 a SDict begin H.S end 743 3175 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1048 3101 a SDict begin H.R end 1048 3101 a 1048 3157 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1048 3157 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1154 3175 a SDict begin H.S end 1154 3175 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yW)-7 b(ord)p 0 0 1 TeXcolorrgb 1454 3101 a SDict begin H.R end 1454 3101 a 1454 3157 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_abb274465a32c564e884b69810161078c) cvn H.B /ANN pdfmark end 1454 3157 a 0 TeXcolorgray 21 w Fx(\(const)20 b(String)f(&k)o(e)o(yName\))p 0 TeXcolorgray 0 TeXcolorgray 840 3281 a Fl(r)m(eturn)h(a)f(\(pr)m(e)o(viously)h(r)m(ead\))g(k)o(e)n (ywor)m(d)g(fr)m(om)e(the)p 0 0 1 TeXcolorrgb 2160 3282 a SDict begin H.S end 2160 3282 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2322 3233 a SDict begin H.R end 2322 3233 a 2322 3281 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2322 3281 a 0 TeXcolorgray 19 w Fl(object.)p 0 TeXcolorgray 0 TeXcolorgray 652 3389 a Fx(\225)p 0 TeXcolorgray 722 3389 a SDict begin H.S end 722 3389 a 0 TeXcolorgray 0 TeXcolorgray 722 3389 a SDict begin H.R end 722 3389 a 722 3389 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a674875a76c3fb745b2b35303b42407cc) cvn H.B /DEST pdfmark end 722 3389 a 0 TeXcolorgray 21 w Fx(const)i(std::map)p Fu(<)f Fx(string,)p 0 0 1 TeXcolorrgb 1562 3407 a SDict begin H.S end 1562 3407 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1866 3332 a SDict begin H.R end 1866 3332 a 1866 3389 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1866 3389 a 0 TeXcolorgray 21 w Fp(\003)i Fu(>)f Fx(&)p 0 0 1 TeXcolorrgb 2120 3407 a SDict begin H.S end 2120 3407 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yW)-7 b(ord)p 0 0 1 TeXcolorrgb 2420 3332 a SDict begin H.R end 2420 3332 a 2420 3389 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a674875a76c3fb745b2b35303b42407cc) cvn H.B /ANN pdfmark end 2420 3389 a 0 TeXcolorgray 21 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3513 a Fl(r)m(eturn)27 b(the)e(associative)i(arr)o(ay)f(containing)h(the)p 0 0 1 TeXcolorrgb 2175 3514 a SDict begin H.S end 2175 3514 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2337 3464 a SDict begin H.R end 2337 3464 a 2337 3513 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2337 3513 a 0 TeXcolorgray 25 w Fl(K)m(e)n(ywor)m(ds)g (that)e(have)i(been)f(r)m(ead)h(so)840 3604 y(far)-8 b(.)p 0 TeXcolorgray 0 TeXcolorgray 652 3711 a Fx(\225)p 0 TeXcolorgray 722 3711 a SDict begin H.S end 722 3711 a 0 TeXcolorgray 0 TeXcolorgray 722 3711 a SDict begin H.R end 722 3711 a 722 3711 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_abd3add56e93046c3a5260f1d227b4892) cvn H.B /DEST pdfmark end 722 3711 a 0 TeXcolorgray 21 w Fx(const)p 0 0 1 TeXcolorrgb 939 3729 a SDict begin H.S end 939 3729 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1244 3655 a SDict begin H.R end 1244 3655 a 1244 3711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1244 3711 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1350 3729 a SDict begin H.S end 1350 3729 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yW)h(ord)p 0 0 1 TeXcolorrgb 1650 3655 a SDict begin H.R end 1650 3655 a 1650 3711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_abd3add56e93046c3a5260f1d227b4892) cvn H.B /ANN pdfmark end 1650 3711 a 0 TeXcolorgray 21 w Fx(\(const)20 b(string)f(&k)o(e)o (yname\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3835 a Fl(r)m(eturn)i(a)f(\(pr)m(e)o(viously)h(r)m(ead\))g(k)o(e)n (ywor)m(d)g(fr)m(om)e(the)p 0 0 1 TeXcolorrgb 2160 3836 a SDict begin H.S end 2160 3836 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2322 3787 a SDict begin H.R end 2322 3787 a 2322 3835 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2322 3835 a 0 TeXcolorgray 19 w Fl(object.)23 b(const)d(ver)o(sion)p 0 TeXcolorgray 652 3942 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(v)n(oid)p 0 0 1 TeXcolorrgb 1127 3943 a SDict begin H.S end 1127 3943 a 0 0 1 TeXcolorrgb -1 x Fx(mak)o(eThisCurrent)p 0 0 1 TeXcolorrgb 1707 3886 a SDict begin H.R end 1707 3886 a 1707 3942 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_af0bbec3fe5f6b41ff4a95feff6600d57) cvn H.B /ANN pdfmark end 1707 3942 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4066 a Fl(mo)o(ve)g(the)f(\002ts\002le)g(pointer)h(to)f(this)f (curr)m(ent)p 0 0 1 TeXcolorrgb 1997 4067 a SDict begin H.S end 1997 4067 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2159 4018 a SDict begin H.R end 2159 4018 a 2159 4066 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2159 4066 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 4173 a Fx(\225)p 0 TeXcolorgray 722 4173 a SDict begin H.S end 722 4173 a 0 TeXcolorgray 0 TeXcolorgray 722 4173 a SDict begin H.R end 722 4173 a 722 4173 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a0c4fa124e27d002de1044c1832be5942) cvn H.B /DEST pdfmark end 722 4173 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 4191 a SDict begin H.S end 911 4191 a 0 0 1 TeXcolorrgb -18 x Fx(operator!=)p 0 0 1 TeXcolorrgb 1263 4117 a SDict begin H.R end 1263 4117 a 1263 4173 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a0c4fa124e27d002de1044c1832be5942) cvn H.B /ANN pdfmark end 1263 4173 a 0 TeXcolorgray 20 w Fx(\(const)p 0 0 1 TeXcolorrgb 1507 4174 a SDict begin H.S end 1507 4174 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1687 4119 a SDict begin H.R end 1687 4119 a 1687 4173 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1687 4173 a 0 TeXcolorgray 21 w Fx(&right\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4297 a Fl(inequality)i(oper)o(ator)p 0 TeXcolorgray 0 TeXcolorgray 652 4405 a Fx(\225)p 0 TeXcolorgray 722 4405 a SDict begin H.S end 722 4405 a 0 TeXcolorgray 0 TeXcolorgray 722 4405 a SDict begin H.R end 722 4405 a 722 4405 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_ab574045dcdc383c9d2987850c640e0c1) cvn H.B /DEST pdfmark end 722 4405 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 4423 a SDict begin H.S end 911 4423 a 0 0 1 TeXcolorrgb -18 x Fx(operator==)p 0 0 1 TeXcolorrgb 1282 4358 a SDict begin H.R end 1282 4358 a 1282 4405 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_ab574045dcdc383c9d2987850c640e0c1) cvn H.B /ANN pdfmark end 1282 4405 a 0 TeXcolorgray 20 w Fx(\(const)p 0 0 1 TeXcolorrgb 1526 4406 a SDict begin H.S end 1526 4406 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1706 4351 a SDict begin H.R end 1706 4351 a 1706 4405 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1706 4405 a 0 TeXcolorgray 21 w Fx(&right\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4529 a Fl(equality)h(oper)o(ator)p 0 TeXcolorgray 0 TeXcolorgray 652 4636 a Fx(\225)p 0 TeXcolorgray 722 4636 a SDict begin H.S end 722 4636 a 0 TeXcolorgray 0 TeXcolorgray 722 4636 a SDict begin H.R end 722 4636 a 722 4636 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a3b547e893d364ebc570f2998a6b193bd) cvn H.B /DEST pdfmark end 722 4636 a 0 TeXcolorgray 21 w Fx(FITSBase)h Fp(\003)p 0 0 1 TeXcolorrgb 1158 4654 a SDict begin H.S end 1158 4654 a 0 0 1 TeXcolorrgb -18 x Fx(parent)p 0 0 1 TeXcolorrgb 1366 4589 a SDict begin H.R end 1366 4589 a 1366 4636 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a3b547e893d364ebc570f2998a6b193bd) cvn H.B /ANN pdfmark end 1366 4636 a 0 TeXcolorgray 20 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4760 a Fl(r)m(eturn)g(r)m(efer)m(ence)f(to)f(the)h (pointer)g(r)m(epr)m(esenting)h(the)f(FITSBase)e(object)i(containing)h (the)p 0 0 1 TeXcolorrgb 3217 4761 a SDict begin H.S end 3217 4761 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 3379 4712 a SDict begin H.R end 3379 4712 a 3379 4760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3379 4760 a 0 TeXcolorgray 0 TeXcolorgray 652 4867 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 4885 a SDict begin H.S end 889 4885 a 0 0 1 TeXcolorrgb -18 x Fx(readAllK)n(e)o(ys)p 0 0 1 TeXcolorrgb 1305 4811 a SDict begin H.R end 1305 4811 a 1305 4867 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) cvn H.B /ANN pdfmark end 1305 4867 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4991 a Fl(r)m(ead)g(all)f(of)g(the)g(k)o(e)n(ys)g(in)g(the)g(header)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 116 121 TeXDict begin 116 120 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.116) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(116)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(T)c Fg(>)722 623 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 641 a SDict begin H.S end 889 641 a 0 0 1 TeXcolorrgb -18 x Fx(readK)n(e)o(y)p 0 0 1 TeXcolorrgb 1167 566 a SDict begin H.R end 1167 566 a 1167 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a8c9d28570c1a7f8fc09cc10398bd6080) cvn H.B /ANN pdfmark end 1167 623 a 0 TeXcolorgray 21 w Fx(\(const)i(String)h(&k)o(e)o(yName,)e(T)j(&v)n(al\))p 0 TeXcolorgray 0 TeXcolorgray 840 747 a Fl(r)m(ead)28 b(a)e(k)o(e)n(ywor)m(d)h(of)f(speci\002ed)i(type)e(fr)m(om)g(the)g (header)i(of)e(a)g(disk)p 0 0 1 TeXcolorrgb 2668 748 a SDict begin H.S end 2668 748 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2817 697 a SDict begin H.R end 2817 697 a 2817 747 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2817 747 a 0 TeXcolorgray 26 w Fl(\002le)g(and)h(r)m(eturn)g(its)840 839 y(value)o(.)p 0 TeXcolorgray 652 946 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)21 b(T)c Fg(>)722 1046 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 1064 a SDict begin H.S end 889 1064 a 0 0 1 TeXcolorrgb -18 x Fx(readK)n(e)o(ys)p 0 0 1 TeXcolorrgb 1199 990 a SDict begin H.R end 1199 990 a 1199 1046 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a18f7273134f1a0428f8d565067785619) cvn H.B /ANN pdfmark end 1199 1046 a 0 TeXcolorgray 21 w Fx(\(std::v)o(ector)p Fu(<)h Fx(String)i Fu(>)g Fx(&k)o(e)o(yNames,)f(std::v)o(ector)p Fu(<)f Fx(T)j Fu(>)f Fx(&v)n(als\))p 0 TeXcolorgray 0 TeXcolorgray 840 1171 a Fl(r)m(ead)h(a)e(set)g(of)h(speci\002ed)g(k)o(e)n(ywor)m(ds) h(of)e(the)h(same)f(data)h(type)g(fr)m(om)f(the)h(header)g(of)f(a)h (disk)p 0 0 1 TeXcolorrgb 3230 1172 a SDict begin H.S end 3230 1172 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 3379 1120 a SDict begin H.R end 3379 1120 a 3379 1171 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 1171 a 0 TeXcolorgray 840 1262 a Fl(\002le)f(and)h(r)m(eturn)g(their)f(values)p 0 TeXcolorgray 0 TeXcolorgray 652 1370 a Fx(\225)p 0 TeXcolorgray 722 1370 a SDict begin H.S end 722 1370 a 0 TeXcolorgray 0 TeXcolorgray 722 1370 a SDict begin H.R end 722 1370 a 722 1370 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_af1ffd58e00cd8f3a903976df8f91bc0a) cvn H.B /DEST pdfmark end 722 1370 a 0 TeXcolorgray 21 w Fx(virtual)h(double)p 0 0 1 TeXcolorrgb 1227 1371 a SDict begin H.S end 1227 1371 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1393 1314 a SDict begin H.R end 1393 1314 a 1393 1370 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_af1ffd58e00cd8f3a903976df8f91bc0a) cvn H.B /ANN pdfmark end 1393 1370 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1494 a Fl(r)m(eturn)g(the)f(BSCALE)e(k)o(e)n(ywor)m (d)k(value)p 0 TeXcolorgray 652 1602 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)f(v)n(oid)p 0 0 1 TeXcolorrgb 1127 1603 a SDict begin H.S end 1127 1603 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1292 1546 a SDict begin H.R end 1292 1546 a 1292 1602 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) cvn H.B /ANN pdfmark end 1292 1602 a 0 TeXcolorgray 21 w Fx(\(double)f(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 1727 a Fl(set)g(the)g(BSCALE)e(k)o(e) n(ywor)m(d)k(value)e(for)g(ima)o(g)o(es)h(\(see)f(warning)h(for)e(ima)o (g)o(es)i(of)f(int)g(type\))p 0 TeXcolorgray 652 1835 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 1853 a SDict begin H.S end 889 1853 a 0 0 1 TeXcolorrgb -18 x Fx(suppressScaling)p 0 0 1 TeXcolorrgb 1424 1778 a SDict begin H.R end 1424 1778 a 1424 1835 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a6bd0d7eb236211267de480c595b5b631) cvn H.B /ANN pdfmark end 1424 1835 a 0 TeXcolorgray 21 w Fx(\(bool)g(toggle=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 1959 a Fl(turn)h(of)o(f)e(ima)o(g)o (e)i(scaling)f(r)m(e)m(gar)m(dless)i(of)e(the)g(BSCALE)e(and)j(BZERO)d (k)o(e)n(ywor)m(d)j(values)p 0 TeXcolorgray 652 2067 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 2085 a SDict begin H.S end 889 2085 a 0 0 1 TeXcolorrgb -18 x Fx(updateChecksum)p 0 0 1 TeXcolorrgb 1461 2011 a SDict begin H.R end 1461 2011 a 1461 2067 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a56ce9ed0864e07a7ef380b18e3be7a79) cvn H.B /ANN pdfmark end 1461 2067 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2192 a Fl(update)g(the)f(CHECKSUM)g(k)o(e)n(ywor)m (d)h(value)o(,)f(assuming)h(DATASUM)e(e)o(xists)h(and)g(is)g(corr)m (ect)p 0 TeXcolorgray 652 2300 a Fx(\225)p 0 TeXcolorgray 41 w(std::pair)p Fu(<)h Fx(int,)g(int)g Fu(>)p 0 0 1 TeXcolorrgb 1403 2318 a SDict begin H.S end 1403 2318 a 0 0 1 TeXcolorrgb -18 x Fx(v)o(erifyChecksum)p 0 0 1 TeXcolorrgb 1950 2243 a SDict begin H.R end 1950 2243 a 1950 2300 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_adc1a7ba06b6a113010334320e5268dc6) cvn H.B /ANN pdfmark end 1950 2300 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2424 a Fl(verify)h(the)p 0 0 1 TeXcolorrgb 1143 2425 a SDict begin H.S end 1143 2425 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1305 2376 a SDict begin H.R end 1305 2376 a 1305 2424 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1305 2424 a 0 TeXcolorgray 20 w Fl(by)g(computing)h(the)f(c)o(hec)o(ksums)g(and)h(comparing)g (them)f(with)f(the)h(CHECK-)840 2516 y(SUM/DATASUM)e(k)o(e)n(ywor)m(ds) p 0 TeXcolorgray 652 2623 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 2624 a SDict begin H.S end 889 2624 a 0 0 1 TeXcolorrgb -1 x Fx(writeChecksum)p 0 0 1 TeXcolorrgb 1410 2567 a SDict begin H.R end 1410 2567 a 1410 2623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) cvn H.B /ANN pdfmark end 1410 2623 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2748 a Fl(compute)h(and)g(write)e(the)h(DATASUM)f(and)i(CHECKSUM)e(k)o(e)n (ywor)m(d)i(values)p 0 TeXcolorgray 652 2856 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 2857 a SDict begin H.S end 889 2857 a 0 0 1 TeXcolorrgb -1 x Fx(writeComment)p 0 0 1 TeXcolorrgb 1387 2800 a SDict begin H.R end 1387 2800 a 1387 2856 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a05843eda3c863cf9b580a409b3067c55) cvn H.B /ANN pdfmark end 1387 2856 a 0 TeXcolorgray 21 w Fx(\(const)g(String)f (&comment="Generic)e(Comment"\))p 0 TeXcolorgray 0 TeXcolorgray 840 2980 a Fl(write)i(a)g(comment)g(string)o(.)p 0 TeXcolorgray 0 TeXcolorgray 652 3088 a Fx(\225)p 0 TeXcolorgray 722 3088 a SDict begin H.S end 722 3088 a 0 TeXcolorgray 0 TeXcolorgray 722 3088 a SDict begin H.R end 722 3088 a 722 3088 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a4c36394bfe734921404a6882e82be4db) cvn H.B /DEST pdfmark end 722 3088 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 3089 a SDict begin H.S end 910 3089 a 0 0 1 TeXcolorrgb -1 x Fx(writeDate)p 0 0 1 TeXcolorrgb 1237 3032 a SDict begin H.R end 1237 3032 a 1237 3088 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a4c36394bfe734921404a6882e82be4db) cvn H.B /ANN pdfmark end 1237 3088 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3213 a Fl(write)g(a)g(date)g(string)g(to)g Fc(\003)p Fl(this.)p 0 TeXcolorgray 652 3321 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 3339 a SDict begin H.S end 889 3339 a 0 0 1 TeXcolorrgb -18 x Fx(writeHistory)p 0 0 1 TeXcolorrgb 1309 3265 a SDict begin H.R end 1309 3265 a 1309 3321 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_ae33b25a2d52e0e75e13d277e3327d03f) cvn H.B /ANN pdfmark end 1309 3321 a 0 TeXcolorgray 20 w Fx(\(const)h(String)g(&history="Generic)d(History)j(String"\))p 0 TeXcolorgray 0 TeXcolorgray 840 3445 a Fl(write)f(a)g(history)g (string)o(.)p 0 TeXcolorgray 0 TeXcolorgray 652 3553 a Fx(\225)p 0 TeXcolorgray 722 3553 a SDict begin H.S end 722 3553 a 0 TeXcolorgray 0 TeXcolorgray 722 3553 a SDict begin H.R end 722 3553 a 722 3553 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a23317074fa7362c7522c01f3f1756618) cvn H.B /DEST pdfmark end 722 3553 a 0 TeXcolorgray 21 w Fx(virtual)h(double)p 0 0 1 TeXcolorrgb 1227 3554 a SDict begin H.S end 1227 3554 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1370 3515 a SDict begin H.R end 1370 3515 a 1370 3553 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a23317074fa7362c7522c01f3f1756618) cvn H.B /ANN pdfmark end 1370 3553 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3678 a Fl(r)m(eturn)g(the)f(BZERO)e(k)o(e)n(ywor)m (d)j(value)p 0 TeXcolorgray 652 3786 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(v)n(oid)p 0 0 1 TeXcolorrgb 1127 3787 a SDict begin H.S end 1127 3787 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1269 3748 a SDict begin H.R end 1269 3748 a 1269 3786 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) cvn H.B /ANN pdfmark end 1269 3786 a 0 TeXcolorgray 21 w Fx(\(double)f(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3910 a Fl(set)g(the)g(BZERO)e(k)o(e)n (ywor)m(d)j(value)g(for)f(ima)o(g)o(es)h(\(see)f(warning)g(for)g(ima)o (g)o(es)h(of)f(int)f(type\))p 0.25 TeXcolorgray 515 4179 a Fo(Static)g(Pub)o(lic)g(Member)g(Functions)p 0 TeXcolorgray 515 4236 a SDict begin H.S end 515 4236 a 515 4236 a SDict begin 12 H.A end 515 4236 a 515 4236 a SDict begin [ /View [/XYZ H.V] /Dest (section*.51) cvn H.B /DEST pdfmark end 515 4236 a 0 TeXcolorgray 652 4367 a Fx(\225)p 0 TeXcolorgray 41 w(static)j(std::v)o(ector)p Fu(<)e Fx(int)h Fu(>)p 0 0 1 TeXcolorrgb 1547 4385 a SDict begin H.S end 1547 4385 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yw)o(ordCate)o(gories)p 0 0 1 TeXcolorrgb 2188 4311 a SDict begin H.R end 2188 4311 a 2188 4367 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) cvn H.B /ANN pdfmark end 2188 4367 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4492 a Fl(r)m(eturn)g(the)f(enumer)o(ated)h(k)o(e)n(ywor)m(d)g(cate)m (gories)g(used)g(by)p 0 0 1 TeXcolorrgb 2361 4507 a SDict begin H.S end 2361 4507 a 0 0 1 TeXcolorrgb -15 x Fl(r)m(eadAllK)m(e)n(ys\(\))p 0 0 1 TeXcolorrgb 2773 4441 a SDict begin H.R end 2773 4441 a 2773 4492 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) cvn H.B /ANN pdfmark end 2773 4492 a 0 TeXcolorgray 19 w Fl(and)p 0 0 1 TeXcolorrgb 2922 4507 a SDict begin H.S end 2922 4507 a 0 0 1 TeXcolorrgb -15 x Fl(copyAllK)m(e)n (ys\(\))p 0 0 1 TeXcolorrgb 3341 4441 a SDict begin H.R end 3341 4441 a 3341 4492 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) cvn H.B /ANN pdfmark end 3341 4492 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 117 122 TeXDict begin 117 121 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.117) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(117)p 515 236 2865 4 v 0 TeXcolorgray 0.25 TeXcolorgray 515 523 a Fo(Pr)o(otected)18 b(Member)g(Functions)p 0 TeXcolorgray 515 580 a SDict begin H.S end 515 580 a 515 580 a SDict begin 12 H.A end 515 580 a 515 580 a SDict begin [ /View [/XYZ H.V] /Dest (section*.52) cvn H.B /DEST pdfmark end 515 580 a 0 TeXcolorgray 0 TeXcolorgray 652 706 a Fx(\225)p 0 TeXcolorgray 722 706 a SDict begin H.S end 722 706 a 0 TeXcolorgray 0 TeXcolorgray 722 706 a SDict begin H.R end 722 706 a 722 706 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a0938122b95fae87a5d8abd70d2faf664) cvn H.B /DEST pdfmark end 722 706 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 707 a SDict begin H.S end 743 707 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 923 652 a SDict begin H.R end 923 652 a 923 706 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a0938122b95fae87a5d8abd70d2faf664) cvn H.B /ANN pdfmark end 923 706 a 0 TeXcolorgray 21 w Fx(\(FITSBase)i Fp(\003)p Fx(p=0\))p 0 TeXcolorgray 0 TeXcolorgray 840 824 a Fl(default)g (constructor)-8 b(,)19 b(called)h(by)p 0 0 1 TeXcolorrgb 1731 825 a SDict begin H.S end 1731 825 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1893 776 a SDict begin H.R end 1893 776 a 1893 824 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1893 824 a 0 TeXcolorgray 18 w Fl(subclasses)g(that)f(r)m(ead)h(fr)m(om)p 0 0 1 TeXcolorrgb 2690 825 a SDict begin H.S end 2690 825 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 2839 774 a SDict begin H.R end 2839 774 a 2839 824 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2839 824 a 0 TeXcolorgray 19 w Fl(\002les.)p 0 TeXcolorgray 0 TeXcolorgray 652 926 a Fx(\225)p 0 TeXcolorgray 722 926 a SDict begin H.S end 722 926 a 0 TeXcolorgray 0 TeXcolorgray 722 926 a SDict begin H.R end 722 926 a 722 926 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a84de5ab34fba6c478e9365937d826346) cvn H.B /DEST pdfmark end 722 926 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 927 a SDict begin H.S end 743 927 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 923 872 a SDict begin H.R end 923 872 a 923 926 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a84de5ab34fba6c478e9365937d826346) cvn H.B /ANN pdfmark end 923 926 a 0 TeXcolorgray 21 w Fx(\(FITSBase)g Fp(\003)p Fx(p,)g(int)g(bitpix,)f(int)i(naxis,)f(const)g(std::v)o(ector)p Fu(<)e Fx(long)h Fu(>)i Fx(&ax)o(es\))p 0 TeXcolorgray 0 TeXcolorgray 840 1045 a Fl(constructor)d(for)f(cr)m(eating)g(ne)o(w)p 0 0 1 TeXcolorrgb 1703 1046 a SDict begin H.S end 1703 1046 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1864 996 a SDict begin H.R end 1864 996 a 1864 1045 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1864 1045 a 0 TeXcolorgray 17 w Fl(objects,)g(called)g(by)p 0 0 1 TeXcolorrgb 2413 1046 a SDict begin H.S end 2413 1046 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2575 996 a SDict begin H.R end 2575 996 a 2575 1045 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2575 1045 a 0 TeXcolorgray 16 w Fl(subclasses)h(writing)e (to)p 0 0 1 TeXcolorrgb 3230 1046 a SDict begin H.S end 3230 1046 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 3379 994 a SDict begin H.R end 3379 994 a 3379 1045 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 1045 a 0 TeXcolorgray 840 1136 a Fl(\002les.)p 0 TeXcolorgray 0 TeXcolorgray 652 1238 a Fx(\225)p 0 TeXcolorgray 722 1238 a SDict begin H.S end 722 1238 a 0 TeXcolorgray 0 TeXcolorgray 722 1238 a SDict begin H.R end 722 1238 a 722 1238 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_ad660a6aee62165b81eb71b85447ab93e) cvn H.B /DEST pdfmark end 722 1238 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 1239 a SDict begin H.S end 981 1239 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(HDU)p 0 0 1 TeXcolorrgb 1225 1184 a SDict begin H.R end 1225 1184 a 1225 1238 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_ad660a6aee62165b81eb71b85447ab93e) cvn H.B /ANN pdfmark end 1225 1238 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1356 a Fl(destructor)p 0 TeXcolorgray 0 TeXcolorgray 652 1458 a Fx(\225)p 0 TeXcolorgray 722 1458 a SDict begin H.S end 722 1458 a 0 TeXcolorgray 0 TeXcolorgray 722 1458 a SDict begin H.R end 722 1458 a 722 1458 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a2e02db0df89451736c7863963170a081) cvn H.B /DEST pdfmark end 722 1458 a 0 TeXcolorgray 21 w Fx(std::v)o(ector)p Fu(<)j Fx(long)g Fu(>)h Fx(&)p 0 0 1 TeXcolorrgb 1517 1459 a SDict begin H.S end 1517 1459 a 0 0 1 TeXcolorrgb -1 x Fx(nax)o(es)p 0 0 1 TeXcolorrgb 1704 1420 a SDict begin H.R end 1704 1420 a 1704 1458 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2e02db0df89451736c7863963170a081) cvn H.B /ANN pdfmark end 1704 1458 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1576 a Fl(r)m(eturn)g(the)p 0 0 1 TeXcolorrgb 1153 1577 a SDict begin H.S end 1153 1577 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1315 1528 a SDict begin H.R end 1315 1528 a 1315 1576 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1315 1576 a 0 TeXcolorgray 19 w Fl(data)f(axis)g(arr)o (ay)l(.)515 1708 y SDict begin H.S end 515 1708 a 515 1708 a SDict begin 12 H.A end 515 1708 a 515 1708 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.32.1) cvn H.B /DEST pdfmark end 515 1708 a 0.25 TeXcolorgray 131 x Fo(24.32.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2042 a Fx(Base)j(class)g(for)f(all)p 0 0 1 TeXcolorrgb 1100 2043 a SDict begin H.S end 1100 2043 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1280 1988 a SDict begin H.R end 1280 1988 a 1280 2042 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1280 2042 a 0 TeXcolorgray 21 w Fx([Header)n(-Data)f(Unit])h(objects.)p 0 0 1 TeXcolorrgb 515 2190 a SDict begin H.S end 515 2190 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 695 2135 a SDict begin H.R end 695 2135 a 695 2189 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 695 2189 a 0 TeXcolorgray 16 w Fx(objects)15 b(in)p 0 0 1 TeXcolorrgb 1043 2190 a SDict begin H.S end 1043 2190 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1255 2133 a SDict begin H.R end 1255 2133 a 1255 2189 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1255 2189 a 0 TeXcolorgray 16 w Fx(are)h(either)p 0 0 1 TeXcolorrgb 1594 2190 a SDict begin H.S end 1594 2190 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1820 2135 a SDict begin H.R end 1820 2135 a 1820 2189 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1820 2189 a 0 TeXcolorgray 16 w Fx(\(Primary)p 0 0 1 TeXcolorrgb 2148 2190 a SDict begin H.S end 2148 2190 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2327 2135 a SDict begin H.R end 2327 2135 a 2327 2189 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2327 2189 a 0 TeXcolorgray 17 w Fx(objects\))f(or)p 0 0 1 TeXcolorrgb 2708 2190 a SDict begin H.S end 2708 2190 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 3003 2135 a SDict begin H.R end 3003 2135 a 3003 2189 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 3003 2189 a 0 TeXcolorgray 16 w Fx(\(Extension)p 0 0 1 TeXcolorrgb 515 2290 a SDict begin H.S end 515 2290 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 695 2235 a SDict begin H.R end 695 2235 a 695 2289 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 695 2289 a 0 TeXcolorgray Fx(\))i(objects.)24 b(F)o(ollo)n(wing)16 b(the)i(beha)n(vior)-5 b(.)23 b(ExtHDUs)17 b(are)h(further)e (subclassed)h(into)p 0 0 1 TeXcolorrgb 3056 2307 a SDict begin H.S end 3056 2307 a 0 0 1 TeXcolorrgb -18 x Fx(ImageExt)p 0 0 1 TeXcolorrgb 3379 2235 a SDict begin H.R end 3379 2235 a 3379 2289 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 3379 2289 a 0 TeXcolorgray 515 2388 a Fx(or)p 0 0 1 TeXcolorrgb 605 2389 a SDict begin H.S end 605 2389 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 787 2332 a SDict begin H.R end 787 2332 a 787 2388 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 787 2388 a 0 TeXcolorgray 21 w Fx(objects,)20 b(which)f(are)h(\002nally)p 0 0 1 TeXcolorrgb 1663 2389 a SDict begin H.S end 1663 2389 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 2021 2332 a SDict begin H.R end 2021 2332 a 2021 2388 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 2021 2388 a 0 TeXcolorgray 21 w Fx(or)p 0 0 1 TeXcolorrgb 2132 2389 a SDict begin H.S end 2132 2389 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)g(able)p 0 0 1 TeXcolorrgb 2434 2332 a SDict begin H.R end 2434 2332 a 2434 2388 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 2434 2388 a 0 TeXcolorgray 21 w Fx(objects.)515 2535 y(HDU')i(s)17 b(public)f(interf)o(ace)g(gi)n (v)o(es)g(access)h(to)g(properties)f(that)g(are)h(common)e(to)i(all)g (HDUs,)h(lar)o(gely)515 2635 y(required)e(k)o(e)o(yw)o(ords,)h(and)g (functions)g(that)h(are)g(common)e(to)j(all)f(HDUs,)h(principally)e (the)h(manip-)515 2734 y(ulation)h(of)h(k)o(e)o(yw)o(ords)f(and)g (their)h(v)n(alues.)515 2881 y(HDUs)f(must)f(be)g(constructed)e(by)i (HDUCreator)f(objects)h(which)g(are)g(called)g(by)p 0 0 1 TeXcolorrgb 2888 2882 a SDict begin H.S end 2888 2882 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3058 2825 a SDict begin H.R end 3058 2825 a 3058 2881 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3058 2881 a 0 TeXcolorgray 19 w Fx(methods.)515 2981 y(Each)p 0 0 1 TeXcolorrgb 707 2982 a SDict begin H.S end 707 2982 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 887 2927 a SDict begin H.R end 887 2927 a 887 2981 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 887 2981 a 0 TeXcolorgray 27 w Fx(has)26 b(an)h(embedded)c(pointer)i(to)i(a)f(FITSBase)h(object,) g(which)f(is)h(pri)n(v)n(ate)e(to)p 0 0 1 TeXcolorrgb 3208 2982 a SDict begin H.S end 3208 2982 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 2925 a SDict begin H.R end 3379 2925 a 3379 2981 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 2981 a 0 TeXcolorgray 515 3080 a Fx([)o(FITSBase)e(is)g(a)f (pointer)e(encapsulating)g(the)i(resources)f(of)p 0 0 1 TeXcolorrgb 2322 3081 a SDict begin H.S end 2322 3081 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2492 3024 a SDict begin H.R end 2492 3024 a 2492 3080 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2492 3080 a 0 TeXcolorgray Fx(.)31 b(F)o(or)21 b(details)h(of)g(this)g(coding)515 3180 y(idiom)d(see)i(Exceptional)d (C++)j(by)f(Herb)g(Sutter)g(\(2000\))e(and)h(references)g(therein])n(.) 515 3314 y SDict begin H.S end 515 3314 a 515 3314 a SDict begin 12 H.A end 515 3314 a 515 3314 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.32.2) cvn H.B /DEST pdfmark end 515 3314 a 0.25 TeXcolorgray 129 x Fo(24.32.2)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3646 a SDict begin H.S end 515 3646 a 0 TeXcolorgray 0 TeXcolorgray 515 3646 a SDict begin H.R end 515 3646 a 515 3646 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) cvn H.B /DEST pdfmark end 515 3646 a 0 TeXcolorgray 515 3683 a SDict begin H.S end 515 3683 a 515 3683 a SDict begin 12 H.A end 515 3683 a 515 3683 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.1) cvn H.B /DEST pdfmark end 515 3683 a 0.25 TeXcolorgray 147 x Fo(24.32.2.1)75 b(template)p Fu(<)p Fo(typename)21 b(T)c Fu(>)g Fy(K)n(eyw)o(ord)e Fo(&)j(CC\002ts::HDU::ad)o(dK)o(e)o(y)k(\()35 b(const)18 b(String)h(&)e Fk(name)q(,)35 b Fo(T)845 3930 y Fk(v)o(alue)q(,)f Fo(const)18 b(String)h(&)e Fk(comment)36 b Fo(\))p 0 TeXcolorgray 515 4114 a Fx(create)20 b(a)g(ne)n(w)g(k)o(e)o(yw)o(ord)f (in)h(the)p 0 0 1 TeXcolorrgb 1464 4115 a SDict begin H.S end 1464 4115 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1644 4060 a SDict begin H.R end 1644 4060 a 1644 4114 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1644 4114 a 0 TeXcolorgray 21 w Fx(with)g(speci\002ed)g(v)n(alue)g(and)f(comment)g(\002elds)515 4261 y(The)29 b(function)f(returns)h(a)i(reference)d(to)i(k)o(e)o(yw)o (ord)e(object)h(just)h(created.)53 b(If)30 b(a)g(k)o(e)o(yw)o(ord)e (with)515 4360 y(this)e(name)f(already)g(e)o(xists,)i(it)g(will)f(be)g (o)o(v)o(erwritten.)40 b(Note)25 b(that)h(this)h(is)f(mostly)g (intended)e(for)515 4460 y(adding)d(user)n(-de\002ned)g(k)o(e)o(yw)o (ords.)30 b(It)23 b(should)e(not)i(be)f(used)g(to)h(add)f(k)o(e)o(yw)o (ords)f(for)h(which)g(there)515 4560 y(are)16 b(already)g(speci\002c)p 0 0 1 TeXcolorrgb 1166 4561 a SDict begin H.S end 1166 4561 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1346 4506 a SDict begin H.R end 1346 4506 a 1346 4560 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1346 4560 a 0 TeXcolorgray 17 w Fx(functions,)g(such)g (as)i(scaling)e(or)g(checksum.)23 b(Nor)16 b(should)g(it)h(be)g(used) 515 4659 y(for)i(image)g(or)h(column)e(structural)h(k)o(e)o(yw)o(ords,) f(such)i(as)g(BITPIX,)g(NAXIS,)g(TFORMn,)g(etc.)25 b(As)515 4759 y(a)18 b(general)g(rule,)g(it)h(is)g(best)g(to)f(use)h(this)f(for) g(k)o(e)o(yw)o(ords)f(belonging)f(to)i(the)g(same)h(cate)o(gories)e (listed)515 4859 y(in)j(the)p 0 0 1 TeXcolorrgb 722 4877 a SDict begin H.S end 722 4877 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yw)o(ordCate)o (gories\(\))p 0 0 1 TeXcolorrgb 1419 4802 a SDict begin H.R end 1419 4802 a 1419 4859 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) cvn H.B /ANN pdfmark end 1419 4859 a 0 TeXcolorgray 21 w Fx(function.)515 5005 y(P)o(arameters:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 118 123 TeXDict begin 118 122 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.118) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(118)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.73) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 796 609 a Ft(name)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 60 w Fx(\(String\))19 b(The)h(k)o(e)o(yw)o(ord)e(name)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 4 100 v 0 TeXcolorgray 796 712 a Ft(value)p 0.5 TeXcolorgray 1005 742 V 0 TeXcolorgray 60 w Fx(\(Recommended)f(T)k(=)f(String,)g(double,)e(std::comple)o(x)p Fu(<)p Fx(\003oat)p Fu(>)p Fx(,)f(int,)j(or)g(bool)p 0.5 TeXcolorgray 3400 742 V 0 TeXcolorgray 0.5 TeXcolorgray 515 745 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 V 0 TeXcolorgray 0.5 TeXcolorgray 515 845 4 100 v 0 TeXcolorgray 677 815 a Ft(comment)p 0.5 TeXcolorgray 1005 845 V 0 TeXcolorgray 59 w Fx(\(String\))f(the)h(k)o(e)o(yw)o(ord)e (v)n(alue)p 0.5 TeXcolorgray 3400 845 V 0 TeXcolorgray 0.5 TeXcolorgray 515 848 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 848 V 0 TeXcolorgray 515 1078 a(It)i(is)h(possible)f (to)g(create)g(a)h(k)o(e)o(yw)o(ord)d(with)j(a)f(v)n(alue)g(of)g(an)o (y)f(of)h(the)g(allo)n(wed)g(data)g(types)g(in)g(\002tsio)515 1177 y(\(see)g(the)h(c\002tsio)f(manual)g(section)g(4.3\).)k(Ho)n(we)n (v)o(er)19 b(one)g(should)h(be)g(a)o(w)o(are)g(that)g(if)h(this)f(k)o (e)o(yw)o(ord)515 1277 y(v)n(alue)k(is)h(read)f(in)g(from)g(the)g (\002le)i(at)f(a)f(later)h(time,)g(it)h(will)f(be)f(stored)g(in)h(a)g (templated)p 0 0 1 TeXcolorrgb 3074 1295 a SDict begin H.S end 3074 1295 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 3379 1221 a SDict begin H.R end 3379 1221 a 3379 1277 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 3379 1277 a 0 TeXcolorgray 515 1377 a Fx(subclass)d(\(K)n(e)o(yData)p Fu(<)p Fx(T)p Fu(>)p Fx(\))d(where)i(T)h(will)g(be)g(one)f(of)g(the)h (recommended)d(types)i(listed)h(abo)o(v)o(e.)515 1476 y(Also)e(see)p 0 0 1 TeXcolorrgb 819 1494 a SDict begin H.S end 819 1494 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord::v)n(alue)p 0 0 1 TeXcolorrgb 1348 1420 a SDict begin H.R end 1348 1420 a 1348 1476 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) cvn H.B /ANN pdfmark end 1348 1476 a 0 TeXcolorgray 21 w Fx(\(T&)f(v)n(al\))h(for)g(more)f (details.)p 0 TeXcolorgray 2252 1476 a SDict begin H.S end 2252 1476 a 0 TeXcolorgray 0 TeXcolorgray 2252 1476 a SDict begin H.R end 2252 1476 a 2252 1476 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a64b11dc4b2e2d3e2cf636fbcb8a15fc2) cvn H.B /DEST pdfmark end 2252 1476 a 0 TeXcolorgray 515 1532 a SDict begin H.S end 515 1532 a 515 1532 a SDict begin 12 H.A end 515 1532 a 515 1532 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.2) cvn H.B /DEST pdfmark end 515 1532 a 0.25 TeXcolorgray 129 x Fo(24.32.2.2)75 b Fy(K)n(eyw)o(ord)16 b Fp(\003)g Fo(CC\002ts::HDU::ad)o(dK)o(e)o(y)23 b(\()34 b(const)19 b Fy(K)n(eyw)o(ord)c Fp(\003)i Fk(inK)o(e)o(yw)o(or)o(d)34 b Fo(\))p 0 TeXcolorgray 515 1845 a Fx(create)20 b(a)g(cop)o(y)g(of)g (an)g(e)o(xisting)p 0 0 1 TeXcolorrgb 1444 1863 a SDict begin H.S end 1444 1863 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1749 1789 a SDict begin H.R end 1749 1789 a 1749 1845 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1749 1845 a 0 TeXcolorgray 21 w Fx(and)f(add)h(to)p 0 0 1 TeXcolorrgb 2136 1846 a SDict begin H.S end 2136 1846 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2316 1791 a SDict begin H.R end 2316 1791 a 2316 1845 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2316 1845 a 0 TeXcolorgray 515 1992 a Fx(This)26 b(is)h(particularly)e(useful)h(for)f(cop)o(ying)g(K)n(e)o(yw)o(ords)f (from)i(one)p 0 0 1 TeXcolorrgb 2526 1993 a SDict begin H.S end 2526 1993 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2706 1938 a SDict begin H.R end 2706 1938 a 2706 1992 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2706 1992 a 0 TeXcolorgray 27 w Fx(to)g(another)-5 b(.)42 b(F)o(or)26 b(e)o(x-)515 2091 y(ample)g(the)h(inK)n(e)o(yw)o(ord)e(pointer)h(might)h(come)f (from)g(a)i(dif)n(ferent)d(HDU')-5 b(s)28 b(std::map)p Fu(<)p Fx(string,-)515 2191 y(K)n(e)o(yw)o(ord)p Fp(\003)p Fu(>)p Fx(.)38 b(If)25 b(a)g(k)o(e)o(yw)o(ord)f(with)i(this)f(name)g (already)f(e)o(xists,)j(it)f(will)g(be)g(o)o(v)o(erwritten.)38 b(The)515 2291 y(return)24 b(v)n(alue)h(is)h(a)g(pointer)e(to)i(the)f (ne)n(wly)g(created)p 0 0 1 TeXcolorrgb 2059 2309 a SDict begin H.S end 2059 2309 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2364 2234 a SDict begin H.R end 2364 2234 a 2364 2291 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2364 2291 a 0 TeXcolorgray 26 w Fx(inserted)g(into)g(this)p 0 0 1 TeXcolorrgb 2980 2292 a SDict begin H.S end 2980 2292 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 3160 2236 a SDict begin H.R end 3160 2236 a 3160 2291 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3160 2291 a 0 TeXcolorgray Fx(.)41 b(Also)515 2390 y(see)p 0 0 1 TeXcolorrgb 642 2408 a SDict begin H.S end 642 2408 a 0 0 1 TeXcolorrgb -18 x Fx(cop)o(yAllK)n(e)o(ys\(\))p 0 0 1 TeXcolorrgb 1131 2334 a SDict begin H.R end 1131 2334 a 1131 2390 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) cvn H.B /ANN pdfmark end 1131 2390 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 1177 2390 a SDict begin H.S end 1177 2390 a 0 TeXcolorgray 0 TeXcolorgray 1177 2390 a SDict begin H.R end 1177 2390 a 1177 2390 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a9e19372a1a01046420c6ba4393bb5674) cvn H.B /DEST pdfmark end 1177 2390 a 0 TeXcolorgray 515 2446 a SDict begin H.S end 515 2446 a 515 2446 a SDict begin 12 H.A end 515 2446 a 515 2446 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.3) cvn H.B /DEST pdfmark end 515 2446 a 0.25 TeXcolorgray 128 x Fo(24.32.2.3)75 b(long)18 b(CC\002ts::HDU::axis)j(\()35 b(siz)q(e)p 1698 2574 23 4 v 26 w(t)18 b Fk(inde)o(x)35 b Fo(\))17 b(const)72 b Fr([inline])p 0 TeXcolorgray 515 2759 a Fx(return)19 b(the)h(size)h(of)f(axis)g(numbered)e(inde)o(x)h([zero)g(based])o(.)515 2905 y(return)g(the)h(length)f(of)p 0 0 1 TeXcolorrgb 1174 2906 a SDict begin H.S end 1174 2906 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1354 2851 a SDict begin H.R end 1354 2851 a 1354 2905 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1354 2905 a 0 TeXcolorgray 21 w Fx(data)h(axis)g(i.)p 0 TeXcolorgray 1758 2905 a SDict begin H.S end 1758 2905 a 0 TeXcolorgray 0 TeXcolorgray 1758 2905 a SDict begin H.R end 1758 2905 a 1758 2905 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /DEST pdfmark end 1758 2905 a 0 TeXcolorgray 515 2961 a SDict begin H.S end 515 2961 a 515 2961 a SDict begin 12 H.A end 515 2961 a 515 2961 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.4) cvn H.B /DEST pdfmark end 515 2961 a 0.25 TeXcolorgray 129 x Fo(24.32.2.4)75 b(long)18 b(CC\002ts::HDU::bitpix)k(\()69 b(\))17 b(const)73 b Fr([inline])p 0 TeXcolorgray 515 3274 a Fx(return)19 b(the)h(data)g(type)g(k)o(e)o(yw)o(ord.)515 3421 y(T)-7 b(ak)o(es)24 b(v)n(alues)f(denoting)e(the)j(image)f(data)g (type)h(for)e(images,)i(and)f(tak)o(es)h(the)g(\002x)o(ed)f(v)n(alue)g (8)g(for)515 3520 y(tables.)p 0 TeXcolorgray 755 3520 a SDict begin H.S end 755 3520 a 0 TeXcolorgray 0 TeXcolorgray 755 3520 a SDict begin H.R end 755 3520 a 755 3520 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) cvn H.B /DEST pdfmark end 755 3520 a 0 TeXcolorgray 515 3559 a SDict begin H.S end 515 3559 a 515 3559 a SDict begin 12 H.A end 515 3559 a 515 3559 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.5) cvn H.B /DEST pdfmark end 515 3559 a 0.25 TeXcolorgray 146 x Fo(24.32.2.5)75 b(v)n(oid)18 b(CC\002ts::HDU::cop)o(yAllK)o(e)o(ys)23 b(\()35 b(const)18 b Fy(HDU)f Fp(\003)f Fk(inHdu)36 b Fo(\))p 0 TeXcolorgray 515 3889 a Fx(cop)o(y)19 b(all)i(k)o(e)o(ys)f(from)f(another)g(header) 515 4036 y(P)o(arameters:)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4229 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4171 a SDict begin H.S end 515 4171 a 515 4171 a SDict begin 12 H.A end 515 4171 a 515 4171 a SDict begin [ /View [/XYZ H.V] /Dest (table.74) cvn H.B /DEST pdfmark end 515 4171 a 0.5 TeXcolorgray 515 4274 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4274 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4374 4 100 v 0 TeXcolorgray 769 4344 a Ft(inHdu)p 0.5 TeXcolorgray 1005 4374 V 0 TeXcolorgray 59 w Fx(\(const)h(HDU)p Fp(\003)p Fx(\))f(An)h(e)o(xisting)p 0 0 1 TeXcolorrgb 1935 4345 a SDict begin H.S end 1935 4345 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2115 4290 a SDict begin H.R end 2115 4290 a 2115 4344 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2115 4344 a 0 TeXcolorgray 21 w Fx(whose)f(k)o(e)o(ys)h(will)h(be)f (copied.)p 0.5 TeXcolorgray 3400 4374 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4377 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4377 V 0 TeXcolorgray 515 4607 a(This)h(will)i(cop)o (y)d(all)i(k)o(e)o(ys)g(that)f(e)o(xist)h(in)g(the)f(k)o(e)o(yW)-7 b(ord)20 b(map)h(of)h Ft(inHDU)t Fx(,)e(and)h(which)g(belong)f(to)515 4707 y(one)i(of)h(the)g(k)o(e)o(yw)o(ord)f(classes)i(returned)d(by)i (the)p 0 0 1 TeXcolorrgb 1974 4725 a SDict begin H.S end 1974 4725 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yw)o(ordCate)o(gories\(\))p 0 0 1 TeXcolorrgb 2671 4650 a SDict begin H.R end 2671 4650 a 2671 4707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) cvn H.B /ANN pdfmark end 2671 4707 a 0 TeXcolorgray 24 w Fx(function.)32 b(This)23 b(is)i(the)515 4806 y(same)20 b(group)f(of)g(k)o(e)o(yw)o(ord)g (classes)i(used)f(by)p 0 0 1 TeXcolorrgb 1847 4824 a SDict begin H.S end 1847 4824 a 0 0 1 TeXcolorrgb -18 x Fx(readAllK)n(e)o(ys\(\))p 0 0 1 TeXcolorrgb 2318 4750 a SDict begin H.R end 2318 4750 a 2318 4806 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) cvn H.B /ANN pdfmark end 2318 4806 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 2365 4806 a SDict begin H.S end 2365 4806 a 0 TeXcolorgray 0 TeXcolorgray 2365 4806 a SDict begin H.R end 2365 4806 a 2365 4806 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_aece6e1d7e46ce3370578972a4aeb08ab) cvn H.B /DEST pdfmark end 2365 4806 a 0 TeXcolorgray 515 4862 a SDict begin H.S end 515 4862 a 515 4862 a SDict begin 12 H.A end 515 4862 a 515 4862 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.6) cvn H.B /DEST pdfmark end 515 4862 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 393 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 119 124 TeXDict begin 119 123 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.119) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(119)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.32.2.6)75 b(v)n(oid)18 b(CC\002ts::HDU::deleteK)o(e)o(y)23 b(\()34 b(const)19 b(String)f(&)f Fk(doomed)36 b Fo(\))p 0 TeXcolorgray 515 707 a Fx(delete)20 b(a)g(k)o(e)o(yw)o(ord)f(from)g(the)h(header)515 854 y(remo)o(v)o(es)e Ft(doomed)j Fx(from)e(the)p 0 0 1 TeXcolorrgb 1404 855 a SDict begin H.S end 1404 855 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1575 798 a SDict begin H.R end 1575 798 a 1575 854 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1575 854 a 0 TeXcolorgray 21 w Fx(\002le)i(and)e(from)h(the)p 0 0 1 TeXcolorrgb 2168 855 a SDict begin H.S end 2168 855 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2338 798 a SDict begin H.R end 2338 798 a 2338 854 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2338 854 a 0 TeXcolorgray 21 w Fx(object)p 0 TeXcolorgray 2583 854 a SDict begin H.S end 2583 854 a 0 TeXcolorgray 0 TeXcolorgray 2583 854 a SDict begin H.R end 2583 854 a 2583 854 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_abdfef60e183bb3f3ae0374fccdbc4e45) cvn H.B /DEST pdfmark end 2583 854 a 0 TeXcolorgray 515 909 a SDict begin H.S end 515 909 a 515 909 a SDict begin 12 H.A end 515 909 a 515 909 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.7) cvn H.B /DEST pdfmark end 515 909 a 0.25 TeXcolorgray 129 x Fo(24.32.2.7)75 b(std::pair)p Fu(<)19 b Fo(unsigned)g(long,)f(unsigned)i(long)e Fu(>)f Fo(CC\002ts::HDU::g)q(etChec)o(ksum)23 b(\()68 b(\))18 b(const)p 0 TeXcolorgray 515 1223 a Fx(compute)23 b(and)h(return)f(the)i(checksum)e(v)n(alues)h(for)g(the)p 0 0 1 TeXcolorrgb 2162 1224 a SDict begin H.S end 2162 1224 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2342 1169 a SDict begin H.R end 2342 1169 a 2342 1223 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2342 1223 a 0 TeXcolorgray 25 w Fx(without)g(creating)g (or)g(modifying)515 1322 y(the)c(CHECKSUM/DATASUM)h(k)o(e)o(yw)o(ords.) 515 1469 y(Wrapper)16 b(for)g(the)i(CFITSIO)f(function)f (\002ts_get_chksum:)21 b(This)d(returns)e(a)i(std::pair)p Fu(<)p Fx(unsigned)515 1569 y(long,)k(unsigned)f(long)p Fu(>)g Fx(where)h(the)g(pair')-5 b(s)23 b(\002rst)g(data)f(member)f (holds)h(the)h(datasum)e(v)n(alue)h(and)515 1668 y(second)d(holds)h (the)g(hdusum)f(v)n(alue.)p 0 TeXcolorgray 1597 1668 a SDict begin H.S end 1597 1668 a 0 TeXcolorgray 0 TeXcolorgray 1597 1668 a SDict begin H.R end 1597 1668 a 1597 1668 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a6604d7907f4f0353e2821ac6c2506c73) cvn H.B /DEST pdfmark end 1597 1668 a 0 TeXcolorgray 515 1707 a SDict begin H.S end 515 1707 a 515 1707 a SDict begin 12 H.A end 515 1707 a 515 1707 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.8) cvn H.B /DEST pdfmark end 515 1707 a 0.25 TeXcolorgray 146 x Fo(24.32.2.8)75 b(const)18 b(String)g(&)g(CC\002ts::HDU::g)q(etComments)24 b(\()68 b(\))p 0 TeXcolorgray 515 2037 a Fx(read)19 b(the)i(comments)e (from)g(the)p 0 0 1 TeXcolorrgb 1467 2038 a SDict begin H.S end 1467 2038 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1647 1983 a SDict begin H.R end 1647 1983 a 1647 2037 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1647 2037 a 0 TeXcolorgray 21 w Fx(and)g(add)h(it)h(to)f(the)p 0 0 1 TeXcolorrgb 2223 2038 a SDict begin H.S end 2223 2038 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2394 1981 a SDict begin H.R end 2394 1981 a 2394 2037 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2394 2037 a 0 TeXcolorgray 21 w Fx(object.)515 2184 y(The)28 b(comment)f(string)h(found)f(in)i(the)g(header)e(is)i(concatenated)e (and)h(returned)f(to)h(the)h(calling)515 2283 y(function)p 0 TeXcolorgray 812 2283 a SDict begin H.S end 812 2283 a 0 TeXcolorgray 0 TeXcolorgray 812 2283 a SDict begin H.R end 812 2283 a 812 2283 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) cvn H.B /DEST pdfmark end 812 2283 a 0 TeXcolorgray 515 2321 a SDict begin H.S end 515 2321 a 515 2321 a SDict begin 12 H.A end 515 2321 a 515 2321 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.9) cvn H.B /DEST pdfmark end 515 2321 a 0.25 TeXcolorgray 147 x Fo(24.32.2.9)75 b(const)18 b(String)g(&)g(CC\002ts::HDU::g)q(etHistor)q (y)k(\()68 b(\))p 0 TeXcolorgray 515 2652 a Fx(read)19 b(the)i(history)e(information)f(from)h(the)p 0 0 1 TeXcolorrgb 1769 2653 a SDict begin H.S end 1769 2653 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1949 2598 a SDict begin H.R end 1949 2598 a 1949 2652 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1949 2652 a 0 TeXcolorgray 21 w Fx(and)g(add)h(it)h(to)f(the)p 0 0 1 TeXcolorrgb 2525 2653 a SDict begin H.S end 2525 2653 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2696 2595 a SDict begin H.R end 2696 2595 a 2696 2652 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2696 2652 a 0 TeXcolorgray 21 w Fx(object.)515 2799 y(The)f(history)g(string)g(found)f(in)i(the)f(header)g(is)h (concatenated)e(and)h(returned)e(to)j(the)g(calling)f(func-)515 2898 y(tion)p 0 TeXcolorgray 665 2898 a SDict begin H.S end 665 2898 a 0 TeXcolorgray 0 TeXcolorgray 665 2898 a SDict begin H.R end 665 2898 a 665 2898 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) cvn H.B /DEST pdfmark end 665 2898 a 0 TeXcolorgray 515 2936 a SDict begin H.S end 515 2936 a 515 2936 a SDict begin 12 H.A end 515 2936 a 515 2936 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.10) cvn H.B /DEST pdfmark end 515 2936 a 0.25 TeXcolorgray 146 x Fo(24.32.2.10)75 b(static)18 b(std::vector)p Fu(<)h Fo(int)f Fu(>)f Fo(CC\002ts::HDU::ke)o(yw)o(or)o(dCategories)23 b(\()68 b(\))j Fr([static])p 0 TeXcolorgray 515 3267 a Fx(return)19 b(the)h(enumerated)e(k)o(e)o(yw)o(ord)g(cate)o(gories)h (used)h(by)p 0 0 1 TeXcolorrgb 2205 3285 a SDict begin H.S end 2205 3285 a 0 0 1 TeXcolorrgb -18 x Fx(readAllK)n(e)o(ys\(\))p 0 0 1 TeXcolorrgb 2677 3210 a SDict begin H.R end 2677 3210 a 2677 3267 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) cvn H.B /ANN pdfmark end 2677 3267 a 0 TeXcolorgray 20 w Fx(and)p 0 0 1 TeXcolorrgb 2838 3285 a SDict begin H.S end 2838 3285 a 0 0 1 TeXcolorrgb -18 x Fx(cop)o(yAllK)n(e)o (ys\(\))p 0 0 1 TeXcolorrgb 3327 3210 a SDict begin H.R end 3327 3210 a 3327 3267 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a317fcf61da35fcf568f7bc3c2df83706) cvn H.B /ANN pdfmark end 3327 3267 a 0 TeXcolorgray 515 3414 a Fx(This)g(returns)f(a)i(v) o(ector)e(of)h(inte)o(gers)f(indicating)g(which)h(cate)o(gories)f(of)h (k)o(e)o(yw)o(ords)f(apply)g(for)h(the)515 3513 y(readAllK)n(e)o(ys)e (and)h(cop)o(yAllK)n(e)o(ys)f(functions.)23 b(The)c(list)i(of)e(cate)o (gories)f(currently)g(hardcoded)f(is:)515 3613 y(TYP_CMPRS_KEY)22 b(\(20\),)f(TYP_CKSUM_KEY)g(\(100\),)f(TYP_WCS_KEY)i(\(110\),)f(TYP-) 515 3712 y(_REFSYS_KEY)f(\(120\),)e(and)i(TYP_USER_KEY)f(\(150\).)515 3859 y(F)o(or)i(the)h(list)h(of)e(ALL)h(k)o(e)o(yw)o(ord)d(cate)o (gories,)i(see)h(the)g(CFITSIO)g(documentation)d(for)i(the)g(\002ts_-) 515 3959 y(get_k)o(e)o(yclass)e(function.)p 0 TeXcolorgray 1281 3959 a SDict begin H.S end 1281 3959 a 0 TeXcolorgray 0 TeXcolorgray 1281 3959 a SDict begin H.R end 1281 3959 a 1281 3959 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_af0bbec3fe5f6b41ff4a95feff6600d57) cvn H.B /DEST pdfmark end 1281 3959 a 0 TeXcolorgray 515 4014 a SDict begin H.S end 515 4014 a 515 4014 a SDict begin 12 H.A end 515 4014 a 515 4014 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.11) cvn H.B /DEST pdfmark end 515 4014 a 0.25 TeXcolorgray 129 x Fo(24.32.2.11)75 b(v)n(oid)18 b(CC\002ts::HDU::makeThisCurrent)24 b(\()68 b(\))18 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 4327 a Fx(mo)o(v)o(e)18 b(the)j(\002ts\002le)g(pointer)e(to)h(this)h (current)p 0 0 1 TeXcolorrgb 1806 4328 a SDict begin H.S end 1806 4328 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1986 4273 a SDict begin H.R end 1986 4273 a 1986 4327 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1986 4327 a 0 TeXcolorgray Fx(.)515 4474 y(This)28 b(function)e(should)h(ne)n(v)o(er)g(need)g(to)h (be)g(called)g(by)f(the)h(user)g(since)g(it)h(is)g(called)f(internally) 515 4574 y(whene)n(v)o(er)18 b(required.)515 4721 y(Reimplemented)g(in) p 0 0 1 TeXcolorrgb 1147 4722 a SDict begin H.S end 1147 4722 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1700 4664 a SDict begin H.R end 1700 4664 a 1700 4721 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a16730a075858cd50bfa3daad60c0a1c0) cvn H.B /ANN pdfmark end 1700 4721 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 4868 a SDict begin H.S end 515 4868 a 0 TeXcolorgray 0 TeXcolorgray 515 4868 a SDict begin H.R end 515 4868 a 515 4868 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a2dd3930b7e987e0971c494887243a7a2) cvn H.B /DEST pdfmark end 515 4868 a 0 TeXcolorgray 515 4905 a SDict begin H.S end 515 4905 a 515 4905 a SDict begin 12 H.A end 515 4905 a 515 4905 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.12) cvn H.B /DEST pdfmark end 515 4905 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 350 x Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 120 125 TeXDict begin 120 124 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.120) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(120)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.32.2.12)75 b(v)n(oid)18 b(CC\002ts::HDU::readAllK)o(e)o(ys)k(\()69 b(\))p 0 TeXcolorgray 515 707 a Fx(read)19 b(all)i(of)f(the)g(k)o(e)o(ys)g(in)g(the)h(header) 515 854 y(This)e(member)e(function)g(reads)h(k)o(e)o(ys)h(that)g(are)f (not)h(meta)f(data)h(for)f(columns)g(or)g(image)h(informa-)515 954 y(tion,)25 b([)o(which)f(are)h(considered)e(to)h(be)h(part)f(of)g (the)h(column)e(or)h(image)g(objects])o(.)39 b(Also,)25 b(history)515 1053 y(and)17 b(comment)f(k)o(e)o(ys)i(are)g(read)f(and)g (returned)g(by)p 0 0 1 TeXcolorrgb 1965 1071 a SDict begin H.S end 1965 1071 a 0 0 1 TeXcolorrgb -18 x Fx(getHistory\(\))p 0 0 1 TeXcolorrgb 2371 997 a SDict begin H.R end 2371 997 a 2371 1053 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a09da0675ae163e98d2d8cf3e2a9c2571) cvn H.B /ANN pdfmark end 2371 1053 a 0 TeXcolorgray 18 w Fx(and)h(getComment\(\).)k(The)17 b(e)o(xact)515 1153 y(list)k(of)f(k)o(e)o(yw)o(ord)e(classes)k(this)e(will)h(read)f (is)h(returned)d(by)i(the)g(function)p 0 0 1 TeXcolorrgb 2638 1171 a SDict begin H.S end 2638 1171 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(yw)o (ordCate)o(gories\(\))p 0 0 1 TeXcolorrgb 3335 1097 a SDict begin H.R end 3335 1097 a 3335 1153 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a69f296780f7b1e2ff83199d4cffa4c86) cvn H.B /ANN pdfmark end 3335 1153 a 0 TeXcolorgray Fx(.)515 1300 y(Note)d(that)g(readAllK)n(e)o(ys)e(can)i(only)f(construct)g(k)o (e)o(ys)h(of)g(type)f(string,)h(double,)f(comple)o(x)p Fu(<)p Fx(\003oat)p Fu(>)p Fx(,)515 1400 y(inte)o(ger)m(,)23 b(and)g(bool)g(because)g(the)p 0 0 1 TeXcolorrgb 1516 1401 a SDict begin H.S end 1516 1401 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1687 1343 a SDict begin H.R end 1687 1343 a 1687 1400 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1687 1400 a 0 TeXcolorgray 24 w Fx(header)g(records)f(do)i(not)f(encode)g(e) o(xact)g(type)h(informa-)515 1499 y(tion.)p 0 TeXcolorgray 690 1499 a SDict begin H.S end 690 1499 a 0 TeXcolorgray 0 TeXcolorgray 690 1499 a SDict begin H.R end 690 1499 a 690 1499 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a8c9d28570c1a7f8fc09cc10398bd6080) cvn H.B /DEST pdfmark end 690 1499 a 0 TeXcolorgray 515 1537 a SDict begin H.S end 515 1537 a 515 1537 a SDict begin 12 H.A end 515 1537 a 515 1537 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.13) cvn H.B /DEST pdfmark end 515 1537 a 0.25 TeXcolorgray 146 x Fo(24.32.2.13)75 b(template)p Fu(<)p Fo(typename)21 b(T)d Fu(>)f Fo(v)n(oid)h (CC\002ts::HDU::readK)o(e)o(y)k(\()35 b(const)19 b(String)g(&)e Fk(ke)o(yName)q(,)36 b Fo(T)18 b(&)879 1783 y Fk(v)o(al)34 b Fo(\))p 0 TeXcolorgray 515 1967 a Fx(read)16 b(a)h(k)o(e)o(yw)o(ord)d (of)i(speci\002ed)g(type)g(from)g(the)g(header)g(of)g(a)h(disk)p 0 0 1 TeXcolorrgb 2422 1968 a SDict begin H.S end 2422 1968 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2593 1911 a SDict begin H.R end 2593 1911 a 2593 1967 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2593 1967 a 0 TeXcolorgray 17 w Fx(\002le)g(and)f(return) f(its)i(v)n(alue.)515 2114 y(T)29 b(is)g(one)f(of)g(the)h(types)f (String,)i(double,)f(\003oat,)i(int,)f(std::comple)o(x)p Fu(<)p Fx(\003oat)p Fu(>)p Fx(,)e(and)g(bool.)49 b(If)28 b(a)p 0 0 1 TeXcolorrgb 515 2232 a SDict begin H.S end 515 2232 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 820 2157 a SDict begin H.R end 820 2157 a 820 2214 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 820 2214 a 0 TeXcolorgray 23 w Fx(object)22 b(with)h(the)f(name)g Ft(k)o(e)n(yName)h Fx(already)e(e)o(xists)i(in)g(this)p 0 0 1 TeXcolorrgb 2601 2215 a SDict begin H.S end 2601 2215 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2781 2160 a SDict begin H.R end 2781 2160 a 2781 2214 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2781 2214 a 0 TeXcolorgray 23 w Fx(due)f(to)h(a)g(pre)n(vious)515 2313 y(read)16 b(call,)i(then)f(this)g(will)h(re-read)d(from)h(the)h (\002le)h(and)e(create)h(a)h(ne)n(w)p 0 0 1 TeXcolorrgb 2514 2331 a SDict begin H.S end 2514 2331 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2819 2257 a SDict begin H.R end 2819 2257 a 2819 2313 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2819 2313 a 0 TeXcolorgray 18 w Fx(object)e(to)h(replace)515 2413 y(the)j(e)o(xisting)f(one.)p 0 TeXcolorgray 1086 2413 a SDict begin H.S end 1086 2413 a 0 TeXcolorgray 0 TeXcolorgray 1086 2413 a SDict begin H.R end 1086 2413 a 1086 2413 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a18f7273134f1a0428f8d565067785619) cvn H.B /DEST pdfmark end 1086 2413 a 0 TeXcolorgray 515 2468 a SDict begin H.S end 515 2468 a 515 2468 a SDict begin 12 H.A end 515 2468 a 515 2468 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.14) cvn H.B /DEST pdfmark end 515 2468 a 0.25 TeXcolorgray 129 x Fo(24.32.2.14)75 b(template)p Fu(<)p Fo(typename)22 b(T)c Fu(>)g Fo(v)n(oid)h (CC\002ts::HDU::readK)o(e)o(ys)k(\()37 b(std::vector)p Fu(<)20 b Fo(String)g Fu(>)d Fo(&)879 2697 y Fk(ke)o(yNames,)35 b Fo(std::vector)p Fu(<)19 b Fo(T)f Fu(>)e Fo(&)i Fk(v)o(als)33 b Fo(\))p 0 TeXcolorgray 515 2881 a Fx(read)21 b(a)i(set)g(of)f (speci\002ed)g(k)o(e)o(yw)o(ords)e(of)i(the)g(same)h(data)f(type)f (from)h(the)g(header)f(of)h(a)g(disk)p 0 0 1 TeXcolorrgb 3208 2882 a SDict begin H.S end 3208 2882 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 2825 a SDict begin H.R end 3379 2825 a 3379 2881 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 2881 a 0 TeXcolorgray 515 2981 a Fx(\002le)f(and)e(return)g(their) h(v)n(alues)515 3128 y(T)g(is)h(one)f(of)g(the)g(types)g(String,)g (double,)e(\003oat,)i(int,)g(std::comple)o(x)p Fu(<)p Fx(\003oat)p Fu(>)p Fx(,)d(and)j(bool.)p 0 TeXcolorgray 3122 3128 a SDict begin H.S end 3122 3128 a 0 TeXcolorgray 0 TeXcolorgray 3122 3128 a SDict begin H.R end 3122 3128 a 3122 3128 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) cvn H.B /DEST pdfmark end 3122 3128 a 0 TeXcolorgray 515 3183 a SDict begin H.S end 515 3183 a 515 3183 a SDict begin 12 H.A end 515 3183 a 515 3183 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.15) cvn H.B /DEST pdfmark end 515 3183 a 0.25 TeXcolorgray 129 x Fo(24.32.2.15)75 b(v)n(oid)18 b(CC\002ts::HDU::scale)j(\()35 b(doub)o(le)19 b Fk(v)o(alue)34 b Fo(\))72 b Fr([)o(inline,)49 b(virtual])p 0 TeXcolorgray 515 3496 a Fx(set)21 b(the)f(BSCALE)h(k)o(e)o(yw)o(ord)d (v)n(alue)i(for)f(images)h(\(see)h(w)o(arning)e(for)g(images)h(of)g (int)h(type\))515 3643 y(F)o(or)h(primary)f(HDUs)i(and)g(image)f(e)o (xtensions,)f(this)j(will)f(add)f(\(or)g(update\))f(the)i(BSCALE)h(k)o (e)o(y-)515 3743 y(w)o(ord)g(in)h(the)g(header)-5 b(.)39 b(The)25 b(ne)n(w)f(setting)h(will)h(af)n(fect)e(future)g(image)h (array)f(read/writes)g(as)i(de-)515 3842 y(scribed)c(in)i(section)f (4.7)f(Data)i(Scaling)f(of)g(the)g(CFITSIO)h(manual.)33 b(F)o(or)23 b(table)g(e)o(xtensions)f(this)515 3942 y(function)c(does)i (nothing.)515 4089 y(WARNING:)k(If)g(the)g(image)g(contains)f Fy(integer)m(-type)f(data)i Fx(\(as)g(indicated)f(by)g(the)p 0 0 1 TeXcolorrgb 3013 4107 a SDict begin H.S end 3013 4107 a 0 0 1 TeXcolorrgb -18 x Fx(bitpix\(\))p 0 0 1 TeXcolorrgb 3262 4032 a SDict begin H.R end 3262 4032 a 3262 4089 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 3262 4089 a 0 TeXcolorgray 25 w Fx(re-)515 4188 y(turn)c(v)n(alue\),)g(the)i(ne)n(w)f(scale)h(and)f(zero)f(v)n (alue)h(combination)e(must)i(not)g(be)h(such)f(that)g(the)h(scaled)515 4288 y(data)f(w)o(ould)f(require)g(a)h(\003oating-point)e(type)i (\(this)g(uses)g(the)h(CFITSIO)f(function)e(\002ts_get_img-)515 4388 y(_equi)n(vtype)f(to)i(mak)o(e)g(the)g(determination\).)k(If)c (this)h(situation)f(occurs,)f(the)i(function)d(will)j(thro)n(w)515 4487 y(a)p 0 0 1 TeXcolorrgb 572 4505 a SDict begin H.S end 572 4505 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1034 4431 a SDict begin H.R end 1034 4431 a 1034 4487 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1034 4487 a 0 TeXcolorgray Fx(.)515 4634 y(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 4635 a SDict begin H.S end 1147 4635 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::PHDU)p 0 0 1 TeXcolorrgb 1631 4578 a SDict begin H.R end 1631 4578 a 1631 4634 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a75f86db856e2cc7772a97d9ded3a633c) cvn H.B /ANN pdfmark end 1631 4634 a 0 TeXcolorgray Fx(,)j(and)p 0 0 1 TeXcolorrgb 1813 4652 a SDict begin H.S end 1813 4652 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::ImageExt)p Fu(<)f Fx(T)g Fu(>)p 0 0 1 TeXcolorrgb 2616 4578 a SDict begin H.R end 2616 4578 a 2616 4634 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_ad0531bb4a797027e6ff77517d2e09cc6) cvn H.B /ANN pdfmark end 2616 4634 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 4781 a SDict begin H.S end 515 4781 a 0 TeXcolorgray 0 TeXcolorgray 515 4781 a SDict begin H.R end 515 4781 a 515 4781 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a6bd0d7eb236211267de480c595b5b631) cvn H.B /DEST pdfmark end 515 4781 a 0 TeXcolorgray 515 4818 a SDict begin H.S end 515 4818 a 515 4818 a SDict begin 12 H.A end 515 4818 a 515 4818 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.16) cvn H.B /DEST pdfmark end 515 4818 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 437 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 121 126 TeXDict begin 121 125 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.121) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.32)81 b(CC\002ts::HDU)19 b(Class)i(Refer)o(ence)1418 b(121)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.32.2.16)75 b(v)n(oid)18 b(CC\002ts::HDU::suppressScaling)23 b(\()35 b(bool)18 b Fk(tog)o(gle)h(=)e Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 707 a Fx(turn)19 b(of)n(f)h(image)f(scaling)h(re)o(gardless)f(of)h (the)g(BSCALE)h(and)f(BZERO)h(k)o(e)o(yw)o(ord)d(v)n(alues)515 854 y(F)o(or)27 b Ft(to)o(g)o(gle)g Fx(=)h(true,)g(this)g(turns)f(of)n (f)g(image)g(scaling)g(for)g(future)g(read/writes)g(by)g(resetting)g (the)515 954 y(scale)e(and)f(zero)g(to)h(1.0)g(and)f(0.0)g(respecti)n (v)o(ely)-5 b(.)37 b(It)25 b(does)f(NOT)h(modify)e(the)i(BSCALE)h(and)e (B-)515 1053 y(ZERO)j(k)o(e)o(yw)o(ords.)46 b(If)27 b Ft(to)o(g)o(gle)g Fx(=)g(f)o(alse,)j(the)d(scale)h(and)f(zero)g(v)n (alues)g(will)h(be)g(restored)e(to)i(the)515 1153 y(k)o(e)o(yw)o(ord)18 b(v)n(alues.)p 0 TeXcolorgray 1080 1153 a SDict begin H.S end 1080 1153 a 0 TeXcolorgray 0 TeXcolorgray 1080 1153 a SDict begin H.R end 1080 1153 a 1080 1153 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a56ce9ed0864e07a7ef380b18e3be7a79) cvn H.B /DEST pdfmark end 1080 1153 a 0 TeXcolorgray 515 1208 a SDict begin H.S end 515 1208 a 515 1208 a SDict begin 12 H.A end 515 1208 a 515 1208 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.17) cvn H.B /DEST pdfmark end 515 1208 a 0.25 TeXcolorgray 129 x Fo(24.32.2.17)75 b(v)n(oid)18 b (CC\002ts::HDU::updateChe)q(c)o(ksum)24 b(\()68 b(\))p 0 TeXcolorgray 515 1521 a Fx(update)19 b(the)h(CHECKSUM)h(k)o(e)o(yw)o (ord)d(v)n(alue,)i(assuming)f(DATASUM)h(e)o(xists)h(and)f(is)h(correct) 515 1668 y(Wrapper)j(for)h(the)h(CFITSIO)f(function)f (\002ts_update_chksum:)33 b(This)25 b(recomputes)f(and)h(writes)515 1768 y(the)15 b(CHECKSUM)i(v)n(alue)e(with)h(the)f(assumption)g(that)h (the)f(DATASUM)h(v)n(alue)f(is)i(correct.)22 b(If)16 b(the)515 1868 y(DATASUM)f(k)o(e)o(yw)o(ord)e(doesn')o(t)h(yet)h(e)o (xist)h(or)f(is)h(not)f(up-to-date,)e(use)j(the)p 0 0 1 TeXcolorrgb 2692 1869 a SDict begin H.S end 2692 1869 a 0 0 1 TeXcolorrgb -1 x Fx(HDU::writeChecksum)p 0 0 1 TeXcolorrgb 3439 1811 a SDict begin H.R end 3439 1811 a 3439 1868 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) cvn H.B /ANN pdfmark end 3439 1868 a 0 TeXcolorgray 515 1967 a Fx(function)k(instead.)30 b(This)22 b(will)h(thro)n(w)e(a)p 0 0 1 TeXcolorrgb 1697 1968 a SDict begin H.S end 1697 1968 a 0 0 1 TeXcolorrgb -1 x Fx(FitsError)p 0 0 1 TeXcolorrgb 1996 1911 a SDict begin H.R end 1996 1911 a 1996 1967 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1996 1967 a 0 TeXcolorgray 23 w Fx(e)o(xception)f (if)i(called)g(when)f(there)h(is)h(no)e(DA-)515 2067 y(TASUM)f(k)o(e)o(yw)o(ord)e(in)j(the)f(header)-5 b(.)p 0 TeXcolorgray 1605 2067 a SDict begin H.S end 1605 2067 a 0 TeXcolorgray 0 TeXcolorgray 1605 2067 a SDict begin H.R end 1605 2067 a 1605 2067 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_adc1a7ba06b6a113010334320e5268dc6) cvn H.B /DEST pdfmark end 1605 2067 a 0 TeXcolorgray 515 2122 a SDict begin H.S end 515 2122 a 515 2122 a SDict begin 12 H.A end 515 2122 a 515 2122 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.18) cvn H.B /DEST pdfmark end 515 2122 a 0.25 TeXcolorgray 129 x Fo(24.32.2.18)75 b(std::pair)p Fu(<)19 b Fo(int,)f(int)g Fu(>)e Fo(CC\002ts::HDU::verifyChec)o(ksum)23 b(\()69 b(\))17 b(const)p 0 TeXcolorgray 515 2435 a Fx(v)o(erify)g(the)p 0 0 1 TeXcolorrgb 853 2436 a SDict begin H.S end 853 2436 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1032 2381 a SDict begin H.R end 1032 2381 a 1032 2435 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1032 2435 a 0 TeXcolorgray 20 w Fx(by)i(computing)e(the)i (checksums)f(and)h(comparing)e(them)h(with)i(the)f(CHECKS-)515 2535 y(UM/DATASUM)h(k)o(e)o(yw)o(ords)515 2682 y(Wrapper)j(for)h(the)h (CFITSIO)g(function)d(\002ts_v)o(erify_chksum:)31 b(The)24 b(data)h(unit)f(is)h(v)o(eri\002ed)f(cor)n(-)515 2781 y(rectly)c(if)h(the)f(computed)e(checksum)h(equals)i(the)f(DATASUM)h(k) o(e)o(yw)o(ord)d(v)n(alue,)i(and)g(the)p 0 0 1 TeXcolorrgb 3199 2782 a SDict begin H.S end 3199 2782 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 3379 2727 a SDict begin H.R end 3379 2727 a 3379 2781 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3379 2781 a 0 TeXcolorgray 515 2881 a Fx(is)32 b(v)o(eri\002ed)e(if)h (the)h(entire)e(checksum)g(equals)h(zero)g(\(see)g(the)g(CFITSIO)g (manual)g(for)f(further)515 2981 y(details\).)515 3128 y(This)25 b(returns)f(a)h(std::pair)p Fu(<)p Fx(int,int)p Fu(>)e Fx(where)i(the)g(pair')-5 b(s)25 b(\002rst)g(data)g(member)f(=)h (DATAOK)g(and)515 3227 y(second)d(=)i(HDUOK.)f(DATAOK)h(and)e(HDUOK)i (v)n(alues)f(will)h(be)f(=)h(1)f(if)h(v)o(eri\002ed)e(correctly)-5 b(,)22 b(0)515 3327 y(if)e(the)g(k)o(e)o(yw)o(ord)f(is)i(missing,)f (and)f(-1)h(if)h(the)f(computed)e(checksum)h(is)i(not)f(correct.)p 0 TeXcolorgray 2998 3327 a SDict begin H.S end 2998 3327 a 0 TeXcolorgray 0 TeXcolorgray 2998 3327 a SDict begin H.R end 2998 3327 a 2998 3327 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a3ac4ca8b88fc94552f890154247776c6) cvn H.B /DEST pdfmark end 2998 3327 a 0 TeXcolorgray 515 3382 a SDict begin H.S end 515 3382 a 515 3382 a SDict begin 12 H.A end 515 3382 a 515 3382 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.19) cvn H.B /DEST pdfmark end 515 3382 a 0.25 TeXcolorgray 129 x Fo(24.32.2.19)75 b(v)n(oid)18 b(CC\002ts::HDU::writeChec)o(ksum) 23 b(\()68 b(\))p 0 TeXcolorgray 515 3695 a Fx(compute)18 b(and)i(write)g(the)h(DATASUM)f(and)f(CHECKSUM)j(k)o(e)o(yw)o(ord)c(v)n (alues)515 3842 y(Wrapper)g(for)h(the)g(CFITSIO)g(function)f (\002ts_write_chksum:)k(This)e(performs)d(the)j(datasum)e(and)515 3942 y(checksum)25 b(calculations)g(for)h(this)p 0 0 1 TeXcolorrgb 1568 3943 a SDict begin H.S end 1568 3943 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1748 3888 a SDict begin H.R end 1748 3888 a 1748 3942 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1748 3942 a 0 TeXcolorgray Fx(,)i(as)f(described)e(in)h (the)h(CFITSIO)f(manual.)43 b(If)26 b(either)515 4041 y(the)20 b(DATASUM)g(or)g(CHECKSUM)h(k)o(e)o(yw)o(ords)e(already)g(e)o (xist,)h(their)g(v)n(alues)f(will)i(be)f(updated.)p 0 TeXcolorgray 515 4141 a SDict begin H.S end 515 4141 a 0 TeXcolorgray 0 TeXcolorgray 515 4141 a SDict begin H.R end 515 4141 a 515 4141 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a05843eda3c863cf9b580a409b3067c55) cvn H.B /DEST pdfmark end 515 4141 a 0 TeXcolorgray 515 4178 a SDict begin H.S end 515 4178 a 515 4178 a SDict begin 12 H.A end 515 4178 a 515 4178 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.20) cvn H.B /DEST pdfmark end 515 4178 a 0.25 TeXcolorgray 147 x Fo(24.32.2.20)75 b(v)n(oid)24 b(CC\002ts::HDU::writeComment)29 b(\()46 b(const)24 b(String)g(&)f Fk(comment)i(=)879 4425 y Fr("Generic)48 b(Comment")33 b Fo(\))p 0 TeXcolorgray 515 4609 a Fx(write)20 b(a)h(comment)d(string.)515 4756 y(A)23 b(def)o(ault)g(v)n(alue)f(for)g (the)h(string)g(is)h(gi)n(v)o(en)e(\("Generic)g(Comment)g(String"\))g (so)h(users)h(can)e(put)h(a)515 4856 y(placeholder)18 b(call)i(to)h(this)f(function)f(in)h(their)g(code.)p 0 TeXcolorgray 2048 4856 a SDict begin H.S end 2048 4856 a 0 TeXcolorgray 0 TeXcolorgray 2048 4856 a SDict begin H.R end 2048 4856 a 2048 4856 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_ae33b25a2d52e0e75e13d277e3327d03f) cvn H.B /DEST pdfmark end 2048 4856 a 0 TeXcolorgray 515 4911 a SDict begin H.S end 515 4911 a 515 4911 a SDict begin 12 H.A end 515 4911 a 515 4911 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.21) cvn H.B /DEST pdfmark end 515 4911 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 344 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 122 127 TeXDict begin 122 126 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.122) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.33)81 b(CC\002ts::HDU::In)m(v)o (alidExtensionT)-6 b(ype)17 b(Class)k(Refer)o(ence)589 b(122)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.32.2.21)75 b(v)n(oid)25 b(CC\002ts::HDU::writeHistor)q(y)j(\()48 b(const)26 b(String)e(&)g Fk(histor)q(y)h(=)879 623 y Fr("Generic)48 b(History)h(String")33 b Fo(\))p 0 TeXcolorgray 515 807 a Fx(write)20 b(a)h(history)e(string.)515 954 y(A)29 b(def)o(ault)e(v)n(alue)h(for)f(the)i(string)f(is)h(gi)n(v)o(en) e(\("Generic)g(History)h(String"\))f(so)i(users)f(can)g(put)g(a)515 1053 y(placeholder)18 b(call)i(to)h(this)f(function)f(in)h(their)g (code.)p 0 TeXcolorgray 2048 1053 a SDict begin H.S end 2048 1053 a 0 TeXcolorgray 0 TeXcolorgray 2048 1053 a SDict begin H.R end 2048 1053 a 2048 1053 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) cvn H.B /DEST pdfmark end 2048 1053 a 0 TeXcolorgray 515 1109 a SDict begin H.S end 515 1109 a 515 1109 a SDict begin 12 H.A end 515 1109 a 515 1109 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.32.2.22) cvn H.B /DEST pdfmark end 515 1109 a 0.25 TeXcolorgray 129 x Fo(24.32.2.22)75 b(v)n(oid)18 b(CC\002ts::HDU::z)q(er)o(o)i(\()35 b(doub)o(le)19 b Fk(v)o(alue)35 b Fo(\))71 b Fr([inline,)48 b(virtual])p 0 TeXcolorgray 515 1422 a Fx(set)21 b(the)f(BZERO)h(k)o(e) o(yw)o(ord)d(v)n(alue)i(for)f(images)h(\(see)h(w)o(arning)e(for)g (images)h(of)g(int)g(type\))515 1569 y(F)o(or)15 b(primary)e(HDUs)j (and)f(image)g(e)o(xtensions,)f(this)i(will)g(add)f(\(or)f(update\))g (the)h(BZERO)h(k)o(e)o(yw)o(ord)515 1668 y(in)24 b(the)g(header)-5 b(.)35 b(The)23 b(ne)n(w)h(setting)g(will)h(af)n(fect)e(future)g(image) g(array)g(read/writes)g(as)i(described)515 1768 y(in)c(section)f(4.7)g (Data)i(Scaling)e(of)g(the)h(CFITSIO)g(manual.)26 b(F)o(or)21 b(table)f(e)o(xtensions)g(this)h(function)515 1868 y(does)f(nothing.) 515 2014 y(WARNING:)k(If)g(the)g(image)g(contains)f Fy(integer)m(-type) f(data)i Fx(\(as)g(indicated)f(by)g(the)p 0 0 1 TeXcolorrgb 3013 2032 a SDict begin H.S end 3013 2032 a 0 0 1 TeXcolorrgb -18 x Fx(bitpix\(\))p 0 0 1 TeXcolorrgb 3262 1958 a SDict begin H.R end 3262 1958 a 3262 2014 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 3262 2014 a 0 TeXcolorgray 25 w Fx(re-)515 2114 y(turn)c(v)n(alue\),)g (the)i(ne)n(w)f(scale)h(and)f(zero)f(v)n(alue)h(combination)e(must)i (not)g(be)h(such)f(that)g(the)h(scaled)515 2214 y(data)f(w)o(ould)f (require)g(a)h(\003oating-point)e(type)i(\(this)g(uses)g(the)h(CFITSIO) f(function)e(\002ts_get_img-)515 2313 y(_equi)n(vtype)f(to)i(mak)o(e)g (the)g(determination\).)k(If)c(this)h(situation)f(occurs,)f(the)i (function)d(will)j(thro)n(w)515 2413 y(a)p 0 0 1 TeXcolorrgb 572 2431 a SDict begin H.S end 572 2431 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1034 2357 a SDict begin H.R end 1034 2357 a 1034 2413 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1034 2413 a 0 TeXcolorgray Fx(.)515 2560 y(Reimplemented)e(in)p 0 0 1 TeXcolorrgb 1147 2561 a SDict begin H.S end 1147 2561 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::PHDU)p 0 0 1 TeXcolorrgb 1631 2504 a SDict begin H.R end 1631 2504 a 1631 2560 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_abcc25c1d318581d9b650a784b799285d) cvn H.B /ANN pdfmark end 1631 2560 a 0 TeXcolorgray Fx(,)j(and)p 0 0 1 TeXcolorrgb 1813 2578 a SDict begin H.S end 1813 2578 a 0 0 1 TeXcolorrgb -18 x Fx(CC\002ts::ImageExt)p Fu(<)f Fx(T)g Fu(>)p 0 0 1 TeXcolorrgb 2616 2504 a SDict begin H.R end 2616 2504 a 2616 2560 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_aa6d47bd83e9538694ee7d4f4d70ef33b) cvn H.B /ANN pdfmark end 2616 2560 a 0 TeXcolorgray Fx(.)515 2707 y(The)g(documentation)d(for)i(this)i(class)g(w)o(as)g(generated)e(from) g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 2920 a(\225)p 0 TeXcolorgray 41 w(HDU.h)p 0 TeXcolorgray 652 3028 a(\225)p 0 TeXcolorgray 41 w(HDU.cxx)p 0 TeXcolorgray 515 3241 a SDict begin H.S end 515 3241 a 0 TeXcolorgray 0 TeXcolorgray 515 3241 a SDict begin H.R end 515 3241 a 515 3241 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1InvalidExtensionType) cvn H.B /DEST pdfmark end 515 3241 a 0 TeXcolorgray 515 3363 a SDict begin H.S end 515 3363 a 515 3363 a SDict begin 12 H.A end 515 3363 a 515 3363 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.33) cvn H.B /DEST pdfmark end 515 3363 a 0.25 TeXcolorgray 163 x Fq(24.33)89 b(CC\002ts::HDU::In)m (v)o(alidExtensionT)l(ype)24 b(Class)c(Ref)o(erence)p 0 TeXcolorgray 515 3729 a Fx(e)o(xception)25 b(to)i(be)f(thro)n(wn)g (if)h(user)g(requests)f(e)o(xtension)f(type)i(that)g(can)f(not)h(be)g (understood)d(as)p 0 0 1 TeXcolorrgb 515 3847 a SDict begin H.S end 515 3847 a 0 0 1 TeXcolorrgb -18 x Fx(ImageExt)p 0 0 1 TeXcolorrgb 838 3775 a SDict begin H.R end 838 3775 a 838 3829 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 838 3829 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 879 3830 a SDict begin H.S end 879 3830 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1237 3772 a SDict begin H.R end 1237 3772 a 1237 3829 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1237 3829 a 0 TeXcolorgray 20 w Fx(or)p 0 0 1 TeXcolorrgb 1347 3830 a SDict begin H.S end 1347 3830 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)g(able)p 0 0 1 TeXcolorrgb 1650 3772 a SDict begin H.R end 1650 3772 a 1650 3829 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1650 3829 a 0 TeXcolorgray Fx(.)515 3976 y Fr(#include)48 b Fu(<)p Fr(HDU.h)p Fu(>)515 4122 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::HDU::In)m(v)n (alidExtensionT)-7 b(ype:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1324 4721 a @beginspecial 0 @llx 0 @lly 500 @urx 189.573456 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1HDU_1_1InvalidExtensionType.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 189.573460 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.637500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::HDU::InvalidExtensionType) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::HDU::InvalidExtensionType) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0.25 TeXcolorgray eop end %%Page: 123 128 TeXDict begin 123 127 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.123) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.34)81 b(CC\002ts::HDU::In)m(v)o (alidImageDataT)-6 b(ype)16 b(Class)21 b(Refer)o(ence)547 b(123)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 580 a SDict begin H.S end 515 580 a 515 580 a SDict begin 12 H.A end 515 580 a 515 580 a SDict begin [ /View [/XYZ H.V] /Dest (section*.53) cvn H.B /DEST pdfmark end 515 580 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 712 a Fx(\225)p 0 0 1 TeXcolorrgb 722 730 a SDict begin H.S end 722 730 a 0 0 1 TeXcolorrgb -18 x Fx(In)m(v)n(alidExtensionT)-7 b(ype)p 0 0 1 TeXcolorrgb 1448 656 a SDict begin H.R end 1448 656 a 1448 712 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidExtensionType_a3a2ca4ecaf262c22bbe5e75dde9e4c0d) cvn H.B /ANN pdfmark end 1448 712 a 0 TeXcolorgray 21 w Fx(\(const)20 b(string)f(&diag,)h(bool)f(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 836 a Fl(Exception)k(ctor)-8 b(,)23 b(pr)m(e\002xes)h(the)f(string)f("F)m(its)g(Err)m(or:)30 b(Extension)23 b(T)-6 b(ype:)30 b(")23 b(befor)m(e)g(the)g(speci\002c) 840 928 y(messa)o(g)o(e)o(.)515 1064 y SDict begin H.S end 515 1064 a 515 1064 a SDict begin 12 H.A end 515 1064 a 515 1064 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.33.1) cvn H.B /DEST pdfmark end 515 1064 a 0.25 TeXcolorgray 132 x Fo(24.33.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 1399 a Fx(e)o(xception)25 b(to)i(be)f(thro)n(wn)g(if)h(user)g (requests)f(e)o(xtension)f(type)i(that)g(can)f(not)h(be)g(understood)d (as)p 0 0 1 TeXcolorrgb 515 1517 a SDict begin H.S end 515 1517 a 0 0 1 TeXcolorrgb -18 x Fx(ImageExt)p 0 0 1 TeXcolorrgb 838 1445 a SDict begin H.R end 838 1445 a 838 1499 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 838 1499 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 879 1500 a SDict begin H.S end 879 1500 a 0 0 1 TeXcolorrgb -1 x Fx(AsciiT)-7 b(able)p 0 0 1 TeXcolorrgb 1237 1442 a SDict begin H.R end 1237 1442 a 1237 1499 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1AsciiTable) cvn H.B /ANN pdfmark end 1237 1499 a 0 TeXcolorgray 20 w Fx(or)p 0 0 1 TeXcolorrgb 1347 1500 a SDict begin H.S end 1347 1500 a 0 0 1 TeXcolorrgb -1 x Fx(BinT)g(able)p 0 0 1 TeXcolorrgb 1650 1442 a SDict begin H.R end 1650 1442 a 1650 1499 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1BinTable) cvn H.B /ANN pdfmark end 1650 1499 a 0 TeXcolorgray Fx(.)515 1638 y SDict begin H.S end 515 1638 a 515 1638 a SDict begin 12 H.A end 515 1638 a 515 1638 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.33.2) cvn H.B /DEST pdfmark end 515 1638 a 0.25 TeXcolorgray 129 x Fo(24.33.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 1970 a SDict begin H.S end 515 1970 a 0 TeXcolorgray 0 TeXcolorgray 515 1970 a SDict begin H.R end 515 1970 a 515 1970 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1InvalidExtensionType_a3a2ca4ecaf262c22bbe5e75dde9e4c0d) cvn H.B /DEST pdfmark end 515 1970 a 0 TeXcolorgray 515 2007 a SDict begin H.S end 515 2007 a 515 2007 a SDict begin 12 H.A end 515 2007 a 515 2007 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.33.2.1) cvn H.B /DEST pdfmark end 515 2007 a 0.25 TeXcolorgray 147 x Fo(24.33.2.1)75 b(CC\002ts::HDU::In)n(v)o(alidExtensionT)m(ype:)q(:In)o (v)o(alidExten)q(sion)q(T)m(ype)24 b(\()35 b(const)19 b(string)f(&)g Fk(dia)o(g,)36 b Fo(bool)845 2254 y Fk(silent)18 b(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 2438 a Fx(Exception)25 b(ctor)m(,)i(pre\002x)o(es)f(the)h(string)f("Fits)i (Error:)37 b(Extension)25 b(T)-7 b(ype:)38 b(")27 b(before)f(the)g (speci\002c)515 2538 y(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2748 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2690 a SDict begin H.S end 515 2690 a 515 2690 a SDict begin 12 H.A end 515 2690 a 515 2690 a SDict begin [ /View [/XYZ H.V] /Dest (table.75) cvn H.B /DEST pdfmark end 515 2690 a 0.5 TeXcolorgray 515 2793 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2793 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2893 4 100 v 0 TeXcolorgray 830 2863 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 2893 V 0 TeXcolorgray 59 w Fx(A)21 b(speci\002c)f(diagnostic)f(message)p 0.5 TeXcolorgray 3400 2893 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2896 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2896 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2996 4 100 v 0 TeXcolorgray 796 2966 a Ft(silent)p 0.5 TeXcolorgray 1005 2996 V 0 TeXcolorgray 61 w Fx(if)h(true,)g(print)g(message)g (whether)p 0 0 1 TeXcolorrgb 2047 2967 a SDict begin H.S end 2047 2967 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 2910 a SDict begin H.R end 2714 2910 a 2714 2966 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 2966 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 2996 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2999 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2999 V 0 TeXcolorgray 515 3229 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 3442 a(\225)p 0 TeXcolorgray 41 w(HDU.h)p 0 TeXcolorgray 652 3550 a(\225)p 0 TeXcolorgray 41 w(HDU.cxx)p 0 TeXcolorgray 515 3763 a SDict begin H.S end 515 3763 a 0 TeXcolorgray 0 TeXcolorgray 515 3763 a SDict begin H.R end 515 3763 a 515 3763 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1InvalidImageDataType) cvn H.B /DEST pdfmark end 515 3763 a 0 TeXcolorgray 515 3885 a SDict begin H.S end 515 3885 a 515 3885 a SDict begin 12 H.A end 515 3885 a 515 3885 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.34) cvn H.B /DEST pdfmark end 515 3885 a 0.25 TeXcolorgray 163 x Fq(24.34)89 b(CC\002ts::HDU::In)m(v)o(alidIma)o(g)q(eDataT)l(ype)24 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 4251 a Fx(e)o(xception)g (to)j(be)f(thro)n(wn)f(if)i(user)f(requests)g(creation)f(of)h(an)h (image)f(of)g(type)g(not)g(supported)e(by)515 4351 y(c\002tsio.)515 4498 y Fr(#include)48 b Fu(<)p Fr(HDU.h)p Fu(>)515 4645 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::HDU::In)m(v)n (alidImageDataT)-7 b(ype:)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 124 129 TeXDict begin 124 128 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.124) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.35)81 b(CC\002ts::HDU::NoNullV)-8 b(alue)18 b(Class)j(Refer)o(ence)909 b(124)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1309 912 a @beginspecial 0 @llx 0 @lly 500 @urx 185.185181 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1HDU_1_1InvalidImageDataType.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 185.185185 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.700000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::HDU::InvalidImageDataType) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::HDU::InvalidImageDataType) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1264 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 1321 a SDict begin H.S end 515 1321 a 515 1321 a SDict begin 12 H.A end 515 1321 a 515 1321 a SDict begin [ /View [/XYZ H.V] /Dest (section*.54) cvn H.B /DEST pdfmark end 515 1321 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1453 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1471 a SDict begin H.S end 722 1471 a 0 0 1 TeXcolorrgb -18 x Fx(In)m(v)n(alidImageDataT)-7 b(ype)p 0 0 1 TeXcolorrgb 1480 1396 a SDict begin H.R end 1480 1396 a 1480 1453 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1InvalidImageDataType_a3096f43465037a2be30e2c99ee9289a4) cvn H.B /ANN pdfmark end 1480 1453 a 0 TeXcolorgray 21 w Fx(\(const)20 b(string)g(&diag,)f(bool) g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 1577 a Fl(Exception)k(ctor)-8 b(,)22 b(pr)m(e\002xes)h(the)f(string)g("F)m (its)e(Err)m(or:)29 b(In)m(valid)22 b(Data)g(T)-6 b(ype)22 b(for)g(Ima)o(g)o(e)h(")f(befor)m(e)840 1669 y(the)d(speci\002c)h (messa)o(g)o(e)o(.)515 1805 y SDict begin H.S end 515 1805 a 515 1805 a SDict begin 12 H.A end 515 1805 a 515 1805 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.34.1) cvn H.B /DEST pdfmark end 515 1805 a 0.25 TeXcolorgray 132 x Fo(24.34.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2140 a Fx(e)o(xception)j(to)j(be)f(thro)n(wn)f(if)i(user)f (requests)g(creation)f(of)h(an)h(image)f(of)g(type)g(not)g(supported)e (by)515 2239 y(c\002tsio.)515 2362 y SDict begin H.S end 515 2362 a 515 2362 a SDict begin 12 H.A end 515 2362 a 515 2362 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.34.2) cvn H.B /DEST pdfmark end 515 2362 a 0.25 TeXcolorgray 146 x Fo(24.34.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2711 a SDict begin H.S end 515 2711 a 0 TeXcolorgray 0 TeXcolorgray 515 2711 a SDict begin H.R end 515 2711 a 515 2711 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1InvalidImageDataType_a3096f43465037a2be30e2c99ee9289a4) cvn H.B /DEST pdfmark end 515 2711 a 0 TeXcolorgray 515 2748 a SDict begin H.S end 515 2748 a 515 2748 a SDict begin 12 H.A end 515 2748 a 515 2748 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.34.2.1) cvn H.B /DEST pdfmark end 515 2748 a 0.25 TeXcolorgray 147 x Fo(24.34.2.1)75 b(CC\002ts::HDU::In)n(v)o(alidIma)o(g)q(eDataT)m (yp)q(e::In)o(v)o(alidIm)q(a)o(g)q(eDat)q(aT)m(ype)24 b(\()34 b(const)19 b(string)f(&)f Fk(dia)o(g,)36 b Fo(bool)845 2994 y Fk(silent)18 b(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 3179 a Fx(Exception)16 b(ctor)m(,)i(pre\002x)o(es)f(the)i(string)f ("Fits)h(Error:)k(In)m(v)n(alid)17 b(Data)h(T)-7 b(ype)18 b(for)g(Image)f(")i(before)e(the)515 3278 y(speci\002c)j(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3488 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3431 a SDict begin H.S end 515 3431 a 515 3431 a SDict begin 12 H.A end 515 3431 a 515 3431 a SDict begin [ /View [/XYZ H.V] /Dest (table.76) cvn H.B /DEST pdfmark end 515 3431 a 0.5 TeXcolorgray 515 3534 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3534 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3633 4 100 v 0 TeXcolorgray 830 3604 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 3633 V 0 TeXcolorgray 59 w Fx(A)h(speci\002c)f(diagnostic)f (message)p 0.5 TeXcolorgray 3400 3633 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3637 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3637 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3736 4 100 v 0 TeXcolorgray 796 3707 a Ft(silent)p 0.5 TeXcolorgray 1005 3736 V 0 TeXcolorgray 61 w Fx(if)h(true,)g(print) g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 3708 a SDict begin H.S end 2047 3708 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 3650 a SDict begin H.R end 2714 3650 a 2714 3707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 3707 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 3736 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3740 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3740 V 0 TeXcolorgray 515 3970 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4183 a(\225)p 0 TeXcolorgray 41 w(HDU.h)p 0 TeXcolorgray 652 4291 a(\225)p 0 TeXcolorgray 41 w(HDU.cxx)p 0 TeXcolorgray 515 4504 a SDict begin H.S end 515 4504 a 0 TeXcolorgray 0 TeXcolorgray 515 4504 a SDict begin H.R end 515 4504 a 515 4504 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1NoNullValue) cvn H.B /DEST pdfmark end 515 4504 a 0 TeXcolorgray 515 4626 a SDict begin H.S end 515 4626 a 515 4626 a SDict begin 12 H.A end 515 4626 a 515 4626 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.35) cvn H.B /DEST pdfmark end 515 4626 a 0.25 TeXcolorgray 163 x Fq(24.35)89 b(CC\002ts::HDU::NoNullV)l(alue)24 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 4992 a Fx(e)o(xception)d(to)i(be)h(thro)n(wn)d(on)i (seek)g(errors)g(for)f(k)o(e)o(yw)o(ords.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 125 130 TeXDict begin 125 129 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.125) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.35)81 b(CC\002ts::HDU::NoNullV)-8 b(alue)18 b(Class)j(Refer)o(ence)909 b(125)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fr(#include)48 b Fu(<)p Fr(HDU.h)p Fu(>)515 670 y Fx(Inheritance)18 b(diagram)h(for)g (CC\002ts::HDU::NoNullV)-9 b(alue:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1466 1268 a @beginspecial 0 @llx 0 @lly 500 @urx 245.398773 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1HDU_1_1NoNullValue.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 245.398773 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.037500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::HDU::NoNullValue) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::HDU::NoNullValue) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1620 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 1676 a SDict begin H.S end 515 1676 a 515 1676 a SDict begin 12 H.A end 515 1676 a 515 1676 a SDict begin [ /View [/XYZ H.V] /Dest (section*.55) cvn H.B /DEST pdfmark end 515 1676 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1808 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1809 a SDict begin H.S end 722 1809 a 0 0 1 TeXcolorrgb -1 x Fx(NoNullV)-9 b(alue)p 0 0 1 TeXcolorrgb 1160 1752 a SDict begin H.R end 1160 1752 a 1160 1808 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoNullValue_a13c08a23ed54e9e1ef3d16fbbff61301) cvn H.B /ANN pdfmark end 1160 1808 a 0 TeXcolorgray 21 w Fx(\(const)20 b(string)g(&diag,)f(bool)g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 1933 a Fl(Exception)e(ctor)-8 b(,)16 b(pr)m(e\002xes)h(the)f(string)f("F)m(its)g(Err)m(or:)22 b(No)15 b(Null)h(Pixel)f(V)-8 b(alue)15 b(speci\002ed)i(for)f(Ima)o(g)o (e)840 2024 y(")j(befor)m(e)h(the)f(speci\002c)h(messa)o(g)o(e)o(.)515 2161 y SDict begin H.S end 515 2161 a 515 2161 a SDict begin 12 H.A end 515 2161 a 515 2161 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.35.1) cvn H.B /DEST pdfmark end 515 2161 a 0.25 TeXcolorgray 132 x Fo(24.35.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2495 a Fx(e)o(xception)g(to)i(be)h (thro)n(wn)d(on)i(seek)g(errors)g(for)f(k)o(e)o(yw)o(ords.)515 2635 y SDict begin H.S end 515 2635 a 515 2635 a SDict begin 12 H.A end 515 2635 a 515 2635 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.35.2) cvn H.B /DEST pdfmark end 515 2635 a 0.25 TeXcolorgray 129 x Fo(24.35.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 2967 a SDict begin H.S end 515 2967 a 0 TeXcolorgray 0 TeXcolorgray 515 2967 a SDict begin H.R end 515 2967 a 515 2967 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1NoNullValue_a13c08a23ed54e9e1ef3d16fbbff61301) cvn H.B /DEST pdfmark end 515 2967 a 0 TeXcolorgray 515 3004 a SDict begin H.S end 515 3004 a 515 3004 a SDict begin 12 H.A end 515 3004 a 515 3004 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.35.2.1) cvn H.B /DEST pdfmark end 515 3004 a 0.25 TeXcolorgray 147 x Fo(24.35.2.1)75 b(CC\002ts::HDU::NoNullV)l(alue::)q(NoN)q(ullV)l(a)q(lue)23 b(\()35 b(const)18 b(string)g(&)g Fk(dia)o(g,)35 b Fo(bool)18 b Fk(silent)g(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 3335 a Fx(Exception)17 b(ctor)m(,)i(pre\002x)o(es)g(the)g(string)g ("Fits)i(Error:)i(No)d(Null)f(Pix)o(el)h(V)-9 b(alue)19 b(speci\002ed)g(for)g(Image)515 3435 y(")h(before)f(the)h(speci\002c)h (message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3645 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3587 a SDict begin H.S end 515 3587 a 515 3587 a SDict begin 12 H.A end 515 3587 a 515 3587 a SDict begin [ /View [/XYZ H.V] /Dest (table.77) cvn H.B /DEST pdfmark end 515 3587 a 0.5 TeXcolorgray 515 3690 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3690 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3790 4 100 v 0 TeXcolorgray 830 3760 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 3790 V 0 TeXcolorgray 59 w Fx(A)c(speci\002c)g (diagnostic)f(message,)h(the)g(name)f(of)h(the)p 0 0 1 TeXcolorrgb 2585 3761 a SDict begin H.S end 2585 3761 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2765 3706 a SDict begin H.R end 2765 3706 a 2765 3760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2765 3760 a 0 TeXcolorgray 18 w Fx(if)g(not)f(the)h (primary)-5 b(.)p 0.5 TeXcolorgray 3400 3790 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3793 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3793 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3893 4 100 v 0 TeXcolorgray 796 3863 a Ft(silent)p 0.5 TeXcolorgray 1005 3893 V 0 TeXcolorgray 61 w Fx(if)20 b(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 3864 a SDict begin H.S end 2047 3864 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode) p 0 0 1 TeXcolorrgb 2714 3807 a SDict begin H.R end 2714 3807 a 2714 3863 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 3863 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 3893 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3896 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3896 V 0 TeXcolorgray 515 4126 a(The)g(documentation)d(for)i(this)i (class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4339 a(\225)p 0 TeXcolorgray 41 w(HDU.h)p 0 TeXcolorgray 652 4447 a(\225)p 0 TeXcolorgray 41 w(HDU.cxx)p 0 TeXcolorgray 515 4661 a SDict begin H.S end 515 4661 a 0 TeXcolorgray 0 TeXcolorgray 515 4661 a SDict begin H.R end 515 4661 a 515 4661 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1NoSuchKeyword) cvn H.B /DEST pdfmark end 515 4661 a 0 TeXcolorgray 515 4782 a SDict begin H.S end 515 4782 a 515 4782 a SDict begin 12 H.A end 515 4782 a 515 4782 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.36) cvn H.B /DEST pdfmark end 515 4782 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 473 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 126 131 TeXDict begin 126 130 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.126) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.36)81 b(CC\002ts::HDU::NoSuchK)n (eyw)o(ord)17 b(Class)k(Refer)o(ence)761 b(126)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fq(24.36)89 b(CC\002ts::HDU::NoSuc)o(hK)o(e)o(yw)o(or)o(d)22 b(Class)f(Ref)o (erence)p 0 TeXcolorgray 515 726 a Fx(e)o(xception)d(to)i(be)h(thro)n (wn)d(on)i(seek)g(errors)g(for)f(k)o(e)o(yw)o(ords.)515 873 y Fr(#include)48 b Fu(<)p Fr(HDU.h)p Fu(>)515 1020 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::HDU::NoSuchK)n(e)o(yw)o (ord:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1395 1618 a @beginspecial 0 @llx 0 @lly 500 @urx 213.903748 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1HDU_1_1NoSuchKeyword.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 213.903743 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.337500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::HDU::NoSuchKeyword) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::HDU::NoSuchKeyword) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 1969 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 2026 a SDict begin H.S end 515 2026 a 515 2026 a SDict begin 12 H.A end 515 2026 a 515 2026 a SDict begin [ /View [/XYZ H.V] /Dest (section*.56) cvn H.B /DEST pdfmark end 515 2026 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2158 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2176 a SDict begin H.S end 722 2176 a 0 0 1 TeXcolorrgb -18 x Fx(NoSuchK)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1295 2102 a SDict begin H.R end 1295 2102 a 1295 2158 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_1_1NoSuchKeyword_a8f012eff5e0635b5762fe6e13efc3ab5) cvn H.B /ANN pdfmark end 1295 2158 a 0 TeXcolorgray 20 w Fx(\(const)i(string)g(&diag,)f(bool)g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2283 a Fl(Exception)j(ctor)-8 b(,)22 b(pr)m(e\002xes)h(the)e(string)h("F)m(its)e(Err)m(or:)28 b(K)m(e)n(ywor)m(d)22 b(not)g(found:)29 b(")22 b(befor)m(e)g(the)g (spe-)840 2374 y(ci\002c)e(messa)o(g)o(e)o(.)515 2511 y SDict begin H.S end 515 2511 a 515 2511 a SDict begin 12 H.A end 515 2511 a 515 2511 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.36.1) cvn H.B /DEST pdfmark end 515 2511 a 0.25 TeXcolorgray 131 x Fo(24.36.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2845 a Fx(e)o(xception)g(to)i(be)h (thro)n(wn)d(on)i(seek)g(errors)g(for)f(k)o(e)o(yw)o(ords.)515 2985 y SDict begin H.S end 515 2985 a 515 2985 a SDict begin 12 H.A end 515 2985 a 515 2985 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.36.2) cvn H.B /DEST pdfmark end 515 2985 a 0.25 TeXcolorgray 129 x Fo(24.36.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3316 a SDict begin H.S end 515 3316 a 0 TeXcolorgray 0 TeXcolorgray 515 3316 a SDict begin H.R end 515 3316 a 515 3316 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1HDU_1_1NoSuchKeyword_a8f012eff5e0635b5762fe6e13efc3ab5) cvn H.B /DEST pdfmark end 515 3316 a 0 TeXcolorgray 515 3354 a SDict begin H.S end 515 3354 a 515 3354 a SDict begin 12 H.A end 515 3354 a 515 3354 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.36.2.1) cvn H.B /DEST pdfmark end 515 3354 a 0.25 TeXcolorgray 147 x Fo(24.36.2.1)75 b(CC\002ts::HDU::NoSuc)o(hK)o(e)o(yw)o(or)o(d:)q(:No)q(SuchKe)o(yw)o (or)o(d)24 b(\()36 b(const)19 b(string)g(&)f Fk(dia)o(g,)37 b Fo(bool)19 b Fk(silent)g(=)845 3600 y Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 3785 a Fx(Exception)15 b(ctor)m(,)i (pre\002x)o(es)f(the)h(string)g("Fits)h(Error:)23 b(K)n(e)o(yw)o(ord)15 b(not)i(found:)22 b(")c(before)d(the)i(speci\002c)515 3884 y(message.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4094 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4037 a SDict begin H.S end 515 4037 a 515 4037 a SDict begin 12 H.A end 515 4037 a 515 4037 a SDict begin [ /View [/XYZ H.V] /Dest (table.78) cvn H.B /DEST pdfmark end 515 4037 a 0.5 TeXcolorgray 515 4140 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4140 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4339 4 200 v 0 TeXcolorgray 830 4210 a Ft(dia)o(g)p 0.5 TeXcolorgray 1005 4339 V 0 TeXcolorgray 59 w Fx(A)30 b(speci\002c)g(diagnostic)f(message,)j(usually)d(the)h(name)f(of)g(the) h(k)o(e)o(yw)o(ord)e(re-)1037 4309 y(quested.)p 0.5 TeXcolorgray 3400 4339 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4342 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4342 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4442 4 100 v 0 TeXcolorgray 796 4412 a Ft(silent)p 0.5 TeXcolorgray 1005 4442 V 0 TeXcolorgray 61 w Fx(if)20 b(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 4413 a SDict begin H.S end 2047 4413 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 4356 a SDict begin H.R end 2714 4356 a 2714 4412 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 4412 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 4442 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4445 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4445 V 0 TeXcolorgray 515 4675 a(The)g(documentation)d(for)i(this)i(class)g(w)o (as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4888 a(\225)p 0 TeXcolorgray 41 w(HDU.h)p 0 TeXcolorgray 652 4996 a(\225)p 0 TeXcolorgray 41 w(HDU.cxx)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 127 132 TeXDict begin 127 131 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.127) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.37)81 b(CC\002ts::ImageExt)p Fu(<)18 b Fy(T)j Fu(>)f Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)681 b(127)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.S end 515 523 a 0 TeXcolorgray 0 TeXcolorgray 515 523 a SDict begin H.R end 515 523 a 515 523 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt) cvn H.B /DEST pdfmark end 515 523 a 0 TeXcolorgray 515 644 a SDict begin H.S end 515 644 a 515 644 a SDict begin 12 H.A end 515 644 a 515 644 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.37) cvn H.B /DEST pdfmark end 515 644 a 0.25 TeXcolorgray 164 x Fq(24.37)89 b(CC\002ts::Ima)o(g)q(eExt)p Fa(<)24 b Fq(T)c Fa(>)h Fq(Class)f(T)l(emplate)h(Ref)o(erence)p 0 TeXcolorgray 515 1011 a Fx(Inheritance)d(diagram)h(for)g (CC\002ts::ImageExt)p Fu(<)h Fx(T)g Fu(>)p Fx(:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1531 1845 a @beginspecial 0 @llx 0 @lly 500 @urx 425.531921 @ury 850 @rhi @setspecial %%BeginDocument: classCCfits_1_1ImageExt.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 425.531915 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 1.175000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 3 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::ImageExt< T >) cw (CCfits::ExtHDU) cw (CCfits::HDU) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::ImageExt< T >) 0.000000 0.000000 box (CCfits::ExtHDU) 0.000000 1.000000 box (CCfits::HDU) 0.000000 2.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in solid 0 0.000000 1.000000 out solid 1 0.000000 2.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2197 a Fo(Pub)o(lic)e(Member)g(Functions)p 0 TeXcolorgray 515 2254 a SDict begin H.S end 515 2254 a 515 2254 a SDict begin 12 H.A end 515 2254 a 515 2254 a SDict begin [ /View [/XYZ H.V] /Dest (section*.57) cvn H.B /DEST pdfmark end 515 2254 a 0 TeXcolorgray 0 TeXcolorgray 652 2386 a Fx(\225)p 0 TeXcolorgray 722 2386 a SDict begin H.S end 722 2386 a 0 TeXcolorgray 0 TeXcolorgray 722 2386 a SDict begin H.R end 722 2386 a 722 2386 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_a036e9a9301d0a8c5cfb2045168bf752e) cvn H.B /DEST pdfmark end 722 2386 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 2404 a SDict begin H.S end 981 2404 a 0 0 1 TeXcolorrgb -18 x Fp(\030)p Fx(ImageExt)p 0 0 1 TeXcolorrgb 1368 2332 a SDict begin H.R end 1368 2332 a 1368 2386 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_a036e9a9301d0a8c5cfb2045168bf752e) cvn H.B /ANN pdfmark end 1368 2386 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2510 a Fl(destructor)p 0 TeXcolorgray 0 TeXcolorgray 652 2618 a Fx(\225)p 0 TeXcolorgray 722 2618 a SDict begin H.S end 722 2618 a 0 TeXcolorgray 0 TeXcolorgray 722 2618 a SDict begin H.R end 722 2618 a 722 2618 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_a50f37e2cb14259f534b6bd88bc853da7) cvn H.B /DEST pdfmark end 722 2618 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 2636 a SDict begin H.S end 981 2636 a 0 0 1 TeXcolorrgb -18 x Fx(ImageExt)p 0 0 1 TeXcolorrgb 1303 2564 a SDict begin H.R end 1303 2564 a 1303 2618 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt) cvn H.B /ANN pdfmark end 1303 2618 a 0 TeXcolorgray Fu(<)j Fx(T)f Fu(>)g Fp(\003)p 0 0 1 TeXcolorrgb 1608 2619 a SDict begin H.S end 1608 2619 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1787 2562 a SDict begin H.R end 1787 2562 a 1787 2618 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_a50f37e2cb14259f534b6bd88bc853da7) cvn H.B /ANN pdfmark end 1787 2618 a 0 TeXcolorgray 21 w Fx(\(FITSBase)h Fp(\003)p Fx(p\))e(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2743 a Fl(virtual)g(copy)h(constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 2851 a Fx(\225)p 0 TeXcolorgray 722 2851 a SDict begin H.S end 722 2851 a 0 TeXcolorgray 0 TeXcolorgray 722 2851 a SDict begin H.R end 722 2851 a 722 2851 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_ace83a5e81e20d8210bf04ab2fd03aaa4) cvn H.B /DEST pdfmark end 722 2851 a 0 TeXcolorgray 21 w Fx(const)g(std::v)n(alarray)p Fu(<)e Fx(T)j Fu(>)f Fx(&)p 0 0 1 TeXcolorrgb 1679 2868 a SDict begin H.S end 1679 2868 a 0 0 1 TeXcolorrgb -17 x Fx(image)p 0 0 1 TeXcolorrgb 1882 2794 a SDict begin H.R end 1882 2794 a 1882 2851 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_ace83a5e81e20d8210bf04ab2fd03aaa4) cvn H.B /ANN pdfmark end 1882 2851 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2975 a Fl(r)m(eturn)g(the)f(ima)o(g)o(e)h(data)p 0 TeXcolorgray 652 3083 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)15 b(v)n(oid)p 0 0 1 TeXcolorrgb 1117 3084 a SDict begin H.S end 1117 3084 a 0 0 1 TeXcolorrgb -1 x Fx(readData)p 0 0 1 TeXcolorrgb 1416 3027 a SDict begin H.R end 1416 3027 a 1416 3083 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_a0f74472174c571dea4e7faa0cb23eae8) cvn H.B /ANN pdfmark end 1416 3083 a 0 TeXcolorgray 16 w Fx(\(bool)f(readFlag=f)o(alse,)h(const)g (std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&k)o(e)o(ys=std-)722 3183 y(::v)o(ector)p Fu(<)k Fx(String)h Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 840 3307 a Fl(r)m(ead)g(Ima)o(g)o(e)g(e)o (xtension)p 0 0 1 TeXcolorrgb 1497 3308 a SDict begin H.S end 1497 3308 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1658 3259 a SDict begin H.R end 1658 3259 a 1658 3307 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1658 3307 a 0 TeXcolorgray 19 w Fl(data)p 0 TeXcolorgray 652 3415 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(v)n(oid)p 0 0 1 TeXcolorrgb 1127 3416 a SDict begin H.S end 1127 3416 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1292 3359 a SDict begin H.R end 1292 3359 a 1292 3415 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_ad0531bb4a797027e6ff77517d2e09cc6) cvn H.B /ANN pdfmark end 1292 3415 a 0 TeXcolorgray 21 w Fx(\(double)f(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3540 a Fl(set)g(the)g(BSCALE)e(k)o(e) n(ywor)m(d)k(value)e(for)g(ima)o(g)o(es)h(\(see)f(warning)h(for)e(ima)o (g)o(es)i(of)f(int)g(type\))p 0 TeXcolorgray 0 TeXcolorgray 652 3648 a Fx(\225)p 0 TeXcolorgray 722 3648 a SDict begin H.S end 722 3648 a 0 TeXcolorgray 0 TeXcolorgray 722 3648 a SDict begin H.R end 722 3648 a 722 3648 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_a1eb7b465140aa151e2f7272c977846cd) cvn H.B /DEST pdfmark end 722 3648 a 0 TeXcolorgray 21 w Fx(virtual)h(double)p 0 0 1 TeXcolorrgb 1227 3649 a SDict begin H.S end 1227 3649 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1393 3591 a SDict begin H.R end 1393 3591 a 1393 3648 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_a1eb7b465140aa151e2f7272c977846cd) cvn H.B /ANN pdfmark end 1393 3648 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3772 a Fl(r)m(eturn)g(the)f(BSCALE)e (k)o(e)n(ywor)m(d)k(value)p 0 TeXcolorgray 652 3880 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)f(v)n(oid)p 0 0 1 TeXcolorrgb 1127 3881 a SDict begin H.S end 1127 3881 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1269 3842 a SDict begin H.R end 1269 3842 a 1269 3880 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_aa6d47bd83e9538694ee7d4f4d70ef33b) cvn H.B /ANN pdfmark end 1269 3880 a 0 TeXcolorgray 21 w Fx(\(double)f(v)n(alue\)) p 0 TeXcolorgray 0 TeXcolorgray 840 4005 a Fl(set)g(the)g(BZERO)e(k)o (e)n(ywor)m(d)j(value)g(for)f(ima)o(g)o(es)h(\(see)f(warning)g(for)g (ima)o(g)o(es)h(of)f(int)f(type\))p 0 TeXcolorgray 0 TeXcolorgray 652 4112 a Fx(\225)p 0 TeXcolorgray 722 4112 a SDict begin H.S end 722 4112 a 0 TeXcolorgray 0 TeXcolorgray 722 4112 a SDict begin H.R end 722 4112 a 722 4112 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_a53d36df4ae92f58771a25559120bacb9) cvn H.B /DEST pdfmark end 722 4112 a 0 TeXcolorgray 21 w Fx(virtual)i(double)p 0 0 1 TeXcolorrgb 1227 4113 a SDict begin H.S end 1227 4113 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1370 4074 a SDict begin H.R end 1370 4074 a 1370 4112 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ImageExt_a53d36df4ae92f58771a25559120bacb9) cvn H.B /ANN pdfmark end 1370 4112 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4237 a Fl(r)m(eturn)g(the)f(BZERO)e(k)o(e)n(ywor)m(d)j(value)515 4374 y SDict begin H.S end 515 4374 a 515 4374 a SDict begin 12 H.A end 515 4374 a 515 4374 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.37.1) cvn H.B /DEST pdfmark end 515 4374 a 0.25 TeXcolorgray 131 x Fo(24.37.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0.25 TeXcolorgray 515 4708 a(template)p Fu(<)p Fo(typename)i(T)p Fu(>)p Fo(c)o(lass)d (CC\002ts::Ima)o(g)q(eExt)p Fu(<)k Fo(T)c Fu(>)p 0 TeXcolorgray 515 4780 a SDict begin H.S end 515 4780 a 515 4780 a SDict begin 12 H.A end 515 4780 a 515 4780 a SDict begin [ /View [/XYZ H.V] /Dest (section*.58) cvn H.B /DEST pdfmark end 515 4780 a 131 x Fx(ImageExt)p Fu(<)p Fx(T)p Fu(>)g Fx(is)k(a)g(subclass)f(of)p 0 0 1 TeXcolorrgb 1559 4912 a SDict begin H.S end 1559 4912 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1854 4857 a SDict begin H.R end 1854 4857 a 1854 4911 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1854 4911 a 0 TeXcolorgray 21 w Fx(that)g(contains)g(image)f(data)i(of)e (type)h(T)-6 b(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51) h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 128 133 TeXDict begin 128 132 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.128) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.37)81 b(CC\002ts::ImageExt)p Fu(<)18 b Fy(T)j Fu(>)f Fy(Class)h(T)-8 b(emplate)21 b(Refer)o(ence)681 b(128)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.37.2) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.37.2)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.S end 515 726 a 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.R end 515 726 a 515 726 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_a0f74472174c571dea4e7faa0cb23eae8) cvn H.B /DEST pdfmark end 515 726 a 0 TeXcolorgray 515 763 a SDict begin H.S end 515 763 a 515 763 a SDict begin 12 H.A end 515 763 a 515 763 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.37.2.1) cvn H.B /DEST pdfmark end 515 763 a 0.25 TeXcolorgray 147 x Fo(24.37.2.1)75 b(template)p Fu(<)p Fo(typename)21 b(T)d Fu(>)e Fo(v)n(oid)j Fy(CC\002ts::ImageExt)p Fu(<)c Fo(T)j Fu(>)p Fo(::readData)g(\()35 b(bool)19 b Fk(readFla)o(g)845 1010 y(=)c Fr(false)p Fk(,)31 b Fo(const)17 b(std::vector)p Fu(<)g Fo(String)g Fu(>)e Fo(&)h Fk(ke)o(ys)f(=)h Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))845 1109 y Fo(\))71 b Fr([virtual])p 0 TeXcolorgray 515 1294 a Fx(read)19 b(Image)h(e)o(xtension)p 0 0 1 TeXcolorrgb 1244 1295 a SDict begin H.S end 1244 1295 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1424 1240 a SDict begin H.R end 1424 1240 a 1424 1294 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1424 1294 a 0 TeXcolorgray 21 w Fx(data)515 1441 y(Called)j(by)p 0 0 1 TeXcolorrgb 863 1442 a SDict begin H.S end 863 1442 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1033 1384 a SDict begin H.R end 1033 1384 a 1033 1441 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1033 1441 a 0 TeXcolorgray 24 w Fx(ctor)m(,)h(not)f(intended)f(for)g(general)h(use.)35 b(parameters)22 b(control)g(ho)n(w)h(much)f(gets)515 1540 y(read)d(on)h(initialization.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1733 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1676 a SDict begin H.S end 515 1676 a 515 1676 a SDict begin 12 H.A end 515 1676 a 515 1676 a SDict begin [ /View [/XYZ H.V] /Dest (table.79) cvn H.B /DEST pdfmark end 515 1676 a 0.5 TeXcolorgray 515 1779 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1779 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1878 4 100 v 0 TeXcolorgray 671 1848 a Ft(r)m(eadFla)o(g)p 0.5 TeXcolorgray 1005 1878 V 0 TeXcolorgray 59 w Fx(read)g(the)g(image)f(data)h(if)h(true)p 0.5 TeXcolorgray 3400 1878 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1882 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1882 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1981 4 100 v 0 TeXcolorgray 869 1951 a Ft(k)o(e)n(y)p 0.5 TeXcolorgray 1005 1981 V 0 TeXcolorgray 60 w Fx(a)f(v)o(ector)f(of)h(strings)h(of)e (k)o(e)o(yw)o(ord)g(names)h(to)g(be)g(read)g(from)f(the)p 0 0 1 TeXcolorrgb 2937 1952 a SDict begin H.S end 2937 1952 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 3117 1897 a SDict begin H.R end 3117 1897 a 3117 1951 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3117 1951 a 0 TeXcolorgray 0.5 TeXcolorgray 3400 1981 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1985 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1985 V 0 TeXcolorgray 515 2193 a Fx(Implements)p 0 0 1 TeXcolorrgb 928 2194 a SDict begin H.S end 928 2194 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1481 2136 a SDict begin H.R end 1481 2136 a 1481 2193 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a166d6a339f64d7d8d4715d33ea75195b) cvn H.B /ANN pdfmark end 1481 2193 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 2339 a SDict begin H.S end 515 2339 a 0 TeXcolorgray 0 TeXcolorgray 515 2339 a SDict begin H.R end 515 2339 a 515 2339 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_ad0531bb4a797027e6ff77517d2e09cc6) cvn H.B /DEST pdfmark end 515 2339 a 0 TeXcolorgray 515 2377 a SDict begin H.S end 515 2377 a 515 2377 a SDict begin 12 H.A end 515 2377 a 515 2377 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.37.2.2) cvn H.B /DEST pdfmark end 515 2377 a 0.25 TeXcolorgray 147 x Fo(24.37.2.2)75 b(template)p Fu(<)p Fo(typename)21 b(T)e Fu(>)e Fo(v)n(oid)i Fy(CC\002ts::ImageExt)p Fu(<)d Fo(T)i Fu(>)p Fo(::scale)h(\()36 b(doub)o(le)20 b Fk(v)o(alue)37 b Fo(\))845 2623 y Fr([virtual])p 0 TeXcolorgray 515 2808 a Fx(set)21 b(the)f(BSCALE)h(k)o(e)o(yw)o(ord)d (v)n(alue)i(for)f(images)h(\(see)h(w)o(arning)e(for)g(images)h(of)g (int)h(type\))515 2954 y(F)o(or)h(primary)f(HDUs)i(and)g(image)f(e)o (xtensions,)f(this)j(will)f(add)f(\(or)g(update\))f(the)i(BSCALE)h(k)o (e)o(y-)515 3054 y(w)o(ord)g(in)h(the)g(header)-5 b(.)39 b(The)25 b(ne)n(w)f(setting)h(will)h(af)n(fect)e(future)g(image)h (array)f(read/writes)g(as)i(de-)515 3154 y(scribed)c(in)i(section)f (4.7)f(Data)i(Scaling)f(of)g(the)g(CFITSIO)h(manual.)33 b(F)o(or)23 b(table)g(e)o(xtensions)f(this)515 3253 y(function)c(does)i (nothing.)515 3400 y(WARNING:)k(If)g(the)g(image)g(contains)f Fy(integer)m(-type)f(data)i Fx(\(as)g(indicated)f(by)g(the)p 0 0 1 TeXcolorrgb 3013 3418 a SDict begin H.S end 3013 3418 a 0 0 1 TeXcolorrgb -18 x Fx(bitpix\(\))p 0 0 1 TeXcolorrgb 3262 3344 a SDict begin H.R end 3262 3344 a 3262 3400 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 3262 3400 a 0 TeXcolorgray 25 w Fx(re-)515 3500 y(turn)c(v)n(alue\),)g(the)i(ne)n(w)f(scale)h(and)f(zero)f(v)n (alue)h(combination)e(must)i(not)g(be)h(such)f(that)g(the)h(scaled)515 3599 y(data)f(w)o(ould)f(require)g(a)h(\003oating-point)e(type)i (\(this)g(uses)g(the)h(CFITSIO)f(function)e(\002ts_get_img-)515 3699 y(_equi)n(vtype)f(to)i(mak)o(e)g(the)g(determination\).)k(If)c (this)h(situation)f(occurs,)f(the)i(function)d(will)j(thro)n(w)515 3799 y(a)p 0 0 1 TeXcolorrgb 572 3817 a SDict begin H.S end 572 3817 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1034 3742 a SDict begin H.R end 1034 3742 a 1034 3799 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1034 3799 a 0 TeXcolorgray Fx(.)515 3946 y(Reimplemented)e(from)p 0 0 1 TeXcolorrgb 1243 3947 a SDict begin H.S end 1243 3947 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1682 3889 a SDict begin H.R end 1682 3889 a 1682 3946 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) cvn H.B /ANN pdfmark end 1682 3946 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 4092 a SDict begin H.S end 515 4092 a 0 TeXcolorgray 0 TeXcolorgray 515 4092 a SDict begin H.R end 515 4092 a 515 4092 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1ImageExt_aa6d47bd83e9538694ee7d4f4d70ef33b) cvn H.B /DEST pdfmark end 515 4092 a 0 TeXcolorgray 515 4130 a SDict begin H.S end 515 4130 a 515 4130 a SDict begin 12 H.A end 515 4130 a 515 4130 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.37.2.3) cvn H.B /DEST pdfmark end 515 4130 a 0.25 TeXcolorgray 147 x Fo(24.37.2.3)75 b(template)p Fu(<)p Fo(typename)22 b(T)c Fu(>)g Fo(v)n(oid)h Fy(CC\002ts::ImageExt)p Fu(<)d Fo(T)j Fu(>)p Fo(::z)q(er)o(o)f(\()36 b(doub)o(le)21 b Fk(v)o(alue)36 b Fo(\))845 4376 y Fr([virtual])p 0 TeXcolorgray 515 4560 a Fx(set)21 b(the)f(BZERO)h(k)o(e)o(yw)o(ord)d(v) n(alue)i(for)f(images)h(\(see)h(w)o(arning)e(for)g(images)h(of)g(int)g (type\))515 4707 y(F)o(or)15 b(primary)e(HDUs)j(and)f(image)g(e)o (xtensions,)f(this)i(will)g(add)f(\(or)f(update\))g(the)h(BZERO)h(k)o (e)o(yw)o(ord)515 4807 y(in)24 b(the)g(header)-5 b(.)35 b(The)23 b(ne)n(w)h(setting)g(will)h(af)n(fect)e(future)g(image)g (array)g(read/writes)g(as)i(described)515 4907 y(in)c(section)f(4.7)g (Data)i(Scaling)e(of)g(the)h(CFITSIO)g(manual.)26 b(F)o(or)21 b(table)f(e)o(xtensions)g(this)h(function)515 5006 y(does)f(nothing.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 129 134 TeXDict begin 129 133 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.129) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.38)81 b(CC\002ts::K)n(eyw)o(ord)18 b(Class)j(Refer)o(ence)1278 b(129)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(WARNING:)24 b(If)g(the)g(image)g(contains)f Fy(integer)m(-type)f(data)i Fx(\(as)g(indicated)f(by)g(the)p 0 0 1 TeXcolorrgb 3013 541 a SDict begin H.S end 3013 541 a 0 0 1 TeXcolorrgb -18 x Fx(bitpix\(\))p 0 0 1 TeXcolorrgb 3262 467 a SDict begin H.R end 3262 467 a 3262 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 3262 523 a 0 TeXcolorgray 25 w Fx(re-)515 623 y(turn)c(v)n(alue\),)g(the)i(ne)n(w)f(scale)h(and)f(zero)f(v)n (alue)h(combination)e(must)i(not)g(be)h(such)f(that)g(the)h(scaled)515 722 y(data)f(w)o(ould)f(require)g(a)h(\003oating-point)e(type)i(\(this) g(uses)g(the)h(CFITSIO)f(function)e(\002ts_get_img-)515 822 y(_equi)n(vtype)f(to)i(mak)o(e)g(the)g(determination\).)k(If)c (this)h(situation)f(occurs,)f(the)i(function)d(will)j(thro)n(w)515 922 y(a)p 0 0 1 TeXcolorrgb 572 940 a SDict begin H.S end 572 940 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1034 865 a SDict begin H.R end 1034 865 a 1034 922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1034 922 a 0 TeXcolorgray Fx(.)515 1068 y(Reimplemented)e(from)p 0 0 1 TeXcolorrgb 1243 1069 a SDict begin H.S end 1243 1069 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1682 1012 a SDict begin H.R end 1682 1012 a 1682 1068 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) cvn H.B /ANN pdfmark end 1682 1068 a 0 TeXcolorgray Fx(.)515 1215 y(The)i(documentation)d(for)i (this)i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f (\002le:)p 0 TeXcolorgray 652 1419 a(\225)p 0 TeXcolorgray 41 w(ImageExt.h)p 0 TeXcolorgray 515 1623 a SDict begin H.S end 515 1623 a 0 TeXcolorgray 0 TeXcolorgray 515 1623 a SDict begin H.R end 515 1623 a 515 1623 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword) cvn H.B /DEST pdfmark end 515 1623 a 0 TeXcolorgray 515 1743 a SDict begin H.S end 515 1743 a 515 1743 a SDict begin 12 H.A end 515 1743 a 515 1743 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.38) cvn H.B /DEST pdfmark end 515 1743 a 0.25 TeXcolorgray 163 x Fq(24.38)89 b(CC\002ts::K)o(e)o(yw)o(or)o(d)21 b(Class)g(Ref)o(erence)p 0 TeXcolorgray 515 2109 a Fx(Abstract)f(base)g (class)h(de\002ning)e(the)h(interf)o(ace)g(for)p 0 0 1 TeXcolorrgb 2010 2127 a SDict begin H.S end 2010 2127 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2315 2053 a SDict begin H.R end 2315 2053 a 2315 2109 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2315 2109 a 0 TeXcolorgray 21 w Fx(objects.)515 2256 y Fr(#include)48 b Fu(<)p Fr(Keyword.h)p Fu(>)515 2403 y Fx(Inherited)18 b(by)i(CC\002ts::K)n(e)o(yData)p Fu(<)g Fx(T)h Fu(>)p Fx(.)p 0.25 TeXcolorgray 515 2669 a Fo(Pub)o(lic)d(Member)g(Functions)p 0 TeXcolorgray 515 2726 a SDict begin H.S end 515 2726 a 515 2726 a SDict begin 12 H.A end 515 2726 a 515 2726 a SDict begin [ /View [/XYZ H.V] /Dest (section*.59) cvn H.B /DEST pdfmark end 515 2726 a 0 TeXcolorgray 0 TeXcolorgray 652 2856 a Fx(\225)p 0 TeXcolorgray 722 2856 a SDict begin H.S end 722 2856 a 0 TeXcolorgray 0 TeXcolorgray 722 2856 a SDict begin H.R end 722 2856 a 722 2856 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_a627a4ffc2199b90952dd7adf9b1ec956) cvn H.B /DEST pdfmark end 722 2856 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 2874 a SDict begin H.S end 981 2874 a 0 0 1 TeXcolorrgb -18 x Fp(\030)p Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1350 2799 a SDict begin H.R end 1350 2799 a 1350 2856 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a627a4ffc2199b90952dd7adf9b1ec956) cvn H.B /ANN pdfmark end 1350 2856 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2978 a Fl(virtual)h(destructor)p 0 TeXcolorgray 0 TeXcolorgray 652 3084 a Fx(\225)p 0 TeXcolorgray 722 3084 a SDict begin H.S end 722 3084 a 0 TeXcolorgray 0 TeXcolorgray 722 3084 a SDict begin H.R end 722 3084 a 722 3084 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_ac92a807de0401fa32f6cdbfe96dd3083) cvn H.B /DEST pdfmark end 722 3084 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 3102 a SDict begin H.S end 981 3102 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1285 3027 a SDict begin H.R end 1285 3027 a 1285 3084 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1285 3084 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1368 3085 a SDict begin H.S end 1368 3085 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1548 3027 a SDict begin H.R end 1548 3027 a 1548 3084 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_ac92a807de0401fa32f6cdbfe96dd3083) cvn H.B /ANN pdfmark end 1548 3084 a 0 TeXcolorgray 21 w Fx(\(\))h(const)g(=0)p 0 TeXcolorgray 0 TeXcolorgray 840 3206 a Fl(virtual)f(copy)h (constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 3312 a Fx(\225)p 0 TeXcolorgray 722 3312 a SDict begin H.S end 722 3312 a 0 TeXcolorgray 0 TeXcolorgray 722 3312 a SDict begin H.R end 722 3312 a 722 3312 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_ac0e829b447ad71bb4405d196a693a8c6) cvn H.B /DEST pdfmark end 722 3312 a 0 TeXcolorgray 21 w Fx(const)g(String)g(&)p 0 0 1 TeXcolorrgb 1248 3313 a SDict begin H.S end 1248 3313 a 0 0 1 TeXcolorrgb -1 x Fx(comment)p 0 0 1 TeXcolorrgb 1557 3265 a SDict begin H.R end 1557 3265 a 1557 3312 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_ac0e829b447ad71bb4405d196a693a8c6) cvn H.B /ANN pdfmark end 1557 3312 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3434 a Fl(r)m(eturn)g(the)f(comment)h(\002eld)f(of)g (the)g(k)o(e)n(ywor)m(d)p 0 TeXcolorgray 0 TeXcolorgray 652 3539 a Fx(\225)p 0 TeXcolorgray 722 3539 a SDict begin H.S end 722 3539 a 0 TeXcolorgray 0 TeXcolorgray 722 3539 a SDict begin H.R end 722 3539 a 722 3539 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_a92d1b379da32e959be3b2fb2fb93548e) cvn H.B /DEST pdfmark end 722 3539 a 0 TeXcolorgray 21 w Fx(\002ts\002le)i Fp(\003)p 0 0 1 TeXcolorrgb 1034 3540 a SDict begin H.S end 1034 3540 a 0 0 1 TeXcolorrgb -1 x Fx(\002tsPointer)p 0 0 1 TeXcolorrgb 1375 3483 a SDict begin H.R end 1375 3483 a 1375 3539 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a92d1b379da32e959be3b2fb2fb93548e) cvn H.B /ANN pdfmark end 1375 3539 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3662 a Fl(r)m(eturn)g(a)f(pointer)h(to)f(the)p 0 0 1 TeXcolorrgb 1520 3663 a SDict begin H.S end 1520 3663 a 0 0 1 TeXcolorrgb -1 x Fl(FITS)p 0 0 1 TeXcolorrgb 1670 3611 a SDict begin H.R end 1670 3611 a 1670 3662 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1670 3662 a 0 TeXcolorgray 19 w Fl(\002le)g(containing)h (the)f(par)m(ent)p 0 0 1 TeXcolorrgb 2458 3663 a SDict begin H.S end 2458 3663 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 2620 3613 a SDict begin H.R end 2620 3613 a 2620 3662 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2620 3662 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 0 TeXcolorgray 652 3767 a Fx(\225)p 0 TeXcolorgray 722 3767 a SDict begin H.S end 722 3767 a 0 TeXcolorgray 0 TeXcolorgray 722 3767 a SDict begin H.R end 722 3767 a 722 3767 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_a818711c7e71c3d867bb8e9445ddf1335) cvn H.B /DEST pdfmark end 722 3767 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 3785 a SDict begin H.S end 743 3785 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 1096 3711 a SDict begin H.R end 1096 3711 a 1096 3767 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1096 3767 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 1117 3785 a SDict begin H.S end 1117 3785 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(ytype)p 0 0 1 TeXcolorrgb 1378 3711 a SDict begin H.R end 1378 3711 a 1378 3767 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a818711c7e71c3d867bb8e9445ddf1335) cvn H.B /ANN pdfmark end 1378 3767 a 0 TeXcolorgray 20 w Fx(\(\))20 b(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3889 a Fl(r)m(eturn)g(the)f(type)g(of)g(a)g(k)o(e)n (ywor)m(d)p 0 TeXcolorgray 0 TeXcolorgray 652 3995 a Fx(\225)p 0 TeXcolorgray 722 3995 a SDict begin H.S end 722 3995 a 0 TeXcolorgray 0 TeXcolorgray 722 3995 a SDict begin H.R end 722 3995 a 722 3995 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_ae0f6c4a86159817d3b0cde818d329a25) cvn H.B /DEST pdfmark end 722 3995 a 0 TeXcolorgray 21 w Fx(const)h(String)g(&)p 0 0 1 TeXcolorrgb 1248 3996 a SDict begin H.S end 1248 3996 a 0 0 1 TeXcolorrgb -1 x Fx(name)p 0 0 1 TeXcolorrgb 1428 3957 a SDict begin H.R end 1428 3957 a 1428 3995 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_ae0f6c4a86159817d3b0cde818d329a25) cvn H.B /ANN pdfmark end 1428 3995 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4117 a Fl(r)m(eturn)g(the)f(name)h(of)e(a)h(k)o(e)n (ywor)m(d)p 0 TeXcolorgray 0 TeXcolorgray 652 4223 a Fx(\225)p 0 TeXcolorgray 722 4223 a SDict begin H.S end 722 4223 a 0 TeXcolorgray 0 TeXcolorgray 722 4223 a SDict begin H.R end 722 4223 a 722 4223 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_abe80f519c298067a52c0792482048d53) cvn H.B /DEST pdfmark end 722 4223 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 4241 a SDict begin H.S end 911 4241 a 0 0 1 TeXcolorrgb -18 x Fx(operator!=)p 0 0 1 TeXcolorrgb 1263 4167 a SDict begin H.R end 1263 4167 a 1263 4223 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_abe80f519c298067a52c0792482048d53) cvn H.B /ANN pdfmark end 1263 4223 a 0 TeXcolorgray 20 w Fx(\(const)p 0 0 1 TeXcolorrgb 1507 4241 a SDict begin H.S end 1507 4241 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1812 4167 a SDict begin H.R end 1812 4167 a 1812 4223 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1812 4223 a 0 TeXcolorgray 20 w Fx(&right\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4345 a Fl(inequality)h(oper)o(ator)p 0 TeXcolorgray 0 TeXcolorgray 652 4451 a Fx(\225)p 0 TeXcolorgray 722 4451 a SDict begin H.S end 722 4451 a 0 TeXcolorgray 0 TeXcolorgray 722 4451 a SDict begin H.R end 722 4451 a 722 4451 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_a96af1f6a8a73dc4d8ec3e2ad159bb23e) cvn H.B /DEST pdfmark end 722 4451 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 4469 a SDict begin H.S end 743 4469 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1048 4395 a SDict begin H.R end 1048 4395 a 1048 4451 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1048 4451 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1154 4469 a SDict begin H.S end 1154 4469 a 0 0 1 TeXcolorrgb -18 x Fx(operator=)p 0 0 1 TeXcolorrgb 1477 4404 a SDict begin H.R end 1477 4404 a 1477 4451 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a96af1f6a8a73dc4d8ec3e2ad159bb23e) cvn H.B /ANN pdfmark end 1477 4451 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1722 4469 a SDict begin H.S end 1722 4469 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2027 4395 a SDict begin H.R end 2027 4395 a 2027 4451 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2027 4451 a 0 TeXcolorgray 20 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 4573 a Fl(assignment)g(oper)o(ator)p 0 TeXcolorgray 0 TeXcolorgray 652 4679 a Fx(\225)p 0 TeXcolorgray 722 4679 a SDict begin H.S end 722 4679 a 0 TeXcolorgray 0 TeXcolorgray 722 4679 a SDict begin H.R end 722 4679 a 722 4679 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_ae9278cc3de41df8efd54e44009dd50b8) cvn H.B /DEST pdfmark end 722 4679 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 4697 a SDict begin H.S end 911 4697 a 0 0 1 TeXcolorrgb -18 x Fx(operator==)p 0 0 1 TeXcolorrgb 1282 4632 a SDict begin H.R end 1282 4632 a 1282 4679 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_ae9278cc3de41df8efd54e44009dd50b8) cvn H.B /ANN pdfmark end 1282 4679 a 0 TeXcolorgray 20 w Fx(\(const)p 0 0 1 TeXcolorrgb 1526 4697 a SDict begin H.S end 1526 4697 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1831 4622 a SDict begin H.R end 1831 4622 a 1831 4679 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1831 4679 a 0 TeXcolorgray 21 w Fx(&right\))e(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4801 a Fl(equality)i(oper)o(ator)p 0 TeXcolorgray 652 4907 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(T)c Fg(>)722 5006 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 5007 a SDict begin H.S end 889 5007 a 0 0 1 TeXcolorrgb -1 x Fx(setV)-9 b(alue)p 0 0 1 TeXcolorrgb 1170 4950 a SDict begin H.R end 1170 4950 a 1170 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) cvn H.B /ANN pdfmark end 1170 5006 a 0 TeXcolorgray 21 w Fx(\(const)20 b(T)g(&ne)n(wV)-9 b(alue\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 130 135 TeXDict begin 130 134 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.130) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.38)81 b(CC\002ts::K)n(eyw)o(ord)18 b(Class)j(Refer)o(ence)1278 b(130)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(modify)19 b(the)g(value)h(of)f(an)g(e)o(xisting)p 0 0 1 TeXcolorrgb 1773 538 a SDict begin H.S end 1773 538 a 0 0 1 TeXcolorrgb -15 x Fl(K)m(e)n(ywor)m(d)p 0 0 1 TeXcolorrgb 2035 472 a SDict begin H.R end 2035 472 a 2035 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2035 523 a 0 TeXcolorgray 19 w Fl(and)g(write)g(it)f(to)h(the)g(\002le)p 0 TeXcolorgray 652 627 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(T)c Fg(>)722 727 y Fx(T)k(&)p 0 0 1 TeXcolorrgb 879 728 a SDict begin H.S end 879 728 a 0 0 1 TeXcolorrgb -1 x Fx(v)n(alue)p 0 0 1 TeXcolorrgb 1057 671 a SDict begin H.R end 1057 671 a 1057 727 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) cvn H.B /ANN pdfmark end 1057 727 a 0 TeXcolorgray 21 w Fx(\(T)f(&v)n(al\))f(const) p 0 TeXcolorgray 0 TeXcolorgray 840 848 a Fl(g)o(et)h(the)f(k)o(e)n (ywor)m(d)h(value)p 0 TeXcolorgray 652 952 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(v)n(oid)p 0 0 1 TeXcolorrgb 1127 953 a SDict begin H.S end 1127 953 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1297 895 a SDict begin H.R end 1297 895 a 1297 952 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_aebeab56157e11d0344076602bd10594d) cvn H.B /ANN pdfmark end 1297 952 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 1072 a Fl(left)f(in)f(for)h(historical)g(r)m(easons,)h (this)f(seldom)g(needs)h(to)f(be)g(called)h(by)f(user)o(s)p 0.25 TeXcolorgray 515 1337 a Fo(Pr)o(otected)f(Member)g(Functions)p 0 TeXcolorgray 515 1394 a SDict begin H.S end 515 1394 a 515 1394 a SDict begin 12 H.A end 515 1394 a 515 1394 a SDict begin [ /View [/XYZ H.V] /Dest (section*.60) cvn H.B /DEST pdfmark end 515 1394 a 0 TeXcolorgray 0 TeXcolorgray 652 1522 a Fx(\225)p 0 TeXcolorgray 722 1522 a SDict begin H.S end 722 1522 a 0 TeXcolorgray 0 TeXcolorgray 722 1522 a SDict begin H.R end 722 1522 a 722 1522 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_afbcc174e856a3f0be7d77d1634ab0075) cvn H.B /DEST pdfmark end 722 1522 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 1540 a SDict begin H.S end 743 1540 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1048 1466 a SDict begin H.R end 1048 1466 a 1048 1522 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_afbcc174e856a3f0be7d77d1634ab0075) cvn H.B /ANN pdfmark end 1048 1522 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1292 1540 a SDict begin H.S end 1292 1540 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1597 1466 a SDict begin H.R end 1597 1466 a 1597 1522 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1597 1522 a 0 TeXcolorgray 21 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 1643 a Fl(copy)i(constructor)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1747 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1765 a SDict begin H.S end 722 1765 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1027 1691 a SDict begin H.R end 1027 1691 a 1027 1747 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a775cd61e991612a512d62fa722b7e64a) cvn H.B /ANN pdfmark end 1027 1747 a 0 TeXcolorgray 29 w Fx(\(const)28 b(String)g(&k)o(e)o(yname,)p 0 0 1 TeXcolorrgb 1934 1765 a SDict begin H.S end 1934 1765 a 0 0 1 TeXcolorrgb -18 x Fx(V)-9 b(alueT)i(ype)p 0 0 1 TeXcolorrgb 2287 1691 a SDict begin H.R end 2287 1691 a 2287 1747 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 2287 1747 a 0 TeXcolorgray 29 w Fx(k)o(e)o(ytype,)p 0 0 1 TeXcolorrgb 2628 1748 a SDict begin H.S end 2628 1748 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2808 1693 a SDict begin H.R end 2808 1693 a 2808 1747 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2808 1747 a 0 TeXcolorgray 29 w Fp(\003)p Fx(p,)30 b(const)e(String)722 1847 y(&comment=""\))p 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 1983 a SDict begin H.S end 840 1983 a 0 0 1 TeXcolorrgb -15 x Fl(K)m(e)n(ywor)m(d)p 0 0 1 TeXcolorrgb 1103 1917 a SDict begin H.R end 1103 1917 a 1103 1968 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1103 1968 a 0 TeXcolorgray 18 w Fl(constructor)-8 b(.)p 0 TeXcolorgray 0 TeXcolorgray 652 2072 a Fx(\225)p 0 TeXcolorgray 722 2072 a SDict begin H.S end 722 2072 a 0 TeXcolorgray 0 TeXcolorgray 722 2072 a SDict begin H.R end 722 2072 a 722 2072 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_ab8dbaacd101e7b1bc3ebf5aa62493823) cvn H.B /DEST pdfmark end 722 2072 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 2090 a SDict begin H.S end 910 2090 a 0 0 1 TeXcolorrgb -18 x Fx(k)o(e)o(ytype)p 0 0 1 TeXcolorrgb 1171 2015 a SDict begin H.R end 1171 2015 a 1171 2072 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_ab8dbaacd101e7b1bc3ebf5aa62493823) cvn H.B /ANN pdfmark end 1171 2072 a 0 TeXcolorgray 20 w Fx(\()p 0 0 1 TeXcolorrgb 1219 2090 a SDict begin H.S end 1219 2090 a 0 0 1 TeXcolorrgb -18 x Fx(V)f(alueT)i(ype)p 0 0 1 TeXcolorrgb 1572 2015 a SDict begin H.R end 1572 2015 a 1572 2072 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits_a1291594525d4e6fd06698c98a7a7ec2f) cvn H.B /ANN pdfmark end 1572 2072 a 0 TeXcolorgray 21 w Fx(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2192 a Fl(set)19 b(k)o(e)n(ywor)m(d)h(type)o(.)p 0 TeXcolorgray 0 TeXcolorgray 652 2297 a Fx(\225)p 0 TeXcolorgray 722 2297 a SDict begin H.S end 722 2297 a 0 TeXcolorgray 0 TeXcolorgray 722 2297 a SDict begin H.R end 722 2297 a 722 2297 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_aee44ef253c61cbcb4ef77e3645439583) cvn H.B /DEST pdfmark end 722 2297 a 0 TeXcolorgray 21 w Fx(const)p 0 0 1 TeXcolorrgb 939 2298 a SDict begin H.S end 939 2298 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1119 2243 a SDict begin H.R end 1119 2243 a 1119 2297 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1119 2297 a 0 TeXcolorgray 21 w Fp(\003)p 0 0 1 TeXcolorrgb 1202 2315 a SDict begin H.S end 1202 2315 a 0 0 1 TeXcolorrgb -18 x Fx(parent)p 0 0 1 TeXcolorrgb 1409 2250 a SDict begin H.R end 1409 2250 a 1409 2297 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_aee44ef253c61cbcb4ef77e3645439583) cvn H.B /ANN pdfmark end 1409 2297 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 2417 a Fl(r)m(eturn)g(a)f(pointer)h(to)f(par)m(ent)p 0 0 1 TeXcolorrgb 1622 2418 a SDict begin H.S end 1622 2418 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1783 2369 a SDict begin H.R end 1783 2369 a 1783 2417 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1783 2417 a 0 TeXcolorgray Fl(.)515 2551 y SDict begin H.S end 515 2551 a 515 2551 a SDict begin 12 H.A end 515 2551 a 515 2551 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.38.1) cvn H.B /DEST pdfmark end 515 2551 a 0.25 TeXcolorgray 131 x Fo(24.38.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 2885 a Fx(Abstract)i(base)g(class)h (de\002ning)e(the)h(interf)o(ace)g(for)p 0 0 1 TeXcolorrgb 2010 2903 a SDict begin H.S end 2010 2903 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2315 2829 a SDict begin H.R end 2315 2829 a 2315 2885 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2315 2885 a 0 TeXcolorgray 21 w Fx(objects.)p 0 0 1 TeXcolorrgb 515 3050 a SDict begin H.S end 515 3050 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 820 2976 a SDict begin H.R end 820 2976 a 820 3032 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 820 3032 a 0 TeXcolorgray 16 w Fx(object)15 b(creation)g(is)i(normally)d (performed)f(inside)p 0 0 1 TeXcolorrgb 2304 3033 a SDict begin H.S end 2304 3033 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2474 2976 a SDict begin H.R end 2474 2976 a 2474 3032 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2474 3032 a 0 TeXcolorgray 17 w Fx(constructors)h(or)p 0 0 1 TeXcolorrgb 2999 3033 a SDict begin H.S end 2999 3033 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::read)p 0 0 1 TeXcolorrgb 3358 2976 a SDict begin H.R end 3358 2976 a 3358 3032 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_a3640e3ad1c29931b37a13ac91106504e) cvn H.B /ANN pdfmark end 3358 3032 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 515 3150 a SDict begin H.S end 515 3150 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::readK)n(e)o(y)p 0 0 1 TeXcolorrgb 1019 3075 a SDict begin H.R end 1019 3075 a 1019 3132 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a8c9d28570c1a7f8fc09cc10398bd6080) cvn H.B /ANN pdfmark end 1019 3132 a 0 TeXcolorgray Fx(,)28 b(and)p 0 0 1 TeXcolorrgb 1214 3150 a SDict begin H.S end 1214 3150 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::addK)n(e)o(y)p 0 0 1 TeXcolorrgb 1695 3075 a SDict begin H.R end 1695 3075 a 1695 3132 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) cvn H.B /ANN pdfmark end 1695 3132 a 0 TeXcolorgray 27 w Fx(functions.)41 b(Output)25 b(is)i(performed)d(in)p 0 0 1 TeXcolorrgb 2898 3150 a SDict begin H.S end 2898 3150 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::addK)n(e)o(y)p 0 0 1 TeXcolorrgb 3379 3075 a SDict begin H.R end 3379 3075 a 3379 3132 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) cvn H.B /ANN pdfmark end 3379 3132 a 0 TeXcolorgray 515 3231 a Fx(functions)18 b(and)p 0 0 1 TeXcolorrgb 985 3249 a SDict begin H.S end 985 3249 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord::setV)-9 b(alue)p 0 0 1 TeXcolorrgb 1617 3175 a SDict begin H.R end 1617 3175 a 1617 3231 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) cvn H.B /ANN pdfmark end 1617 3231 a 0 TeXcolorgray Fx(.)515 3378 y(K)n(e)o(yw)o(ords)23 b(consists)i(of)f(a)h(name,)f(a)h(v)n(alue)f(and)g(a)g(comment)f (\002eld.)38 b(Concrete)24 b(templated)f(sub-)515 3478 y(classes,)e(K)n(e)o(yData)p Fu(<)p Fx(T)p Fu(>)p Fx(,)d(ha)n(v)o(e)h (a)i(data)f(member)f(that)h(holds)g(the)g(v)n(alue)g(of)f(k)o(e)o(yw)o (ord.)515 3625 y(T)-7 b(ypically)i(,)26 b(the)f(mandatory)f(k)o(e)o(yw) o(ords)g(for)i(a)g(gi)n(v)o(en)p 0 0 1 TeXcolorrgb 2119 3626 a SDict begin H.S end 2119 3626 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2299 3571 a SDict begin H.R end 2299 3571 a 2299 3625 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2299 3625 a 0 TeXcolorgray 27 w Fx(type)f(are)h(not)g(stored)f(as)h(object)g (of)515 3724 y(type)p 0 0 1 TeXcolorrgb 689 3742 a SDict begin H.S end 689 3742 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 994 3668 a SDict begin H.R end 994 3668 a 994 3724 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 994 3724 a 0 TeXcolorgray Fx(,)33 b(b)n(ut)e(as)h(intrinsic)e(data)h (types.)56 b(The)p 0 0 1 TeXcolorrgb 2171 3742 a SDict begin H.S end 2171 3742 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2476 3668 a SDict begin H.R end 2476 3668 a 2476 3724 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2476 3724 a 0 TeXcolorgray 31 w Fx(hierarchy)29 b(is)i(used)g(to)g (store)515 3824 y(user)n(-supplied)18 b(information.)515 3960 y SDict begin H.S end 515 3960 a 515 3960 a SDict begin 12 H.A end 515 3960 a 515 3960 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.38.2) cvn H.B /DEST pdfmark end 515 3960 a 0.25 TeXcolorgray 129 x Fo(24.38.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4292 a SDict begin H.S end 515 4292 a 0 TeXcolorgray 0 TeXcolorgray 515 4292 a SDict begin H.R end 515 4292 a 515 4292 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_a775cd61e991612a512d62fa722b7e64a) cvn H.B /DEST pdfmark end 515 4292 a 0 TeXcolorgray 515 4329 a SDict begin H.S end 515 4329 a 515 4329 a SDict begin 12 H.A end 515 4329 a 515 4329 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.38.2.1) cvn H.B /DEST pdfmark end 515 4329 a 0.25 TeXcolorgray 147 x Fo(24.38.2.1)75 b(CC\002ts::K)o(e)o(yw)o(or)o(d::K)o(e)o(yw)o(or)o(d)22 b(\()35 b(const)19 b(String)f(&)f Fk(ke)o(yname)q(,)36 b Fy(V)-8 b(alueT)i(ype)17 b Fk(ke)o(ytype)q(,)35 b Fy(HDU)17 b Fp(\003)845 4576 y Fk(p,)35 b Fo(const)18 b(String)g(&)f Fk(comment)j(=)c Fr("")34 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4778 a SDict begin H.S end 515 4778 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 820 4703 a SDict begin H.R end 820 4703 a 820 4760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 820 4760 a 0 TeXcolorgray 20 w Fx(constructor)-5 b(.)515 4907 y(This)20 b(is)h(the)f(common)f(beha)n(vior)f(of)i(K)n(e)o(yw)o(ords)f (of)h(an)o(y)g(type.)k(Constructor)19 b(is)i(protected)e(as)i(the)515 5006 y(class)g(is)g(abstract.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 131 136 TeXDict begin 131 135 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.131) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.38)81 b(CC\002ts::K)n(eyw)o(ord)18 b(Class)j(Refer)o(ence)1278 b(131)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.38.3) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.38.3)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.S end 515 726 a 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.R end 515 726 a 515 726 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) cvn H.B /DEST pdfmark end 515 726 a 0 TeXcolorgray 515 763 a SDict begin H.S end 515 763 a 515 763 a SDict begin 12 H.A end 515 763 a 515 763 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.38.3.1) cvn H.B /DEST pdfmark end 515 763 a 0.25 TeXcolorgray 147 x Fo(24.38.3.1)75 b(template)p Fu(<)p Fo(typename)21 b(T)c Fu(>)g Fo(v)n(oid)h(CC\002ts::K)o(e)o(yw)o (or)o(d::setV)l(alue)k(\()34 b(const)19 b(T)e(&)h Fk(ne)o(wV)l(alue)34 b Fo(\))p 0 TeXcolorgray 515 1094 a Fx(modify)18 b(the)j(v)n(alue)e(of) h(an)g(e)o(xisting)p 0 0 1 TeXcolorrgb 1568 1112 a SDict begin H.S end 1568 1112 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1872 1038 a SDict begin H.R end 1872 1038 a 1872 1094 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1872 1094 a 0 TeXcolorgray 21 w Fx(and)g(write)g(it)h(to)f(the)h (\002le)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1304 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1247 a SDict begin H.S end 515 1247 a 515 1247 a SDict begin 12 H.A end 515 1247 a 515 1247 a SDict begin [ /View [/XYZ H.V] /Dest (table.80) cvn H.B /DEST pdfmark end 515 1247 a 0.5 TeXcolorgray 515 1350 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1350 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1450 4 100 v 0 TeXcolorgray 659 1420 a Ft(ne)o(wV)-9 b(alue)p 0.5 TeXcolorgray 1005 1450 V 0 TeXcolorgray 59 w Fx(\(T\))20 b(Ne)n(w)g(v)n(alue)g(for)f(the)p 0 0 1 TeXcolorrgb 1777 1438 a SDict begin H.S end 1777 1438 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2082 1363 a SDict begin H.R end 2082 1363 a 2082 1420 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2082 1420 a 0 TeXcolorgray 0.5 TeXcolorgray 3400 1450 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1453 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1453 V 0 TeXcolorgray 515 1683 a Fy(Allo)o(wed)d(T)g(types:)23 b Fx(This)15 b(must)h(cop)o(y)f Ft(ne)o(wV)-9 b(alue)14 b Fx(to)i(a)g(data)f(member)f(of)i(type)f(U)h(in)g(the)p 0 0 1 TeXcolorrgb 3074 1701 a SDict begin H.S end 3074 1701 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 3379 1627 a SDict begin H.R end 3379 1627 a 3379 1683 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 3379 1683 a 0 TeXcolorgray 515 1782 a Fx(subclass)31 b Fy(K)n(eyData)p Fu(<)p Fy(U)p Fu(>)d Fx(\(see)j(description)f(for)p 0 0 1 TeXcolorrgb 2049 1800 a SDict begin H.S end 2049 1800 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord::v) n(alue)p 0 0 1 TeXcolorrgb 2578 1726 a SDict begin H.R end 2578 1726 a 2578 1782 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) cvn H.B /ANN pdfmark end 2578 1782 a 0 TeXcolorgray 31 w Fx(\(T&)h(v)n(al\))f(for)h(more) f(de-)515 1882 y(tails\).)c(T)-7 b(o)21 b(a)n(v)n(oid)f(compilation)f (errors,)g(it)j(is)f(generally)e(best)i(to)g(pro)o(vide)d(a)j Ft(ne)o(wV)-9 b(alue)19 b Fx(of)h(type)g(T)515 1982 y(=)g(type)g(U,)g (though)f(the)h(follo)n(wing)f(type)g(con)m(v)o(ersions)f(will)j(also)g (be)f(handled:)p 0.5 TeXcolorgray 515 2058 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2158 4 100 v 0 TeXcolorgray 568 2128 a Fy(T)h Fx(\(from)e(ne)n(wV)-9 b(alue\))p 0.5 TeXcolorgray 1945 2158 V 0 TeXcolorgray 789 w Fy(U)21 b Fx(\(to)p 0 0 1 TeXcolorrgb 2192 2146 a SDict begin H.S end 2192 2146 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2497 2072 a SDict begin H.R end 2497 2072 a 2497 2128 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2497 2128 a 0 TeXcolorgray 21 w Fx(obj\))p 0.5 TeXcolorgray 3376 2158 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2162 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2258 4 100 v 0 TeXcolorgray 568 2228 a(\003oat)p 0.5 TeXcolorgray 1945 2258 V 0 TeXcolorgray 1282 w(double,)e(\003oat)p 0.5 TeXcolorgray 3376 2258 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2261 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2357 4 100 v 0 TeXcolorgray 568 2328 a(double)p 0.5 TeXcolorgray 1945 2357 V 0 TeXcolorgray 1202 w(double,)g(\003oat)h(\(will)h(lose)f(precision\))p 0.5 TeXcolorgray 3376 2357 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2361 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2457 4 100 v 0 TeXcolorgray 568 2427 a(int)p 0.5 TeXcolorgray 1945 2457 V 0 TeXcolorgray 1342 w(double,)f(\003oat,)h(int,)g(inte)o (ger)f(string)p 0.5 TeXcolorgray 3376 2457 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2460 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 515 2513 a SDict begin H.S end 515 2513 a 0 TeXcolorgray 0 TeXcolorgray 515 2513 a SDict begin H.R end 515 2513 a 515 2513 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_a65b457d993a6979180d648324b494fbb) cvn H.B /DEST pdfmark end 515 2513 a 0 TeXcolorgray 515 2550 a SDict begin H.S end 515 2550 a 515 2550 a SDict begin 12 H.A end 515 2550 a 515 2550 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.38.3.2) cvn H.B /DEST pdfmark end 515 2550 a 0.25 TeXcolorgray 147 x Fo(24.38.3.2)75 b(template)p Fu(<)p Fo(typename)21 b(T)c Fu(>)g Fo(T)g(&)g(CC\002ts::K) o(e)o(yw)o(or)o(d::v)o(alue)22 b(\()34 b(T)18 b(&)f Fk(v)o(al)34 b Fo(\))17 b(const)p 0 TeXcolorgray 515 2881 a Fx(get)j(the)g(k)o(e)o (yw)o(ord)e(v)n(alue)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3091 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3034 a SDict begin H.S end 515 3034 a 515 3034 a SDict begin 12 H.A end 515 3034 a 515 3034 a SDict begin [ /View [/XYZ H.V] /Dest (table.81) cvn H.B /DEST pdfmark end 515 3034 a 0.5 TeXcolorgray 515 3137 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3137 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3336 4 200 v 0 TeXcolorgray 875 3206 a Ft(val)p 0.5 TeXcolorgray 1005 3336 V 0 TeXcolorgray 60 w Fx(\(T\))d(W)m(ill)i(be)f (\002lled)g(with)g(the)g(k)o(e)o(yw)o(ord)e(v)n(alue,)i(and)f(is)i (also)f(the)g(function)e(return)1037 3306 y(v)n(alue.)p 0.5 TeXcolorgray 3400 3336 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3339 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3339 V 0 TeXcolorgray 515 3569 a Fy(Allo)o(wed)24 b(T)i(types:)p 0 0 1 TeXcolorrgb 1155 3570 a SDict begin H.S end 1155 3570 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1368 3513 a SDict begin H.R end 1368 3513 a 1368 3569 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1368 3569 a 0 TeXcolorgray 25 w Fx(stores)e(k)o(e)o (yw)o(ord)f(v)n(alues)g(of)h(type)g(U)h(in)f(a)h(templated)e(subclass)i (of)p 0 0 1 TeXcolorrgb 515 3687 a SDict begin H.S end 515 3687 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 820 3613 a SDict begin H.R end 820 3613 a 820 3669 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 820 3669 a 0 TeXcolorgray Fx(,)i Fy(K)n(eyData)p Fu(<)p Fy(U)p Fu(>)p Fx(.)37 b(Normally)25 b(U)h(is)g(set)g(when)f(reading)f(the)p 0 0 1 TeXcolorrgb 2669 3687 a SDict begin H.S end 2669 3687 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2973 3613 a SDict begin H.R end 2973 3613 a 2973 3669 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2973 3669 a 0 TeXcolorgray 26 w Fx(in)i(from)f(the)515 3768 y(\002le,)20 b(and)g(is)h(limited)f(to)h(types)f(int,)g(double,)e (string,)i(bool,)f(and)h(comple)o(x)p Fu(<)p Fx(\003oat)p Fu(>)p Fx(.)h(\(The)f(e)o(xcep-)515 3868 y(tion)26 b(is)h(when)e(the)i (user)f(has)g(created)g(and)f(added)g(a)i(ne)n(w)p 0 0 1 TeXcolorrgb 2255 3886 a SDict begin H.S end 2255 3886 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2560 3812 a SDict begin H.R end 2560 3812 a 2560 3868 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2560 3868 a 0 TeXcolorgray 26 w Fx(using)f(an)p 0 0 1 TeXcolorrgb 2898 3886 a SDict begin H.S end 2898 3886 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::addK)n(e)o(y)p 0 0 1 TeXcolorrgb 3379 3812 a SDict begin H.R end 3379 3812 a 3379 3868 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) cvn H.B /ANN pdfmark end 3379 3868 a 0 TeXcolorgray 515 3968 a Fx(function,)20 b(in)j(which)e(case)i(the)o(y)f(might)f(ha)n(v)o(e)h(speci\002ed)g (other)f(types)h(for)f(U.\))i(T)-7 b(o)22 b(a)n(v)n(oid)g(compi-)515 4067 y(lation)f(errors,)g(the)h(user)f(should)g(generally)f(try)i(to)g (pro)o(vide)d(a)k Ft(val)e Fx(of)h(type)f(T)h(=)g(type)f(U,)h(though) 515 4167 y(there)d(is)j(some)e(\003e)o(xibility)f(here)h(as)h(the)f (follo)n(wing)e(con)m(v)o(ersions)g(are)i(handled:)p 0.5 TeXcolorgray 515 4243 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4343 4 100 v 0 TeXcolorgray 568 4314 a Fy(T)h Fx(\(to)f(v)n(al\))p 0.5 TeXcolorgray 1945 4343 V 0 TeXcolorgray 1113 w Fy(U)h Fx(\(from)p 0 0 1 TeXcolorrgb 2289 4331 a SDict begin H.S end 2289 4331 a 0 0 1 TeXcolorrgb -17 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 2594 4257 a SDict begin H.R end 2594 4257 a 2594 4314 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 2594 4314 a 0 TeXcolorgray 20 w Fx(obj\))p 0.5 TeXcolorgray 3376 4343 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4347 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4543 4 200 v 0 TeXcolorgray 568 4413 a(\003oat)p 0.5 TeXcolorgray 1945 4543 V 0 TeXcolorgray 1282 w(double)e(\(will)i(lose)f (precision\),)f(\003oat,)h(int,)1998 4513 y(inte)o(ger)f(string)p 0.5 TeXcolorgray 3376 4543 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4546 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4642 4 100 v 0 TeXcolorgray 568 4612 a(double)p 0.5 TeXcolorgray 1945 4642 V 0 TeXcolorgray 1202 w(double,)g(\003oat,)h(int,)g(inte)o (ger)f(string)p 0.5 TeXcolorgray 3376 4642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4646 2865 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4742 4 100 v 0 TeXcolorgray 568 4712 a(int)p 0.5 TeXcolorgray 1945 4742 V 0 TeXcolorgray 1342 w(int,)i(inte)o(ger)e(string)p 0.5 TeXcolorgray 3376 4742 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4745 2865 4 v 0 TeXcolorgray 515 4854 a(More)g(con)m(v)o(ersions)f(may)i(be)g (added)f(in)h(the)h(future)e(as)h(the)h(need)e(arises.)p 0 TeXcolorgray 2662 4854 a SDict begin H.S end 2662 4854 a 0 TeXcolorgray 0 TeXcolorgray 2662 4854 a SDict begin H.R end 2662 4854 a 2662 4854 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Keyword_aebeab56157e11d0344076602bd10594d) cvn H.B /DEST pdfmark end 2662 4854 a 0 TeXcolorgray 515 4909 a SDict begin H.S end 515 4909 a 515 4909 a SDict begin 12 H.A end 515 4909 a 515 4909 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.38.3.3) cvn H.B /DEST pdfmark end 515 4909 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 346 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0.25 TeXcolorgray eop end %%Page: 132 137 TeXDict begin 132 136 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.132) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(132)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.38.3.3)75 b(v)n(oid)18 b(CC\002ts::K)o(e)o(yw)o(or)o(d::write)j(\()69 b(\))i Fr([virtual])p 0 TeXcolorgray 515 707 a Fx(left)20 b(in)h(for)e (historical)h(reasons,)f(this)i(seldom)f(needs)f(to)i(be)f(called)g(by) g(users)515 854 y(This)j(writes)i(the)p 0 0 1 TeXcolorrgb 1039 872 a SDict begin H.S end 1039 872 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord)p 0 0 1 TeXcolorrgb 1344 798 a SDict begin H.R end 1344 798 a 1344 854 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword) cvn H.B /ANN pdfmark end 1344 854 a 0 TeXcolorgray 24 w Fx(to)f(the)f(\002le,)i(and)e(is)i(called)e (internally)f(during)p 0 0 1 TeXcolorrgb 2763 872 a SDict begin H.S end 2763 872 a 0 0 1 TeXcolorrgb -18 x Fx(HDU::addK)n(e)o(y)p 0 0 1 TeXcolorrgb 3244 798 a SDict begin H.R end 3244 798 a 3244 854 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a9e9a82fe03e3396b18943ecb649b479f) cvn H.B /ANN pdfmark end 3244 854 a 0 TeXcolorgray 24 w Fx(op-)515 954 y(erations)28 b(or)g(the)p 0 0 1 TeXcolorrgb 1035 972 a SDict begin H.S end 1035 972 a 0 0 1 TeXcolorrgb -18 x Fx(K)n(e)o(yw)o(ord::setV)-9 b(alue)p 0 0 1 TeXcolorrgb 1667 897 a SDict begin H.R end 1667 897 a 1667 954 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Keyword_abba7b36cc6c5e794d224efce8542128a) cvn H.B /ANN pdfmark end 1667 954 a 0 TeXcolorgray 29 w Fx(function.)48 b(It)29 b(shouldn')o(t)d(normally)h(need)h(to)g(be)h(called)515 1053 y(e)o(xplicitly)-5 b(.)515 1200 y(The)20 b(documentation)d(for)i (this)i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f (\002les:)p 0 TeXcolorgray 652 1414 a(\225)p 0 TeXcolorgray 41 w(K)n(e)o(yw)o(ord.h)p 0 TeXcolorgray 652 1521 a(\225)p 0 TeXcolorgray 41 w(K)n(e)o(yw)o(ord.cxx)p 0 TeXcolorgray 652 1629 a(\225)p 0 TeXcolorgray 41 w(K)n(e)o(yw)o(ordT)-6 b(.h)p 0 TeXcolorgray 515 1843 a SDict begin H.S end 515 1843 a 0 TeXcolorgray 0 TeXcolorgray 515 1843 a SDict begin H.R end 515 1843 a 515 1843 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU) cvn H.B /DEST pdfmark end 515 1843 a 0 TeXcolorgray 515 1964 a SDict begin H.S end 515 1964 a 515 1964 a SDict begin 12 H.A end 515 1964 a 515 1964 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.39) cvn H.B /DEST pdfmark end 515 1964 a 0.25 TeXcolorgray 164 x Fq(24.39)89 b(CC\002ts::PHDU)23 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 2330 a Fx(class)h(representing)d(the)i(primary)p 0 0 1 TeXcolorrgb 1534 2331 a SDict begin H.S end 1534 2331 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1714 2276 a SDict begin H.R end 1714 2276 a 1714 2330 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1714 2330 a 0 TeXcolorgray 20 w Fx(for)g(a)p 0 0 1 TeXcolorrgb 1910 2331 a SDict begin H.S end 1910 2331 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2080 2274 a SDict begin H.R end 2080 2274 a 2080 2330 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2080 2330 a 0 TeXcolorgray 21 w Fx(\002le.)515 2477 y Fr(#include)48 b Fu(<)p Fr(PHDU.h)p Fu(>)515 2624 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::PHDU:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1669 3223 a @beginspecial 0 @llx 0 @lly 500 @urx 425.531921 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1PHDU.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 425.531915 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 1.175000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::PHDU) cw (CCfits::HDU) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::PHDU) 0.000000 0.000000 box (CCfits::HDU) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 3574 a Fo(Pub)o(lic)f(Member)g(Functions)p 0 TeXcolorgray 515 3631 a SDict begin H.S end 515 3631 a 515 3631 a SDict begin 12 H.A end 515 3631 a 515 3631 a SDict begin [ /View [/XYZ H.V] /Dest (section*.61) cvn H.B /DEST pdfmark end 515 3631 a 0 TeXcolorgray 652 3763 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)p 0 0 1 TeXcolorrgb 960 3764 a SDict begin H.S end 960 3764 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(PHDU)p 0 0 1 TeXcolorrgb 1250 3709 a SDict begin H.R end 1250 3709 a 1250 3763 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_aebb0d9bac5b961e7de036ad10f1a02c2) cvn H.B /ANN pdfmark end 1250 3763 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3887 a Fl(destructor)p 0 TeXcolorgray 0 TeXcolorgray 652 3995 a Fx(\225)p 0 TeXcolorgray 722 3995 a SDict begin H.S end 722 3995 a 0 TeXcolorgray 0 TeXcolorgray 722 3995 a SDict begin H.R end 722 3995 a 722 3995 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a6cefe66318d6014ef2d489e7a779f299) cvn H.B /DEST pdfmark end 722 3995 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 3996 a SDict begin H.S end 981 3996 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1207 3941 a SDict begin H.R end 1207 3941 a 1207 3995 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1207 3995 a 0 TeXcolorgray 20 w Fp(\003)p 0 0 1 TeXcolorrgb 1290 3996 a SDict begin H.S end 1290 3996 a 0 0 1 TeXcolorrgb -1 x Fx(clone)p 0 0 1 TeXcolorrgb 1469 3939 a SDict begin H.R end 1469 3939 a 1469 3995 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a6cefe66318d6014ef2d489e7a779f299) cvn H.B /ANN pdfmark end 1469 3995 a 0 TeXcolorgray 21 w Fx(\(FITSBase)j Fp(\003)p Fx(p\))e(const)h(=0)p 0 TeXcolorgray 0 TeXcolorgray 840 4120 a Fl(virtual)f(copy)h(constructor)-8 b(,)20 b(to)f(be)g (implemented)g(in)g(subclasses.)p 0 TeXcolorgray 0 TeXcolorgray 652 4228 a Fx(\225)p 0 TeXcolorgray 722 4228 a SDict begin H.S end 722 4228 a 0 TeXcolorgray 0 TeXcolorgray 722 4228 a SDict begin H.R end 722 4228 a 722 4228 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a09e704e18acc242d5b829ebcbcdd6d2b) cvn H.B /DEST pdfmark end 722 4228 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 4229 a SDict begin H.S end 911 4229 a 0 0 1 TeXcolorrgb -1 x Fx(e)o(xtend)p 0 0 1 TeXcolorrgb 1132 4171 a SDict begin H.R end 1132 4171 a 1132 4228 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a09e704e18acc242d5b829ebcbcdd6d2b) cvn H.B /ANN pdfmark end 1132 4228 a 0 TeXcolorgray 20 w Fx(\(\))h(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4352 a Fl(Returns)g(the)f(value)g(of) g(the)g(Primary')m(s)g(EXTEND)d(k)o(e)n(ywor)m(d.)p 0 TeXcolorgray 0 TeXcolorgray 652 4460 a Fx(\225)p 0 TeXcolorgray 722 4460 a SDict begin H.S end 722 4460 a 0 TeXcolorgray 0 TeXcolorgray 722 4460 a SDict begin H.R end 722 4460 a 722 4460 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a9b26ccfa93476dbbbc13588e5bf14d09) cvn H.B /DEST pdfmark end 722 4460 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)21 b(S)c Fg(>)722 4560 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 4561 a SDict begin H.S end 889 4561 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1032 4503 a SDict begin H.R end 1032 4503 a 1032 4560 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a9b26ccfa93476dbbbc13588e5bf14d09) cvn H.B /ANN pdfmark end 1032 4560 a 0 TeXcolorgray 21 w Fx(\(std::v)n(alarray)p Fu(<)g Fx(S)k Fu(>)g Fx(&image,)e(long)g (\002rst,)i(long)e(nElements\))p 0 TeXcolorgray 0 TeXcolorgray 840 4684 a Fl(r)m(ead)h(an)g(ima)o(g)o(e)f(section)h(starting)f(at)g(a) g(speci\002ed)h(pixel)p 0 TeXcolorgray 652 4792 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 4892 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 904 4893 a SDict begin H.S end 904 4893 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1047 4836 a SDict begin H.R end 1047 4836 a 1047 4892 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a3e9208c7f75550dc939e33488d02bbd6) cvn H.B /ANN pdfmark end 1047 4892 a 0 TeXcolorgray 35 w Fx(\(std::v)n(alarray)p Fu(<)33 b Fx(S)j Fu(>)f Fx(&image,)j(long)c(\002rst,)39 b(long)34 b(nElements,)k(S)e Fp(\003)p Fx(null-)722 4991 y(V)-9 b(alue\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 133 138 TeXDict begin 133 137 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.133) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(133)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(r)m(ead)20 b(part)g(of)e(an)i(ima)o(g)o(e)g(arr)o(ay)l(,)f(pr)m (ocessing)h(null)f(values.)p 0 TeXcolorgray 0 TeXcolorgray 652 628 a Fx(\225)p 0 TeXcolorgray 722 628 a SDict begin H.S end 722 628 a 0 TeXcolorgray 0 TeXcolorgray 722 628 a SDict begin H.R end 722 628 a 722 628 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_ad97d754f99c2948469638a05c2024207) cvn H.B /DEST pdfmark end 722 628 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 728 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 895 729 a SDict begin H.S end 895 729 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1038 672 a SDict begin H.R end 1038 672 a 1038 728 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_ad97d754f99c2948469638a05c2024207) cvn H.B /ANN pdfmark end 1038 728 a 0 TeXcolorgray 27 w Fx(\(std::v)n(alarray)p Fu(<)24 b Fx(S)k Fu(>)e Fx(&image,)h(const)f(std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)g Fx(&\002rst,)i(long)722 828 y(nElements\))p 0 TeXcolorgray 0 TeXcolorgray 840 950 a Fl(r)m(ead)20 b(an)g(ima)o(g)o(e)f(section)h(starting)f(at)g(a)g(location)g (speci\002ed)i(by)e(an)g(n-tuple)p 0 TeXcolorgray 652 1055 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1155 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 895 1156 a SDict begin H.S end 895 1156 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1038 1098 a SDict begin H.R end 1038 1098 a 1038 1155 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a52bbbb9cba81940c51133e17394cbe9f) cvn H.B /ANN pdfmark end 1038 1155 a 0 TeXcolorgray 27 w Fx(\(std::v)n(alarray)p Fu(<)24 b Fx(S)k Fu(>)e Fx(&image,)h(const)f(std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)g Fx(&\002rst,)i(long)722 1254 y(nElements,)19 b(S)i Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 1376 a Fl(r)m(ead)20 b(part)g(of)e(an)i(ima)o(g)o(e)g(arr)o(ay)l(,)f(pr)m(ocessing)h(null)f (values.)p 0 TeXcolorgray 0 TeXcolorgray 652 1482 a Fx(\225)p 0 TeXcolorgray 722 1482 a SDict begin H.S end 722 1482 a 0 TeXcolorgray 0 TeXcolorgray 722 1482 a SDict begin H.R end 722 1482 a 722 1482 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a8fcefeadd0901595b5aec1ecfc730915) cvn H.B /DEST pdfmark end 722 1482 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 1581 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 891 1582 a SDict begin H.S end 891 1582 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1034 1525 a SDict begin H.R end 1034 1525 a 1034 1581 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a8fcefeadd0901595b5aec1ecfc730915) cvn H.B /ANN pdfmark end 1034 1581 a 0 TeXcolorgray 24 w Fx(\(std::v)n(alarray)p Fu(<)j Fx(S)j Fu(>)g Fx(&image,)f(const)g (std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)h Fx(&\002rstV)-9 b(erte)o(x,)722 1681 y(const)20 b(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&lastV)-9 b(erte)o(x,)19 b(const)h(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&stride\))p 0 TeXcolorgray 0 TeXcolorgray 840 1803 a Fl(r)m(ead)g(an)g(ima)o(g)o(e)f(subset)p 0 TeXcolorgray 652 1908 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)i(S)c Fg(>)722 2008 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 891 2009 a SDict begin H.S end 891 2009 a 0 0 1 TeXcolorrgb -1 x Fx(read)p 0 0 1 TeXcolorrgb 1034 1952 a SDict begin H.R end 1034 1952 a 1034 2008 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a2afad9d6722f87abc19e5eb819e77383) cvn H.B /ANN pdfmark end 1034 2008 a 0 TeXcolorgray 24 w Fx(\(std::v)n(alarray)p Fu(<)j Fx(S)j Fu(>)g Fx(&image,)f(const)g (std::v)o(ector)p Fu(<)f Fx(long)h Fu(>)h Fx(&\002rstV)-9 b(erte)o(x,)722 2108 y(const)31 b(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&lastV)-9 b(erte)o(x,)33 b(const)e(std::v)o(ector)p Fu(<)e Fx(long)h Fu(>)i Fx(&stride,)h(S)722 2207 y Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2329 a Fl(r)m(ead)20 b(an)g(ima)o(g)o(e)f(subset)h(into)f(valarr)o (ay)h(ima)o(g)o(e)o(,)g(pr)m(ocessing)g(null)f(values)p 0 TeXcolorgray 652 2435 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)c(v)n(oid)p 0 0 1 TeXcolorrgb 1117 2436 a SDict begin H.S end 1117 2436 a 0 0 1 TeXcolorrgb -1 x Fx(readData)p 0 0 1 TeXcolorrgb 1416 2378 a SDict begin H.R end 1416 2378 a 1416 2435 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a496d7e092054cb21565f4b1bf3d977f4) cvn H.B /ANN pdfmark end 1416 2435 a 0 TeXcolorgray 16 w Fx(\(bool)f(readFlag=f)o(alse,)h(const)g(std::v)o(ector)p Fu(<)e Fx(String)i Fu(>)g Fx(&k)o(e)o(ys=std-)722 2534 y(::v)o(ector)p Fu(<)k Fx(String)h Fu(>)p Fx(\(\)\)=0)p 0 TeXcolorgray 0 TeXcolorgray 840 2656 a Fl(r)m(ead)g(primary)p 0 0 1 TeXcolorrgb 1253 2657 a SDict begin H.S end 1253 2657 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1415 2608 a SDict begin H.R end 1415 2608 a 1415 2656 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1415 2656 a 0 TeXcolorgray 18 w Fl(data)p 0 TeXcolorgray 652 2762 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(v)n(oid)p 0 0 1 TeXcolorrgb 1127 2763 a SDict begin H.S end 1127 2763 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1292 2705 a SDict begin H.R end 1292 2705 a 1292 2762 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a75f86db856e2cc7772a97d9ded3a633c) cvn H.B /ANN pdfmark end 1292 2762 a 0 TeXcolorgray 21 w Fx(\(double)f(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 2884 a Fl(set)g(the)g(BSCALE)e(k)o(e)n(ywor)m(d)k(value)e(for)g (ima)o(g)o(es)h(\(see)f(warning)h(for)e(ima)o(g)o(es)i(of)f(int)g (type\))p 0 TeXcolorgray 0 TeXcolorgray 652 2989 a Fx(\225)p 0 TeXcolorgray 722 2989 a SDict begin H.S end 722 2989 a 0 TeXcolorgray 0 TeXcolorgray 722 2989 a SDict begin H.R end 722 2989 a 722 2989 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a0205708df85524ee37eddb7485604591) cvn H.B /DEST pdfmark end 722 2989 a 0 TeXcolorgray 21 w Fx(virtual)h(double)p 0 0 1 TeXcolorrgb 1227 2990 a SDict begin H.S end 1227 2990 a 0 0 1 TeXcolorrgb -1 x Fx(scale)p 0 0 1 TeXcolorrgb 1393 2933 a SDict begin H.R end 1393 2933 a 1393 2989 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a0205708df85524ee37eddb7485604591) cvn H.B /ANN pdfmark end 1393 2989 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3111 a Fl(r)m(eturn)g(the)f(BSCALE)e(k)o(e)n(ywor)m (d)k(value)p 0 TeXcolorgray 0 TeXcolorgray 652 3217 a Fx(\225)p 0 TeXcolorgray 722 3217 a SDict begin H.S end 722 3217 a 0 TeXcolorgray 0 TeXcolorgray 722 3217 a SDict begin H.R end 722 3217 a 722 3217 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a07a22e72dfba4443dccd614bd5cc2216) cvn H.B /DEST pdfmark end 722 3217 a 0 TeXcolorgray 21 w Fx(bool)p 0 0 1 TeXcolorrgb 911 3235 a SDict begin H.S end 911 3235 a 0 0 1 TeXcolorrgb -18 x Fx(simple)p 0 0 1 TeXcolorrgb 1133 3160 a SDict begin H.R end 1133 3160 a 1133 3217 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a07a22e72dfba4443dccd614bd5cc2216) cvn H.B /ANN pdfmark end 1133 3217 a 0 TeXcolorgray 21 w Fx(\(\))f(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3339 a Fl(Returns)g(the)f(value)g(of)g(the)g (Primary')m(s)g(SIMPLE)f(k)o(e)n(ywor)m(d.)p 0 TeXcolorgray 652 3444 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)j(S)c Fg(>)722 3544 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 3545 a SDict begin H.S end 884 3545 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1055 3487 a SDict begin H.R end 1055 3487 a 1055 3544 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) cvn H.B /ANN pdfmark end 1055 3544 a 0 TeXcolorgray 15 w Fx(\(const)e(std::v)o (ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&\002rst,)i(long)d(nElements,)h (const)g(std::v)n(alarray)p Fu(<)722 3643 y Fx(S)21 b Fu(>)f Fx(&data,)g(S)h Fp(\003)p Fx(nullV)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 3765 a Fl(Write)20 b(a)f(set)h(of)f(pixels)g(to)h(an)g(ima)o(g)o(e)g(e)o(xtension)g(with)f (the)h(\002r)o(st)f(pixel)h(speci\002ed)h(by)e(an)h(n-tuple)o(,)840 3857 y(pr)m(ocessing)g(unde\002ned)i(data.)p 0 TeXcolorgray 652 3962 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)f(S)c Fg(>)722 4062 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 890 4063 a SDict begin H.S end 890 4063 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1061 4005 a SDict begin H.R end 1061 4005 a 1061 4062 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a74015a1d158ef9f04f875dca9818f5ea) cvn H.B /ANN pdfmark end 1061 4062 a 0 TeXcolorgray 22 w Fx(\(long)j(\002rst,)i (long)f(nElements,)f(const)i(std::v)n(alarray)p Fu(<)d Fx(S)j Fu(>)g Fx(&data,)f(S)h Fp(\003)p Fx(null-)722 4161 y(V)-9 b(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4283 a Fl(write)18 b(arr)o(ay)h(to)f(ima)o(g)o(e)h(starting)f(with) f(a)i(speci\002ed)g(pixel)f(and)h(allowing)f(unde\002ned)j(data)d(to)g (be)840 4375 y(pr)m(ocessed)p 0 TeXcolorgray 0 TeXcolorgray 652 4480 a Fx(\225)p 0 TeXcolorgray 722 4480 a SDict begin H.S end 722 4480 a 0 TeXcolorgray 0 TeXcolorgray 722 4480 a SDict begin H.R end 722 4480 a 722 4480 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a683d99bb3a29bf887bfd3d988202dddf) cvn H.B /DEST pdfmark end 722 4480 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)j(S)c Fg(>)722 4580 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 884 4581 a SDict begin H.S end 884 4581 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1055 4523 a SDict begin H.R end 1055 4523 a 1055 4580 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a683d99bb3a29bf887bfd3d988202dddf) cvn H.B /ANN pdfmark end 1055 4580 a 0 TeXcolorgray 15 w Fx(\(const)e(std::v)o (ector)p Fu(<)f Fx(long)g Fu(>)h Fx(&\002rst,)i(long)d(nElements,)h (const)g(std::v)n(alarray)p Fu(<)722 4679 y Fx(S)21 b Fu(>)f Fx(&data\))p 0 TeXcolorgray 0 TeXcolorgray 840 4801 a Fl(write)f(arr)o(ay)g(starting)g(fr)m(om)g(speci\002ed)h (n-tuple)o(,)f(without)g(unde\002ned)i(data)f(pr)m(ocessing)p 0 TeXcolorgray 0 TeXcolorgray 652 4907 a Fx(\225)p 0 TeXcolorgray 722 4907 a SDict begin H.S end 722 4907 a 0 TeXcolorgray 0 TeXcolorgray 722 4907 a SDict begin H.R end 722 4907 a 722 4907 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a0025ef99428d619903a15d23e1eeed2a) cvn H.B /DEST pdfmark end 722 4907 a 0 TeXcolorgray 21 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 5006 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 889 5007 a SDict begin H.S end 889 5007 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1060 4950 a SDict begin H.R end 1060 4950 a 1060 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a0025ef99428d619903a15d23e1eeed2a) cvn H.B /ANN pdfmark end 1060 5006 a 0 TeXcolorgray 20 w Fx(\(long)i(\002rst,)i(long)e(nElements,)g(const)h(std::v)n (alarray)p Fu(<)f Fx(S)i Fu(>)f Fx(&data\))p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 134 139 TeXDict begin 134 138 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.134) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(134)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 523 a Fl(write)19 b(arr)o(ay)g(starting)g(fr)m(om)g(speci\002ed)h(pixel)f (number)-8 b(,)19 b(without)g(unde\002ned)i(data)f(pr)m(ocessing)p 0 TeXcolorgray 652 631 a Fx(\225)p 0 TeXcolorgray 41 w Fi(template)p Fg(<)p Fi(typename)h(S)c Fg(>)722 731 y Fx(v)n(oid)p 0 0 1 TeXcolorrgb 896 732 a SDict begin H.S end 896 732 a 0 0 1 TeXcolorrgb -1 x Fx(write)p 0 0 1 TeXcolorrgb 1067 674 a SDict begin H.R end 1067 674 a 1067 731 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a20f16c9a8d60de748ed7697afbc91863) cvn H.B /ANN pdfmark end 1067 731 a 0 TeXcolorgray 28 w Fx(\(const)26 b(std::v)o(ector)p Fu(<)g Fx(long)g Fu(>)i Fx(&\002rstV)-9 b(erte)o(x,)27 b(const)g(std::v)o(ector)p Fu(<)f Fx(long)g Fu(>)722 830 y Fx(&lastV)-9 b(erte)o(x,)16 b(const)h(std::v)o(ector)p Fu(<)e Fx(long)h Fu(>)h Fx(&stride,)g(const) g(std::v)n(alarray)p Fu(<)e Fx(S)j Fu(>)e Fx(&data\))p 0 TeXcolorgray 0 TeXcolorgray 840 1054 a Fl(write)j(a)g(subset)g(\(g)o (ener)o(alize)h(slice\))f(of)g(data)g(to)g(the)g(ima)o(g)o(e)p 0 TeXcolorgray 652 1162 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)h(v)n(oid)p 0 0 1 TeXcolorrgb 1127 1163 a SDict begin H.S end 1127 1163 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1269 1124 a SDict begin H.R end 1269 1124 a 1269 1162 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_abcc25c1d318581d9b650a784b799285d) cvn H.B /ANN pdfmark end 1269 1162 a 0 TeXcolorgray 21 w Fx(\(double)f(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 1287 a Fl(set)g(the)g(BZERO)e(k)o(e)n(ywor)m(d)j(value)g(for)f(ima) o(g)o(es)h(\(see)f(warning)g(for)g(ima)o(g)o(es)h(of)f(int)f(type\))p 0 TeXcolorgray 0 TeXcolorgray 652 1395 a Fx(\225)p 0 TeXcolorgray 722 1395 a SDict begin H.S end 722 1395 a 0 TeXcolorgray 0 TeXcolorgray 722 1395 a SDict begin H.R end 722 1395 a 722 1395 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a04b7249f250f651a96b6423930c6e4e2) cvn H.B /DEST pdfmark end 722 1395 a 0 TeXcolorgray 21 w Fx(virtual)i(double)p 0 0 1 TeXcolorrgb 1227 1396 a SDict begin H.S end 1227 1396 a 0 0 1 TeXcolorrgb -1 x Fx(zero)p 0 0 1 TeXcolorrgb 1370 1357 a SDict begin H.R end 1370 1357 a 1370 1395 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a04b7249f250f651a96b6423930c6e4e2) cvn H.B /ANN pdfmark end 1370 1395 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1519 a Fl(r)m(eturn)g(the)f(BZERO)e(k)o(e)n(ywor)m (d)j(value)p 0.25 TeXcolorgray 515 1788 a Fo(Pr)o(otected)e(Member)g (Functions)p 0 TeXcolorgray 515 1844 a SDict begin H.S end 515 1844 a 515 1844 a SDict begin 12 H.A end 515 1844 a 515 1844 a SDict begin [ /View [/XYZ H.V] /Dest (section*.62) cvn H.B /DEST pdfmark end 515 1844 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 1976 a Fx(\225)p 0 0 1 TeXcolorrgb 722 1977 a SDict begin H.S end 722 1977 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 948 1922 a SDict begin H.R end 948 1922 a 948 1976 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_abd7c1f8131fa1acd2c638a9b9372e55a) cvn H.B /ANN pdfmark end 948 1976 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1193 1977 a SDict begin H.S end 1193 1977 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1419 1922 a SDict begin H.R end 1419 1922 a 1419 1976 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1419 1976 a 0 TeXcolorgray 20 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 2101 a Fl(copy)i(constructor)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2209 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2210 a SDict begin H.S end 722 2210 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 948 2155 a SDict begin H.R end 948 2155 a 948 2209 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a567c35924aaecf4841e2a467667f2e76) cvn H.B /ANN pdfmark end 948 2209 a 0 TeXcolorgray 21 w Fx(\(FITSBase)h Fp(\003)p Fx(p,)e(int)h(bpix,)g(int)g(naxis,)g(const)g(std::v)o(ector)p Fu(<)e Fx(long)i Fu(>)g Fx(&ax)o(es\))p 0 TeXcolorgray 0 TeXcolorgray 840 2333 a Fl(Writing)f(Primary)p 0 0 1 TeXcolorrgb 1355 2334 a SDict begin H.S end 1355 2334 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1517 2285 a SDict begin H.R end 1517 2285 a 1517 2333 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1517 2333 a 0 TeXcolorgray 19 w Fl(constructor)-8 b(,)19 b(called)h(by)f(PrimaryHDU)p Fe(<)p Fl(T)p Fe(>)f Fl(class.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2441 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2442 a SDict begin H.S end 722 2442 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 948 2387 a SDict begin H.R end 948 2387 a 948 2441 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a6edaf40ab3bc6b1450d41ba3f55485d1) cvn H.B /ANN pdfmark end 948 2441 a 0 TeXcolorgray 21 w Fx(\(FITSBase)j Fp(\003)p Fx(p=0\))p 0 TeXcolorgray 0 TeXcolorgray 840 2566 a Fl(Reading)f(Primary)p 0 0 1 TeXcolorrgb 1376 2567 a SDict begin H.S end 1376 2567 a 0 0 1 TeXcolorrgb -1 x Fl(HDU)p 0 0 1 TeXcolorrgb 1538 2518 a SDict begin H.R end 1538 2518 a 1538 2566 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1538 2566 a 0 TeXcolorgray 18 w Fl(constructor)-8 b(.)p 0 TeXcolorgray 652 2674 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)20 b(v)n(oid)p 0 0 1 TeXcolorrgb 1127 2675 a SDict begin H.S end 1127 2675 a 0 0 1 TeXcolorrgb -1 x Fx(initRead)p 0 0 1 TeXcolorrgb 1408 2618 a SDict begin H.R end 1408 2618 a 1408 2674 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_a04e290b1a4d638db9dee0e6a03d30ede) cvn H.B /ANN pdfmark end 1408 2674 a 0 TeXcolorgray 21 w Fx(\(\))515 2810 y SDict begin H.S end 515 2810 a 515 2810 a SDict begin 12 H.A end 515 2810 a 515 2810 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.39.1) cvn H.B /DEST pdfmark end 515 2810 a 0.25 TeXcolorgray 132 x Fo(24.39.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3145 a Fx(class)j(representing)d(the)i(primary)p 0 0 1 TeXcolorrgb 1534 3146 a SDict begin H.S end 1534 3146 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1714 3091 a SDict begin H.R end 1714 3091 a 1714 3145 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1714 3145 a 0 TeXcolorgray 20 w Fx(for)g(a)p 0 0 1 TeXcolorrgb 1910 3146 a SDict begin H.S end 1910 3146 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2080 3089 a SDict begin H.R end 2080 3089 a 2080 3145 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2080 3145 a 0 TeXcolorgray 21 w Fx(\002le.)515 3292 y(A)p 0 0 1 TeXcolorrgb 596 3293 a SDict begin H.S end 596 3293 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 822 3238 a SDict begin H.R end 822 3238 a 822 3292 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 822 3292 a 0 TeXcolorgray 22 w Fx(object)h(is)h(automatically)e(instantiated)g(and)h(added)f(to)h(a) p 0 0 1 TeXcolorrgb 2531 3293 a SDict begin H.S end 2531 3293 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2702 3236 a SDict begin H.R end 2702 3236 a 2702 3292 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2702 3292 a 0 TeXcolorgray 21 w Fx(object)g(when)g(a)p 0 0 1 TeXcolorrgb 3208 3293 a SDict begin H.S end 3208 3293 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 3379 3236 a SDict begin H.R end 3379 3236 a 3379 3292 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 3379 3292 a 0 TeXcolorgray 515 3392 a Fx(\002le)g(is)h (accessed)e(in)h(an)o(y)f(w)o(ay)-5 b(.)26 b(If)21 b(a)g(ne)n(w)g (\002le)g(is)h(created)e(without)g(specifying)f(the)h(data)h(type)f (for)515 3491 y(the)i(header)m(,)p 0 0 1 TeXcolorrgb 900 3492 a SDict begin H.S end 900 3492 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 1112 3435 a SDict begin H.R end 1112 3435 a 1112 3491 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 1112 3491 a 0 TeXcolorgray 23 w Fx(assumes)g(that)g(the)f(\002le)i(is)f (to)g(be)g(used)g(for)f(table)g(e)o(xtensions)g(and)g(creates)h(a)515 3591 y(dummy)d(header)-5 b(.)p 0 0 1 TeXcolorrgb 1057 3592 a SDict begin H.S end 1057 3592 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1283 3537 a SDict begin H.R end 1283 3537 a 1283 3591 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1283 3591 a 0 TeXcolorgray 22 w Fx(instances)22 b(are)f Ft(only)g Fx(created)g(by)p 0 0 1 TeXcolorrgb 2287 3592 a SDict begin H.S end 2287 3592 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2458 3535 a SDict begin H.R end 2458 3535 a 2458 3591 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2458 3591 a 0 TeXcolorgray 22 w Fx(ctors.)28 b(In)22 b(the)f(\002rst)h(release)g(of)p 0 0 1 TeXcolorrgb 515 3691 a SDict begin H.S end 515 3691 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts)p 0 0 1 TeXcolorrgb 727 3634 a SDict begin H.R end 727 3634 a 727 3690 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (namespaceCCfits) cvn H.B /ANN pdfmark end 727 3690 a 0 TeXcolorgray Fx(,)f(the)f(Primary)f(cannot)g (be)h(changed)f(once)g(declared.)p 0 0 1 TeXcolorrgb 515 3838 a SDict begin H.S end 515 3838 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 741 3783 a SDict begin H.R end 741 3783 a 741 3837 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 741 3837 a 0 TeXcolorgray 22 w Fx(and)p 0 0 1 TeXcolorrgb 905 3838 a SDict begin H.S end 905 3838 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1200 3783 a SDict begin H.R end 1200 3783 a 1200 3837 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1200 3837 a 0 TeXcolorgray 22 w Fx(pro)o(vide)h(the)h(same)h(interf)o (ace)e(to)i(writing)f(images:)28 b(multiple)21 b(o)o(v)o(erloads)515 3937 y(of)g(the)h(templated)f(PHDU::read)g(and)p 0 0 1 TeXcolorrgb 1660 3938 a SDict begin H.S end 1660 3938 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU::write)p 0 0 1 TeXcolorrgb 2102 3881 a SDict begin H.R end 2102 3881 a 2102 3937 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) cvn H.B /ANN pdfmark end 2102 3937 a 0 TeXcolorgray 23 w Fx(operations)f(pro) o(vide)g(for)h(\(a\))g(writing)h(im-)515 4037 y(age)d(data)g (speci\002ed)g(in)g(a)h(number)d(of)i(w)o(ays)h([C-array)-5 b(,)18 b(std::v)o(ector)m(,)f(std::v)n(alarray])h(and)g(with)i(in-)515 4136 y(put)15 b(location)g(speci\002ed)h(by)g(initial)g(pix)o(el,)g(by) f(n-tuple,)h(and)f(by)h(rectangular)e(subset)i([)o(generalized)515 4236 y(slice];)h(\(b\))e(reading)f(image)h(data)g(speci\002ed)g (similarly)g(to)h(the)f(write)g(options)g(into)g(a)h(std::v)n(alarray) -5 b(.)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4467 a SDict begin H.S end 515 4467 a 0 0 1 TeXcolorrgb -1 x Fy(T)d(odo)p 0 0 1 TeXcolorrgb 692 4408 a SDict begin H.R end 692 4408 a 692 4466 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (todo__todo000006) cvn H.B /ANN pdfmark end 692 4466 a 0 TeXcolorgray 0 TeXcolorgray 41 w Fx(Implement)19 b(functions)f(that)j(allo)n(w)f(replacement)e(of)i(the)g(primary)f (image)515 4605 y SDict begin H.S end 515 4605 a 515 4605 a SDict begin 12 H.A end 515 4605 a 515 4605 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.39.2) cvn H.B /DEST pdfmark end 515 4605 a 0.25 TeXcolorgray 129 x Fo(24.39.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4937 a SDict begin H.S end 515 4937 a 0 TeXcolorgray 0 TeXcolorgray 515 4937 a SDict begin H.R end 515 4937 a 515 4937 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_aebb0d9bac5b961e7de036ad10f1a02c2) cvn H.B /DEST pdfmark end 515 4937 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 318 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 135 140 TeXDict begin 135 139 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.135) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(135)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.2.1) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.39.2.1)75 b(CC\002ts::PHDU::)p Fp(\030)p Fo(PHDU)21 b(\()68 b(\))j Fr([virtual])p 0 TeXcolorgray 515 707 a Fx(destructor)515 854 y(Destructor)p 0 TeXcolorgray 886 854 a SDict begin H.S end 886 854 a 0 TeXcolorgray 0 TeXcolorgray 886 854 a SDict begin H.R end 886 854 a 886 854 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_abd7c1f8131fa1acd2c638a9b9372e55a) cvn H.B /DEST pdfmark end 886 854 a 0 TeXcolorgray 515 892 a SDict begin H.S end 515 892 a 515 892 a SDict begin 12 H.A end 515 892 a 515 892 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.2.2) cvn H.B /DEST pdfmark end 515 892 a 0.25 TeXcolorgray 146 x Fo(24.39.2.2)k(CC\002ts::PHDU::PHDU)21 b(\()35 b(const)18 b Fy(PHDU)e Fo(&)i Fk(right)35 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 1223 a Fx(cop)o(y)19 b(constructor)515 1369 y(required)f(for)i(cloning)e(primary)h(HDUs)i (when)f(cop)o(ying)p 0 0 1 TeXcolorrgb 2204 1370 a SDict begin H.S end 2204 1370 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2375 1313 a SDict begin H.R end 2375 1313 a 2375 1369 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2375 1369 a 0 TeXcolorgray 20 w Fx(\002les.)p 0 TeXcolorgray 2580 1369 a SDict begin H.S end 2580 1369 a 0 TeXcolorgray 0 TeXcolorgray 2580 1369 a SDict begin H.R end 2580 1369 a 2580 1369 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a567c35924aaecf4841e2a467667f2e76) cvn H.B /DEST pdfmark end 2580 1369 a 0 TeXcolorgray 515 1425 a SDict begin H.S end 515 1425 a 515 1425 a SDict begin 12 H.A end 515 1425 a 515 1425 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.2.3) cvn H.B /DEST pdfmark end 515 1425 a 0.25 TeXcolorgray 129 x Fo(24.39.2.3)75 b(CC\002ts::PHDU::PHDU)21 b(\()33 b(FITSBase)17 b Fp(\003)f Fk(p,)34 b Fo(int)17 b Fk(bpix,)34 b Fo(int)18 b Fk(naxis,)34 b Fo(const)17 b(std::vector)p Fu(<)i Fo(long)f Fu(>)e Fo(&)845 1653 y Fk(ax)o(es)35 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 1838 a Fx(Writing)20 b(Primary)p 0 0 1 TeXcolorrgb 1082 1839 a SDict begin H.S end 1082 1839 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1262 1784 a SDict begin H.R end 1262 1784 a 1262 1838 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1262 1838 a 0 TeXcolorgray 21 w Fx(constructor)m(,)d(called)j(by)g (PrimaryHDU)p Fu(<)p Fx(T)p Fu(>)e Fx(class.)515 1984 y(Constructor)j(used)g(for)h(creating)f(ne)n(w)p 0 0 1 TeXcolorrgb 1673 1985 a SDict begin H.S end 1673 1985 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU)p 0 0 1 TeXcolorrgb 1899 1930 a SDict begin H.R end 1899 1930 a 1899 1984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU) cvn H.B /ANN pdfmark end 1899 1984 a 0 TeXcolorgray 23 w Fx(\(i.e.)31 b(for)21 b(writing)h(data)g(to)p 0 0 1 TeXcolorrgb 2713 1985 a SDict begin H.S end 2713 1985 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2884 1928 a SDict begin H.R end 2884 1928 a 2884 1984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2884 1984 a 0 TeXcolorgray Fx(\).)31 b(also)23 b(doubles)515 2084 y(as)f(def)o(ault)f(constructor)e(since)j(all)g(ar)o(guments)e(ha) n(v)o(e)h(def)o(ault)g(v)n(alues,)g(which)g(are)g(passed)h(to)g(the)p 0 0 1 TeXcolorrgb 515 2185 a SDict begin H.S end 515 2185 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 695 2130 a SDict begin H.R end 695 2130 a 695 2184 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 695 2184 a 0 TeXcolorgray 20 w Fx(constructor)p 0 TeXcolorgray 1110 2184 a SDict begin H.S end 1110 2184 a 0 TeXcolorgray 0 TeXcolorgray 1110 2184 a SDict begin H.R end 1110 2184 a 1110 2184 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a6edaf40ab3bc6b1450d41ba3f55485d1) cvn H.B /DEST pdfmark end 1110 2184 a 0 TeXcolorgray 515 2222 a SDict begin H.S end 515 2222 a 515 2222 a SDict begin 12 H.A end 515 2222 a 515 2222 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.2.4) cvn H.B /DEST pdfmark end 515 2222 a 0.25 TeXcolorgray 146 x Fo(24.39.2.4)75 b(CC\002ts::PHDU::PHDU)21 b(\()35 b(FITSBase)18 b Fp(\003)e Fk(p)i(=)f Fr(0)34 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 2552 a Fx(Reading)19 b(Primary)p 0 0 1 TeXcolorrgb 1100 2553 a SDict begin H.S end 1100 2553 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1280 2498 a SDict begin H.R end 1280 2498 a 1280 2552 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1280 2552 a 0 TeXcolorgray 21 w Fx(constructor)-5 b(.)515 2699 y(Constructor)21 b(used)i(when)g(reading)e(the)i(primary)p 0 0 1 TeXcolorrgb 1994 2700 a SDict begin H.S end 1994 2700 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2174 2645 a SDict begin H.R end 2174 2645 a 2174 2699 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2174 2699 a 0 TeXcolorgray 23 w Fx(from)f(an)h(e)o(xisting)g(\002le.)34 b(Does)23 b(nothing)515 2799 y(e)o(xcept)c(initialize,)h(with)g(the)h (real)f(w)o(ork)f(done)g(by)h(the)g(subclass)h(PrimaryHDU)p Fu(<)p Fx(T)p Fu(>)p Fx(.)515 2938 y SDict begin H.S end 515 2938 a 515 2938 a SDict begin 12 H.A end 515 2938 a 515 2938 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.39.3) cvn H.B /DEST pdfmark end 515 2938 a 0.25 TeXcolorgray 129 x Fo(24.39.3)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 3270 a SDict begin H.S end 515 3270 a 0 TeXcolorgray 0 TeXcolorgray 515 3270 a SDict begin H.R end 515 3270 a 515 3270 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a04e290b1a4d638db9dee0e6a03d30ede) cvn H.B /DEST pdfmark end 515 3270 a 0 TeXcolorgray 515 3307 a SDict begin H.S end 515 3307 a 515 3307 a SDict begin 12 H.A end 515 3307 a 515 3307 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.1) cvn H.B /DEST pdfmark end 515 3307 a 0.25 TeXcolorgray 147 x Fo(24.39.3.1)75 b(v)n(oid)18 b(CC\002ts::PHDU::initRead)k(\()69 b(\))i Fr([protected,)48 b(virtual])p 0 TeXcolorgray 515 3638 a Fx(Read)20 b(image)g(header)f(and)g(update)g(\002ts)j (pointer)d(accordingly)-5 b(.)515 3785 y(Pri)n(v)n(ate:)25 b(called)20 b(by)f(ctor)-5 b(.)515 3932 y(Implements)p 0 0 1 TeXcolorrgb 928 3933 a SDict begin H.S end 928 3933 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1366 3876 a SDict begin H.R end 1366 3876 a 1366 3932 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1366 3932 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 4079 a SDict begin H.S end 515 4079 a 0 TeXcolorgray 0 TeXcolorgray 515 4079 a SDict begin H.R end 515 4079 a 515 4079 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a3e9208c7f75550dc939e33488d02bbd6) cvn H.B /DEST pdfmark end 515 4079 a 0 TeXcolorgray 515 4116 a SDict begin H.S end 515 4116 a 515 4116 a SDict begin 12 H.A end 515 4116 a 515 4116 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.2) cvn H.B /DEST pdfmark end 515 4116 a 0.25 TeXcolorgray 147 x Fo(24.39.3.2)75 b(template)p Fu(<)p Fo(typename)20 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::PHDU::read)k(\()33 b(std::v)o(alarra)o(y) p Fu(<)17 b Fo(S)f Fu(>)g Fo(&)h Fk(ima)o(g)q(e)q(,)34 b Fo(long)845 4363 y Fk(\002r)o(st,)h Fo(long)18 b Fk(nElements,)36 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)36 b Fo(\))p 0 TeXcolorgray 515 4547 a Fx(read)19 b(part)h(of)g(an)g(image)g(array) -5 b(,)19 b(processing)f(null)i(v)n(alues.)515 4694 y(Implicit)j(data)h (con)m(v)o(ersion)d(is)j(supported)e(\(i.e.)35 b(user)24 b(does)f(not)h(need)f(to)h(kno)n(w)e(the)i(type)f(of)h(the)515 4793 y(data)c(stored.)k(A)d(WrongExtensionT)-7 b(ype)16 b(e)o(xtension)j(is)i(thro)n(wn)e(if)h Fp(\003)p Fx(this)h(is)g(not)f (an)g(image.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 136 141 TeXDict begin 136 140 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.136) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(136)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.82) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 639 4 100 v 0 TeXcolorgray 775 609 a Ft(ima)o(g)o(e)p 0.5 TeXcolorgray 1005 639 V 0 TeXcolorgray 60 w Fx(The)20 b(recei)n(ving)e(container)m(,)g(a)j(std::v)n(alarray)e(reference)p 0.5 TeXcolorgray 3400 639 V 0 TeXcolorgray 0.5 TeXcolorgray 515 642 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 642 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 4 100 v 0 TeXcolorgray 848 712 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 742 V 0 TeXcolorgray 61 w Fx(The)h(\002rst)h(pix)o(el)e(from)g (the)i(array)e(to)h(read)g([)o(a)h(long)e(v)n(alue])p 0.5 TeXcolorgray 3400 742 V 0 TeXcolorgray 0.5 TeXcolorgray 515 745 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 745 V 0 TeXcolorgray 0.5 TeXcolorgray 515 845 4 100 v 0 TeXcolorgray 630 815 a Ft(nElements)p 0.5 TeXcolorgray 1005 845 V 0 TeXcolorgray 60 w Fx(The)h(number)e(of)i(v)n(alues)g(to)g (read)p 0.5 TeXcolorgray 3400 845 V 0 TeXcolorgray 0.5 TeXcolorgray 515 848 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 848 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1047 4 200 v 0 TeXcolorgray 663 918 a Ft(nullV)-9 b(alue)p 0.5 TeXcolorgray 1005 1047 V 0 TeXcolorgray 58 w Fx(A)27 b(pointer)e(containing)f(the)i(v)n(alue)g(in)g(the)g(table)g(to)h(be)f (considered)e(as)j(unde-)1037 1017 y(\002ned.)d(See)d(c\002tsio)g(for)e (details)p 0.5 TeXcolorgray 3400 1047 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1051 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1051 V 0 TeXcolorgray 0 TeXcolorgray 515 1280 a SDict begin H.S end 515 1280 a 0 TeXcolorgray 0 TeXcolorgray 515 1280 a SDict begin H.R end 515 1280 a 515 1280 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a52bbbb9cba81940c51133e17394cbe9f) cvn H.B /DEST pdfmark end 515 1280 a 0 TeXcolorgray 515 1318 a SDict begin H.S end 515 1318 a 515 1318 a SDict begin 12 H.A end 515 1318 a 515 1318 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.3) cvn H.B /DEST pdfmark end 515 1318 a 0.25 TeXcolorgray 147 x Fo(24.39.3.3)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h (CC\002ts::PHDU::read)j(\()37 b(std::v)o(alarra)o(y)p Fu(<)19 b Fo(S)g Fu(>)e Fo(&)i Fk(ima)o(g)q(e)q(,)845 1564 y Fo(const)f(std::vector)p Fu(<)i Fo(long)e Fu(>)e Fo(&)i Fk(\002r)o(st,)34 b Fo(long)19 b Fk(nElements,)36 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)36 b Fo(\))p 0 TeXcolorgray 515 1748 a Fx(read)19 b(part)h(of)g(an)g(image)g(array) -5 b(,)19 b(processing)f(null)i(v)n(alues.)515 1895 y(As)h(abo)o(v)o(e) d(e)o(xcept)h(for)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2105 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2048 a SDict begin H.S end 515 2048 a 515 2048 a SDict begin 12 H.A end 515 2048 a 515 2048 a SDict begin [ /View [/XYZ H.V] /Dest (table.83) cvn H.B /DEST pdfmark end 515 2048 a 0.5 TeXcolorgray 515 2151 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2151 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2350 4 200 v 0 TeXcolorgray 848 2221 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 2350 V 0 TeXcolorgray 61 w Fx(a)25 b(v)o(ector)p Fu(<)p Fx(long)p Fu(>)d Fx(representing)h(an)i(n-tuple)f (gi)n(ving)f(the)i(coordinates)f(in)h(the)1037 2320 y(image)20 b(of)f(the)i(\002rst)g(pix)o(el.)p 0.5 TeXcolorgray 3400 2350 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2354 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2354 V 0 TeXcolorgray 0 TeXcolorgray 515 2583 a SDict begin H.S end 515 2583 a 0 TeXcolorgray 0 TeXcolorgray 515 2583 a SDict begin H.R end 515 2583 a 515 2583 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a2afad9d6722f87abc19e5eb819e77383) cvn H.B /DEST pdfmark end 515 2583 a 0 TeXcolorgray 515 2621 a SDict begin H.S end 515 2621 a 515 2621 a SDict begin 12 H.A end 515 2621 a 515 2621 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.4) cvn H.B /DEST pdfmark end 515 2621 a 0.25 TeXcolorgray 147 x Fo(24.39.3.4)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)g Fo(v)n(oid)h(CC\002ts::PHDU::read)j(\()37 b(std::v)o(alarra)o(y) p Fu(<)19 b Fo(S)g Fu(>)e Fo(&)i Fk(ima)o(g)q(e)q(,)845 2867 y Fo(const)h(std::vector)p Fu(<)g Fo(long)f Fu(>)f Fo(&)g Fk(\002r)o(stV)l(er)q(te)o(x,)39 b Fo(const)19 b(std::vector)p Fu(<)h Fo(long)g Fu(>)e Fo(&)g Fk(lastV)l(er)q(te)o(x,) 845 2967 y Fo(const)g(std::vector)p Fu(<)i Fo(long)e Fu(>)e Fo(&)i Fk(stride)q(,)34 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 3151 a Fx(read)19 b(an)h(image)g(subset)g(into)g(v)n(alarray)f(image,)g (processing)g(null)h(v)n(alues)515 3298 y(The)j(image)f(subset)i(is)g (de\002ned)e(by)h(tw)o(o)h(v)o(ertices)f(and)f(a)i(stride)g(indicating) e(the)h(')l(denseness')f(of)515 3398 y(the)j(v)n(alues)h(to)g(be)f (pick)o(ed)g(in)h(each)f(dimension)g(\(a)h(stride)f(=)h(\(1,1,1,...\)) 39 b(means)26 b(picking)e(e)n(v)o(ery)515 3497 y(pix)o(el)e(in)h(e)n(v) o(ery)e(dimension,)g(whereas)h(stride)h(=)g(\(2,2,2,...\))30 b(means)22 b(picking)f(e)n(v)o(ery)g(other)h(v)n(alue)515 3597 y(in)e(each)g(dimension.)p 0 TeXcolorgray 1165 3597 a SDict begin H.S end 1165 3597 a 0 TeXcolorgray 0 TeXcolorgray 1165 3597 a SDict begin H.R end 1165 3597 a 1165 3597 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a496d7e092054cb21565f4b1bf3d977f4) cvn H.B /DEST pdfmark end 1165 3597 a 0 TeXcolorgray 515 3635 a SDict begin H.S end 515 3635 a 515 3635 a SDict begin 12 H.A end 515 3635 a 515 3635 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.5) cvn H.B /DEST pdfmark end 515 3635 a 0.25 TeXcolorgray 146 x Fo(24.39.3.5)75 b(v)n(oid)18 b(CC\002ts::PHDU::readData)k(\()35 b(bool)18 b Fk(readFla)o(g)h(=)e Fr(false)p Fk(,)34 b Fo(const)18 b(std::vector)p Fu(<)h Fo(String)g Fu(>)845 3881 y Fo(&)e Fk(ke)o(ys)g(=)g Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))30 b Fo(\))71 b Fr([pure)49 b(virtual])p 0 TeXcolorgray 515 4065 a Fx(read)19 b(primary)p 0 0 1 TeXcolorrgb 962 4066 a SDict begin H.S end 962 4066 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1142 4011 a SDict begin H.R end 1142 4011 a 1142 4065 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1142 4065 a 0 TeXcolorgray 21 w Fx(data)515 4212 y(Called)k(by)p 0 0 1 TeXcolorrgb 863 4213 a SDict begin H.S end 863 4213 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1033 4156 a SDict begin H.R end 1033 4156 a 1033 4212 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1033 4212 a 0 TeXcolorgray 24 w Fx(ctor)m(,)h(not)f(intended)f(for)g(general)h(use.)35 b(parameters)22 b(control)g(ho)n(w)h(much)f(gets)515 4311 y(read)d(on)h(initialization.)k(An)d(abstract)f(function,)e (implemented)g(in)i(the)h(subclasses.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 4522 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4464 a SDict begin H.S end 515 4464 a 515 4464 a SDict begin 12 H.A end 515 4464 a 515 4464 a SDict begin [ /View [/XYZ H.V] /Dest (table.84) cvn H.B /DEST pdfmark end 515 4464 a 0.5 TeXcolorgray 515 4567 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4567 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4667 4 100 v 0 TeXcolorgray 671 4637 a Ft(r)m(eadFla)o(g)p 0.5 TeXcolorgray 1005 4667 V 0 TeXcolorgray 59 w Fx(read)f(the)g(image)f(data)h(if)h (true)p 0.5 TeXcolorgray 3400 4667 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4670 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4670 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4770 4 100 v 0 TeXcolorgray 869 4740 a Ft(k)o(e)n(y)p 0.5 TeXcolorgray 1005 4770 V 0 TeXcolorgray 60 w Fx(a)d(v)o(ector)f(of)h(strings)g(of)f (k)o(e)o(yw)o(ord)f(names)i(to)g(be)g(read)f(from)g(the)h(primary)p 0 0 1 TeXcolorrgb 3191 4741 a SDict begin H.S end 3191 4741 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 3371 4686 a SDict begin H.R end 3371 4686 a 3371 4740 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 3371 4740 a 0 TeXcolorgray 0.5 TeXcolorgray 3400 4770 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4773 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4773 V 0 TeXcolorgray 0 TeXcolorgray 515 5003 a SDict begin H.S end 515 5003 a 0 TeXcolorgray 0 TeXcolorgray 515 5003 a SDict begin H.R end 515 5003 a 515 5003 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a75f86db856e2cc7772a97d9ded3a633c) cvn H.B /DEST pdfmark end 515 5003 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 252 x Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 137 142 TeXDict begin 137 141 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.137) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(137)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.6) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.39.3.6)75 b(v)n(oid)18 b(CC\002ts::PHDU::scale)j(\()35 b(doub)o(le)19 b Fk(v)o(alue)34 b Fo(\))71 b Fr([virtual])p 0 TeXcolorgray 515 707 a Fx(set)21 b(the)f(BSCALE)h(k)o(e)o(yw)o(ord)d(v)n(alue)i(for) f(images)h(\(see)h(w)o(arning)e(for)g(images)h(of)g(int)h(type\))515 854 y(F)o(or)h(primary)f(HDUs)i(and)g(image)f(e)o(xtensions,)f(this)j (will)f(add)f(\(or)g(update\))f(the)i(BSCALE)h(k)o(e)o(y-)515 954 y(w)o(ord)g(in)h(the)g(header)-5 b(.)39 b(The)25 b(ne)n(w)f(setting)h(will)h(af)n(fect)e(future)g(image)h(array)f (read/writes)g(as)i(de-)515 1053 y(scribed)c(in)i(section)f(4.7)f(Data) i(Scaling)f(of)g(the)g(CFITSIO)h(manual.)33 b(F)o(or)23 b(table)g(e)o(xtensions)f(this)515 1153 y(function)c(does)i(nothing.) 515 1300 y(WARNING:)k(If)g(the)g(image)g(contains)f Fy(integer)m(-type) f(data)i Fx(\(as)g(indicated)f(by)g(the)p 0 0 1 TeXcolorrgb 3013 1318 a SDict begin H.S end 3013 1318 a 0 0 1 TeXcolorrgb -18 x Fx(bitpix\(\))p 0 0 1 TeXcolorrgb 3262 1244 a SDict begin H.R end 3262 1244 a 3262 1300 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 3262 1300 a 0 TeXcolorgray 25 w Fx(re-)515 1400 y(turn)c(v)n(alue\),)g (the)i(ne)n(w)f(scale)h(and)f(zero)f(v)n(alue)h(combination)e(must)i (not)g(be)h(such)f(that)g(the)h(scaled)515 1499 y(data)f(w)o(ould)f (require)g(a)h(\003oating-point)e(type)i(\(this)g(uses)g(the)h(CFITSIO) f(function)e(\002ts_get_img-)515 1599 y(_equi)n(vtype)f(to)i(mak)o(e)g (the)g(determination\).)k(If)c(this)h(situation)f(occurs,)f(the)i (function)d(will)j(thro)n(w)515 1698 y(a)p 0 0 1 TeXcolorrgb 572 1716 a SDict begin H.S end 572 1716 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1034 1642 a SDict begin H.R end 1034 1642 a 1034 1698 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1034 1698 a 0 TeXcolorgray Fx(.)515 1845 y(Reimplemented)e(from)p 0 0 1 TeXcolorrgb 1243 1846 a SDict begin H.S end 1243 1846 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1682 1789 a SDict begin H.R end 1682 1789 a 1682 1845 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a6c8e0dc188f74f681f6bfe17819b2eb9) cvn H.B /ANN pdfmark end 1682 1845 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1992 a SDict begin H.S end 515 1992 a 0 TeXcolorgray 0 TeXcolorgray 515 1992 a SDict begin H.R end 515 1992 a 515 1992 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) cvn H.B /DEST pdfmark end 515 1992 a 0 TeXcolorgray 515 2029 a SDict begin H.S end 515 2029 a 515 2029 a SDict begin 12 H.A end 515 2029 a 515 2029 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.7) cvn H.B /DEST pdfmark end 515 2029 a 0.25 TeXcolorgray 147 x Fo(24.39.3.7)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)f Fo(v)n(oid)i(CC\002ts::PHDU::write)j(\()37 b(const)19 b(std::vector)p Fu(<)h Fo(long)g Fu(>)d Fo(&)845 2276 y Fk(\002r)o(st,)35 b Fo(long)18 b Fk(nElements,)36 b Fo(const)18 b(std::v)o(alarra)o(y)p Fu(<)h Fo(S)d Fu(>)h Fo(&)g Fk(data,)35 b Fo(S)17 b Fp(\003)g Fk(n)o(ullV)l(alue)35 b Fo(\))p 0 TeXcolorgray 515 2460 a Fx(Write)22 b(a)h(set)g(of)e(pix)o (els)h(to)g(an)g(image)g(e)o(xtension)e(with)j(the)f(\002rst)g(pix)o (el)g(speci\002ed)f(by)h(an)g(n-tuple,)515 2560 y(processing)d (unde\002ned)f(data.)515 2707 y(All)32 b(the)f(o)o(v)o(erloaded)d(v)o (ersions)j(of)p 0 0 1 TeXcolorrgb 1593 2708 a SDict begin H.S end 1593 2708 a 0 0 1 TeXcolorrgb -1 x Fx(PHDU::write)p 0 0 1 TeXcolorrgb 2035 2650 a SDict begin H.R end 2035 2650 a 2035 2707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1PHDU_ad243434dfe8739e7851dfd6f7f4c2c20) cvn H.B /ANN pdfmark end 2035 2707 a 0 TeXcolorgray 32 w Fx(perform)f(operations)f(on)i Fp(\003)p Fx(this)h(if)f(it)h(is)h (an)515 2806 y(image)16 b(and)g(thro)n(w)g(a)h(WrongExtensionT)-7 b(ype)13 b(e)o(xception)i(if)i(not.)24 b(Where)16 b(appropriate,)f (alternate)515 2906 y(v)o(ersions)k(allo)n(w)h(unde\002ned)e(data)i(to) h(be)f(processed)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3116 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3059 a SDict begin H.S end 515 3059 a 515 3059 a SDict begin 12 H.A end 515 3059 a 515 3059 a SDict begin [ /View [/XYZ H.V] /Dest (table.85) cvn H.B /DEST pdfmark end 515 3059 a 0.5 TeXcolorgray 515 3162 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3162 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3361 4 200 v 0 TeXcolorgray 848 3231 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 3361 V 0 TeXcolorgray 61 w Fx(an)26 b(n-tuple)e(of)i(dimension)e(equal)h(to)h(the)g(image)f(dimension)g (specifying)f(the)1037 3331 y(\002rst)d(pix)o(el)e(in)i(the)f(range)f (to)h(be)h(written)p 0.5 TeXcolorgray 3400 3361 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3364 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3364 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3464 4 100 v 0 TeXcolorgray 630 3434 a Ft(nElements)p 0.5 TeXcolorgray 1005 3464 V 0 TeXcolorgray 60 w Fx(number)d(of)i(pix)o (els)g(to)g(be)g(written)p 0.5 TeXcolorgray 3400 3464 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3467 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3467 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3567 4 100 v 0 TeXcolorgray 829 3537 a Ft(data)p 0.5 TeXcolorgray 1005 3567 V 0 TeXcolorgray 59 w Fx(array)f(of)h(data)g(to)g(be)h(written)p 0.5 TeXcolorgray 3400 3567 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3570 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3570 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3769 4 200 v 0 TeXcolorgray 663 3640 a Ft(nullV)-9 b(alue)p 0.5 TeXcolorgray 1005 3769 V 0 TeXcolorgray 58 w Fx(pointer)23 b(to)h(null)g(v)n(alue)f (\(data)h(with)g(this)g(v)n(alue)g(written)f(as)i(unde\002ned;)f(needs) 1037 3739 y(the)c(BLANK)h(k)o(e)o(yw)o(ord)d(to)i(ha)n(v)o(e)g(been)g (speci\002ed\).)p 0.5 TeXcolorgray 3400 3769 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3773 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3773 V 0 TeXcolorgray 0 TeXcolorgray 515 4003 a SDict begin H.S end 515 4003 a 0 TeXcolorgray 0 TeXcolorgray 515 4003 a SDict begin H.R end 515 4003 a 515 4003 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a74015a1d158ef9f04f875dca9818f5ea) cvn H.B /DEST pdfmark end 515 4003 a 0 TeXcolorgray 515 4040 a SDict begin H.S end 515 4040 a 515 4040 a SDict begin 12 H.A end 515 4040 a 515 4040 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.8) cvn H.B /DEST pdfmark end 515 4040 a 0.25 TeXcolorgray 147 x Fo(24.39.3.8)75 b(template)p Fu(<)p Fo(typename)21 b(S)16 b Fu(>)h Fo(v)n(oid)h (CC\002ts::PHDU::write)j(\()34 b(long)19 b Fk(\002r)o(st,)34 b Fo(long)19 b Fk(nElements,)36 b Fo(const)845 4286 y(std::v)o(alarra)o (y)p Fu(<)18 b Fo(S)f Fu(>)g Fo(&)g Fk(data,)35 b Fo(S)17 b Fp(\003)f Fk(n)o(ullV)l(alue)36 b Fo(\))p 0 TeXcolorgray 515 4471 a Fx(write)24 b(array)f(to)h(image)g(starting)g(with)g(a)g (speci\002ed)g(pix)o(el)g(and)f(allo)n(wing)g(unde\002ned)f(data)i(to)h (be)515 4570 y(processed)515 4717 y(parameters)20 b(after)h(the)h (\002rst)g(are)f(as)i(for)e(v)o(ersion)f(with)i(n-tuple)e(specifying)g (\002rst)i(element.)28 b(these)515 4817 y(tw)o(o)18 b(v)o(ersion)f(are) h(equi)n(v)n(alent,)e(e)o(xcept)i(that)g(it)h(is)g(possible)e(for)h (the)g(\002rst)h(pix)o(el)e(number)g(to)h(e)o(xceed)515 4916 y(the)i(range)f(of)h(32-bit)f(inte)o(gers,)g(which)h(is)h(ho)n(w)f (long)f(datatype)g(is)i(commonly)d(implemented.)p 0 TeXcolorgray 3318 4916 a SDict begin H.S end 3318 4916 a 0 TeXcolorgray 0 TeXcolorgray 3318 4916 a SDict begin H.R end 3318 4916 a 3318 4916 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_a20f16c9a8d60de748ed7697afbc91863) cvn H.B /DEST pdfmark end 3318 4916 a 0 TeXcolorgray 515 4972 a SDict begin H.S end 515 4972 a 515 4972 a SDict begin 12 H.A end 515 4972 a 515 4972 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.9) cvn H.B /DEST pdfmark end 515 4972 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 283 x Fw(Generated)d(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 138 143 TeXDict begin 138 142 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.138) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.39)81 b(CC\002ts::PHDU)19 b(Class)i(Refer)o(ence)1367 b(138)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.39.3.9)75 b(template)p Fu(<)p Fo(typename)22 b(S)c Fu(>)f Fo(v)n(oid)i(CC\002ts::PHDU::write)j (\()37 b(const)19 b(std::vector)p Fu(<)h Fo(long)g Fu(>)d Fo(&)845 623 y Fk(\002r)o(stV)l(er)q(te)o(x,)38 b Fo(const)19 b(std::vector)p Fu(<)i Fo(long)e Fu(>)e Fo(&)i Fk(lastV)l(er)q(te)o(x,) 38 b Fo(const)19 b(std::vector)p Fu(<)h Fo(long)f Fu(>)f Fo(&)845 722 y Fk(stride)q(,)35 b Fo(const)18 b(std::v)o(alarra)o(y)p Fu(<)g Fo(S)f Fu(>)g Fo(&)g Fk(data)35 b Fo(\))p 0 TeXcolorgray 515 907 a Fx(write)20 b(a)h(subset)f(\(generalize)f(slice\))h(of)g (data)g(to)g(the)h(image)515 1053 y(A)d(generalized)e(slice/subset)i (is)h(a)f(subset)g(of)g(the)g(image)f(\(e.g.)23 b(one)18 b(plane)f(of)g(a)i(data)e(cube)g(of)h(size)515 1153 y Fu(<)p Fx(=)h(the)h(dimension)e(of)h(the)g(cube\).)24 b(It)c(is)g(speci\002ed)g(by)f(tw)o(o)g(opposite)g(v)o(ertices.)24 b(The)19 b(equi)n(v)n(alent)515 1253 y(c\002tsio)f(call)g(does)f(not)g (support)f(unde\002ned)g(data)h(processing)f(so)i(there)f(is)h(no)g(v)o (ersion)e(that)h(allo)n(ws)515 1352 y(a)j(null)g(v)n(alue)g(to)g(be)g (speci\002ed.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1562 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1505 a SDict begin H.S end 515 1505 a 515 1505 a SDict begin 12 H.A end 515 1505 a 515 1505 a SDict begin [ /View [/XYZ H.V] /Dest (table.86) cvn H.B /DEST pdfmark end 515 1505 a 0.5 TeXcolorgray 515 1608 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1608 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1807 4 200 v 0 TeXcolorgray 642 1678 a Ft(\002r)o(stV)-9 b(erte)n(x)p 0.5 TeXcolorgray 1005 1807 V 0 TeXcolorgray 61 w Fx(The)53 b(coordinates)e(specifying)h(lo)n(wer)h(and)f(upper)g(v) o(ertices)h(of)g(the)g(n-)1037 1777 y(dimensional)19 b(slice)p 0.5 TeXcolorgray 3400 1807 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1810 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1810 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1910 4 100 v 0 TeXcolorgray 651 1880 a Ft(lastV)-9 b(erte)n(x)p 0.5 TeXcolorgray 1005 1910 V 0 TeXcolorgray 0.5 TeXcolorgray 3400 1910 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1913 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1913 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2212 4 299 v 0 TeXcolorgray 787 1983 a(stride)p 0.5 TeXcolorgray 1005 2212 V 0 TeXcolorgray 61 w Fx(Pix)o(els)19 b(to)g(skip)f(in)h (each)g(to)f(dimension,)g(e.g.)24 b(stride)19 b(=)g(\(1,1,1,...\))i (means)e(pick-)1037 2083 y(ing)k(e)n(v)o(ery)f(pix)o(el)g(in)i(e)n(v)o (ery)e(dimension,)g(whearas)h(stride)g(=)h(\(2,2,2,...\))31 b(means)1037 2182 y(picking)19 b(e)n(v)o(ery)g(other)g(v)n(alue)g(in)i (each)f(dimension.)p 0.5 TeXcolorgray 3400 2212 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2216 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2216 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2315 4 100 v 0 TeXcolorgray 829 2285 a Ft(data)p 0.5 TeXcolorgray 1005 2315 V 0 TeXcolorgray 59 w Fx(The)g(data)g(to)g (be)g(written)p 0.5 TeXcolorgray 3400 2315 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2319 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2319 V 0 TeXcolorgray 0 TeXcolorgray 515 2548 a SDict begin H.S end 515 2548 a 0 TeXcolorgray 0 TeXcolorgray 515 2548 a SDict begin H.R end 515 2548 a 515 2548 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1PHDU_abcc25c1d318581d9b650a784b799285d) cvn H.B /DEST pdfmark end 515 2548 a 0 TeXcolorgray 515 2586 a SDict begin H.S end 515 2586 a 515 2586 a SDict begin 12 H.A end 515 2586 a 515 2586 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.39.3.10) cvn H.B /DEST pdfmark end 515 2586 a 0.25 TeXcolorgray 147 x Fo(24.39.3.10)75 b(v)n(oid)18 b(CC\002ts::PHDU::z)q(er)o(o)i(\()35 b(doub)o(le)19 b Fk(v)o(alue)34 b Fo(\))72 b Fr([)o(virtual])p 0 TeXcolorgray 515 2917 a Fx(set)21 b(the)f(BZERO)h(k)o(e)o(yw)o(ord)d(v)n(alue)i(for) f(images)h(\(see)h(w)o(arning)e(for)g(images)h(of)g(int)g(type\))515 3064 y(F)o(or)15 b(primary)e(HDUs)j(and)f(image)g(e)o(xtensions,)f (this)i(will)g(add)f(\(or)f(update\))g(the)h(BZERO)h(k)o(e)o(yw)o(ord) 515 3163 y(in)24 b(the)g(header)-5 b(.)35 b(The)23 b(ne)n(w)h(setting)g (will)h(af)n(fect)e(future)g(image)g(array)g(read/writes)g(as)i (described)515 3263 y(in)c(section)f(4.7)g(Data)i(Scaling)e(of)g(the)h (CFITSIO)g(manual.)26 b(F)o(or)21 b(table)f(e)o(xtensions)g(this)h (function)515 3363 y(does)f(nothing.)515 3510 y(WARNING:)k(If)g(the)g (image)g(contains)f Fy(integer)m(-type)f(data)i Fx(\(as)g(indicated)f (by)g(the)p 0 0 1 TeXcolorrgb 3013 3527 a SDict begin H.S end 3013 3527 a 0 0 1 TeXcolorrgb -17 x Fx(bitpix\(\))p 0 0 1 TeXcolorrgb 3262 3453 a SDict begin H.R end 3262 3453 a 3262 3510 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a81a2d5b001c0ae7d0a298942940189d8) cvn H.B /ANN pdfmark end 3262 3510 a 0 TeXcolorgray 25 w Fx(re-)515 3609 y(turn)c(v)n(alue\),)g(the)i(ne)n(w)f(scale)h(and) f(zero)f(v)n(alue)h(combination)e(must)i(not)g(be)h(such)f(that)g(the)h (scaled)515 3709 y(data)f(w)o(ould)f(require)g(a)h(\003oating-point)e (type)i(\(this)g(uses)g(the)h(CFITSIO)f(function)e(\002ts_get_img-)515 3808 y(_equi)n(vtype)f(to)i(mak)o(e)g(the)g(determination\).)k(If)c (this)h(situation)f(occurs,)f(the)i(function)d(will)j(thro)n(w)515 3908 y(a)p 0 0 1 TeXcolorrgb 572 3926 a SDict begin H.S end 572 3926 a 0 0 1 TeXcolorrgb -18 x Fx(FitsException)p 0 0 1 TeXcolorrgb 1034 3852 a SDict begin H.R end 1034 3852 a 1034 3908 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsException) cvn H.B /ANN pdfmark end 1034 3908 a 0 TeXcolorgray Fx(.)515 4055 y(Reimplemented)e(from)p 0 0 1 TeXcolorrgb 1243 4056 a SDict begin H.S end 1243 4056 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::HDU)p 0 0 1 TeXcolorrgb 1682 3999 a SDict begin H.R end 1682 3999 a 1682 4055 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU_a2fb3adf98e8cc736b200520afed61c13) cvn H.B /ANN pdfmark end 1682 4055 a 0 TeXcolorgray Fx(.)515 4202 y(The)i(documentation)d(for)i (this)i(class)g(w)o(as)g(generated)e(from)g(the)h(follo)n(wing)f (\002les:)p 0 TeXcolorgray 652 4415 a(\225)p 0 TeXcolorgray 41 w(PHDU.h)p 0 TeXcolorgray 652 4523 a(\225)p 0 TeXcolorgray 41 w(PHDU.cxx)p 0 TeXcolorgray 652 4631 a(\225)p 0 TeXcolorgray 41 w(PHDUT)-6 b(.h)p 0 TeXcolorgray 515 4844 a SDict begin H.S end 515 4844 a 0 TeXcolorgray 0 TeXcolorgray 515 4844 a SDict begin H.R end 515 4844 a 515 4844 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table) cvn H.B /DEST pdfmark end 515 4844 a 0 TeXcolorgray 515 4966 a SDict begin H.S end 515 4966 a 515 4966 a SDict begin 12 H.A end 515 4966 a 515 4966 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.40) cvn H.B /DEST pdfmark end 515 4966 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 289 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 139 144 TeXDict begin 139 143 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.139) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.40)81 b(CC\002ts::T)-8 b(able)20 b(Class)h(Refer)o(ence)1407 b(139)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fq(24.40)89 b(CC\002ts::T)-6 b(ab)o(le)23 b(Class)d(Ref)o(erence)p 0 TeXcolorgray 515 726 a Fr(#include)48 b Fu(<)p Fr(Table.h)p Fu(>)515 873 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::T)-7 b(able:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1244 1942 a @beginspecial 0 @llx 0 @lly 500 @urx 336.134460 @ury 1133 @rhi @setspecial %%BeginDocument: classCCfits_1_1Table.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 336.134454 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 1.487500 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 4 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Table) cw (CCfits::ExtHDU) cw (CCfits::HDU) cw (CCfits::AsciiTable) cw (CCfits::BinTable) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Table) 0.500000 1.000000 box (CCfits::ExtHDU) 0.500000 2.000000 box (CCfits::HDU) 0.500000 3.000000 box (CCfits::AsciiTable) 0.000000 0.000000 box (CCfits::BinTable) 1.000000 0.000000 box % ----- relations ----- solid 0 0.500000 1.000000 out solid 1 0.500000 2.000000 in solid 0 0.500000 2.000000 out solid 1 0.500000 3.000000 in solid 1 0.500000 0.250000 out solid 0.000000 1.000000 1.000000 conn solid 0 0.000000 0.750000 in solid 0 1.000000 0.750000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2293 a Fo(Classes)p 0 TeXcolorgray 515 2350 a SDict begin H.S end 515 2350 a 515 2350 a SDict begin 12 H.A end 515 2350 a 515 2350 a SDict begin [ /View [/XYZ H.V] /Dest (section*.63) cvn H.B /DEST pdfmark end 515 2350 a 0 TeXcolorgray 652 2481 a Fx(\225)p 0 TeXcolorgray 41 w(class)p 0 0 1 TeXcolorrgb 904 2482 a SDict begin H.S end 904 2482 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchColumn)p 0 0 1 TeXcolorrgb 1440 2424 a SDict begin H.R end 1440 2424 a 1440 2481 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn) cvn H.B /ANN pdfmark end 1440 2481 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 840 2604 a Fl(Exception)22 b(to)f(be)h(thr)m(own)f(on)h (a)g(failur)m(e)f(to)g(r)m(etrie)o(ve)h(a)f(column)h(speci\002ed)h (either)e(by)h(name)g(or)840 2696 y(inde)o(x)d(number)-8 b(.)p 0.25 TeXcolorgray 515 2963 a Fo(Pub)o(lic)18 b(Member)g (Functions)p 0 TeXcolorgray 515 3020 a SDict begin H.S end 515 3020 a 515 3020 a SDict begin 12 H.A end 515 3020 a 515 3020 a SDict begin [ /View [/XYZ H.V] /Dest (section*.64) cvn H.B /DEST pdfmark end 515 3020 a 0 TeXcolorgray 0 TeXcolorgray 652 3151 a Fx(\225)p 0 TeXcolorgray 722 3151 a SDict begin H.S end 722 3151 a 0 TeXcolorgray 0 TeXcolorgray 722 3151 a SDict begin H.R end 722 3151 a 722 3151 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a0b1f880e7bb883a2b05ee20909d94fbf) cvn H.B /DEST pdfmark end 722 3151 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 743 3152 a SDict begin H.S end 743 3152 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 925 3095 a SDict begin H.R end 925 3095 a 925 3151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a0b1f880e7bb883a2b05ee20909d94fbf) cvn H.B /ANN pdfmark end 925 3151 a 0 TeXcolorgray 21 w Fx(\(const)p 0 0 1 TeXcolorrgb 1170 3152 a SDict begin H.S end 1170 3152 a 0 0 1 TeXcolorrgb -1 x Fx(T)g(able)p 0 0 1 TeXcolorrgb 1352 3095 a SDict begin H.R end 1352 3095 a 1352 3151 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1352 3151 a 0 TeXcolorgray 21 w Fx(&right\))p 0 TeXcolorgray 0 TeXcolorgray 840 3275 a Fl(copy)20 b(constructor)p 0 TeXcolorgray 0 TeXcolorgray 652 3382 a Fx(\225)p 0 TeXcolorgray 722 3382 a SDict begin H.S end 722 3382 a 0 TeXcolorgray 0 TeXcolorgray 722 3382 a SDict begin H.R end 722 3382 a 722 3382 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a933afd64667d8ad6a7291686ca3d8603) cvn H.B /DEST pdfmark end 722 3382 a 0 TeXcolorgray 21 w Fx(virtual)p 0 0 1 TeXcolorrgb 981 3383 a SDict begin H.S end 981 3383 a 0 0 1 TeXcolorrgb -1 x Fp(\030)p Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1227 3326 a SDict begin H.R end 1227 3326 a 1227 3382 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a933afd64667d8ad6a7291686ca3d8603) cvn H.B /ANN pdfmark end 1227 3382 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 3506 a Fl(destructor)p 0 TeXcolorgray 652 3613 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)p 0 0 1 TeXcolorrgb 973 3614 a SDict begin H.S end 973 3614 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1240 3557 a SDict begin H.R end 1240 3557 a 1240 3613 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1240 3613 a 0 TeXcolorgray 34 w Fx(&)p 0 0 1 TeXcolorrgb 1372 3614 a SDict begin H.S end 1372 3614 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 1621 3557 a SDict begin H.R end 1621 3557 a 1621 3613 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_ae578460dd522485e48ccd8f4536e5531) cvn H.B /ANN pdfmark end 1621 3613 a 0 TeXcolorgray 34 w Fx(\(const)33 b(String)f(&colName,)j(bool)d(caseSensiti)n(v)o(e=true\))722 3713 y(const)p 0 TeXcolorgray 0 TeXcolorgray 840 3837 a Fl(r)m(eturn)20 b(a)f(r)m(efer)m(ence)h(to)f(a)p 0 0 1 TeXcolorrgb 1527 3838 a SDict begin H.S end 1527 3838 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1691 3786 a SDict begin H.R end 1691 3786 a 1691 3837 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1691 3837 a 0 TeXcolorgray 18 w Fl(column)20 b(speci\002ed)g(by)f(name)o(.)p 0 TeXcolorgray 652 3944 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)p 0 0 1 TeXcolorrgb 960 3945 a SDict begin H.S end 960 3945 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1227 3887 a SDict begin H.R end 1227 3887 a 1227 3944 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1227 3944 a 0 TeXcolorgray 21 w Fx(&)p 0 0 1 TeXcolorrgb 1333 3945 a SDict begin H.S end 1333 3945 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 1583 3887 a SDict begin H.R end 1583 3887 a 1583 3944 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a67eb478179846fc940e202476b4c08a3) cvn H.B /ANN pdfmark end 1583 3944 a 0 TeXcolorgray 20 w Fx(\(int)h(colInde)o(x\))e(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4067 a Fl(r)m(eturn)i(a)f(r)m(efer)m (ence)h(to)f(the)g(column)h(identi\002ed)g(by)f(colInde)o(x)p 0 TeXcolorgray 652 4175 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)h(const)g(std::map)p Fu(<)f Fx(string,)p 0 0 1 TeXcolorrgb 1778 4176 a SDict begin H.S end 1778 4176 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2046 4118 a SDict begin H.R end 2046 4118 a 2046 4175 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2046 4175 a 0 TeXcolorgray 21 w Fp(\003)h Fu(>)g Fx(&)p 0 0 1 TeXcolorrgb 2300 4176 a SDict begin H.S end 2300 4176 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 2549 4118 a SDict begin H.R end 2549 4118 a 2549 4175 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a573b295bfdd242a99d97d0d3a1dd4982) cvn H.B /ANN pdfmark end 2549 4175 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 4298 a Fl(r)m(eturn)g(a)f(r)m(efer)m(ence)h(to)f(the)g(arr)o(ay)h (containing)g(the)f(columns.)p 0 TeXcolorgray 652 4405 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)h(std::map)p Fu(<)f Fx(string,)p 0 0 1 TeXcolorrgb 1582 4406 a SDict begin H.S end 1582 4406 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1850 4349 a SDict begin H.R end 1850 4349 a 1850 4405 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1850 4405 a 0 TeXcolorgray 21 w Fp(\003)h Fu(>)g Fx(&)p 0 0 1 TeXcolorrgb 2104 4406 a SDict begin H.S end 2104 4406 a 0 0 1 TeXcolorrgb -1 x Fx(column)p 0 0 1 TeXcolorrgb 2353 4349 a SDict begin H.R end 2353 4349 a 2353 4405 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_ac41ac8e02386d095a969142b486d3890) cvn H.B /ANN pdfmark end 2353 4405 a 0 TeXcolorgray 20 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 4529 a Fl(r)m(eturn)g(a)f(r)m(efer)m(ence)h(to)f(the)g (arr)o(ay)h(containing)g(the)f(columns.)p 0 TeXcolorgray 652 4636 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)h(v)n(oid)p 0 0 1 TeXcolorrgb 1127 4637 a SDict begin H.S end 1127 4637 a 0 0 1 TeXcolorrgb -1 x Fx(deleteColumn)p 0 0 1 TeXcolorrgb 1592 4580 a SDict begin H.R end 1592 4580 a 1592 4636 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a19bde9d4a37a2ee07016ef627e5fecde) cvn H.B /ANN pdfmark end 1592 4636 a 0 TeXcolorgray 21 w Fx(\(const)g(String)g(&columnName\))p 0 TeXcolorgray 0 TeXcolorgray 840 4760 a Fl(delete)g(a)f(column)g(in)g(a)p 0 0 1 TeXcolorrgb 1465 4761 a SDict begin H.S end 1465 4761 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1628 4709 a SDict begin H.R end 1628 4709 a 1628 4760 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1628 4760 a 0 TeXcolorgray 19 w Fl(e)o(xtension)19 b(by)h(name)o(.)p 0 TeXcolorgray 652 4867 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 4868 a SDict begin H.S end 889 4868 a 0 0 1 TeXcolorrgb -1 x Fx(deleteRo)n(ws)p 0 0 1 TeXcolorrgb 1274 4811 a SDict begin H.R end 1274 4811 a 1274 4867 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_aa89bbe572a86b8bc4ca4249ba0b21dbb) cvn H.B /ANN pdfmark end 1274 4867 a 0 TeXcolorgray 21 w Fx(\(long)f(\002rst,)i(long)e (number=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 4991 a Fl(delete)h(a)f(r)o(ang)o(e)h(of)e(r)m(ows)h(in)g(a)g(table)o(.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 140 145 TeXDict begin 140 144 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.140) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.40)81 b(CC\002ts::T)-8 b(able)20 b(Class)h(Refer)o(ence)1407 b(140)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 652 523 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 524 a SDict begin H.S end 889 524 a 0 0 1 TeXcolorrgb -1 x Fx(deleteRo)n(ws)p 0 0 1 TeXcolorrgb 1274 467 a SDict begin H.R end 1274 467 a 1274 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a7dc1b5bfcfde698946777e045b532ba2) cvn H.B /ANN pdfmark end 1274 523 a 0 TeXcolorgray 21 w Fx(\(const)20 b(std::v)o(ector)p Fu(<)e Fx(long)i Fu(>)g Fx(&ro)n(wList\))p 0 TeXcolorgray 0 TeXcolorgray 840 648 a Fl(delete)g(a)f(set)f(of)h(r)m(ows)g(in)g(the)f(table)i (speci\002ed)g(by)f(an)g(input)h(arr)o(ay)l(.)p 0 TeXcolorgray 652 756 a Fx(\225)p 0 TeXcolorgray 41 w(virtual)g(long)p 0 0 1 TeXcolorrgb 1128 773 a SDict begin H.S end 1128 773 a 0 0 1 TeXcolorrgb -17 x Fx(getRo)n(wsize)p 0 0 1 TeXcolorrgb 1513 699 a SDict begin H.R end 1513 699 a 1513 756 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a54e2948a7603a058c6a3cd99f0806ac9) cvn H.B /ANN pdfmark end 1513 756 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 880 a Fl(r)m(eturn)g(the)f(optimal)g(number)h(of)f(r)m(ows)g(to)f(r)m(ead)i (or)f(write)g(at)f(a)h(time)p 0 TeXcolorgray 652 988 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 989 a SDict begin H.S end 889 989 a 0 0 1 TeXcolorrgb -1 x Fx(insertRo)n(ws)p 0 0 1 TeXcolorrgb 1261 932 a SDict begin H.R end 1261 932 a 1261 988 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a470beae464348ac917729b0d1d693ba0) cvn H.B /ANN pdfmark end 1261 988 a 0 TeXcolorgray 20 w Fx(\(long)g(\002rst,)i(long)e(number=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 1112 a Fl(insert)g(empty)g(r)m(ows)g (into)g(the)g(table)p 0 TeXcolorgray 0 TeXcolorgray 652 1220 a Fx(\225)p 0 TeXcolorgray 722 1220 a SDict begin H.S end 722 1220 a 0 TeXcolorgray 0 TeXcolorgray 722 1220 a SDict begin H.R end 722 1220 a 722 1220 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) cvn H.B /DEST pdfmark end 722 1220 a 0 TeXcolorgray 21 w Fx(virtual)h(int)p 0 0 1 TeXcolorrgb 1089 1221 a SDict begin H.S end 1089 1221 a 0 0 1 TeXcolorrgb -1 x Fx(numCols)p 0 0 1 TeXcolorrgb 1389 1164 a SDict begin H.R end 1389 1164 a 1389 1220 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) cvn H.B /ANN pdfmark end 1389 1220 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1345 a Fl(r)m(eturn)g(the)f(number)h (of)f(Columns)g(in)g(the)p 0 0 1 TeXcolorrgb 1948 1346 a SDict begin H.S end 1948 1346 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 2111 1294 a SDict begin H.R end 2111 1294 a 2111 1345 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2111 1345 a 0 TeXcolorgray 19 w Fl(\(the)19 b(TFIELDS)e(k)o(e)n(ywor)m (d\).)p 0 TeXcolorgray 0 TeXcolorgray 652 1453 a Fx(\225)p 0 TeXcolorgray 722 1453 a SDict begin H.S end 722 1453 a 0 TeXcolorgray 0 TeXcolorgray 722 1453 a SDict begin H.R end 722 1453 a 722 1453 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a63b3ceb651637d7e73fd4a787b136450) cvn H.B /DEST pdfmark end 722 1453 a 0 TeXcolorgray 21 w Fx(virtual)j(long)p 0 0 1 TeXcolorrgb 1149 1454 a SDict begin H.S end 1149 1454 a 0 0 1 TeXcolorrgb -1 x Fx(ro)n(ws)p 0 0 1 TeXcolorrgb 1308 1415 a SDict begin H.R end 1308 1415 a 1308 1453 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a63b3ceb651637d7e73fd4a787b136450) cvn H.B /ANN pdfmark end 1308 1453 a 0 TeXcolorgray 21 w Fx(\(\))g(const)p 0 TeXcolorgray 0 TeXcolorgray 840 1577 a Fl(r)m(eturn)g(the)f(number)h(of)f(r)m(ows)g (in)f(the)h(table)g(\(NAXIS2\).)p 0 TeXcolorgray 0 TeXcolorgray 652 1685 a Fx(\225)p 0 TeXcolorgray 722 1685 a SDict begin H.S end 722 1685 a 0 TeXcolorgray 0 TeXcolorgray 722 1685 a SDict begin H.R end 722 1685 a 722 1685 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_aaf11d6f4b77aa533bd09562edcea4c10) cvn H.B /DEST pdfmark end 722 1685 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 1686 a SDict begin H.S end 910 1686 a 0 0 1 TeXcolorrgb -1 x Fx(ro)n(ws)p 0 0 1 TeXcolorrgb 1069 1647 a SDict begin H.R end 1069 1647 a 1069 1685 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_aaf11d6f4b77aa533bd09562edcea4c10) cvn H.B /ANN pdfmark end 1069 1685 a 0 TeXcolorgray 21 w Fx(\(long)g(numRo)n (ws\))p 0 TeXcolorgray 0 TeXcolorgray 840 1810 a Fl(set)g(the)g(number) h(of)f(r)m(ows)f(in)h(the)p 0 0 1 TeXcolorrgb 1723 1811 a SDict begin H.S end 1723 1811 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1887 1759 a SDict begin H.R end 1887 1759 a 1887 1810 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1887 1810 a 0 TeXcolorgray Fl(.)p 0 TeXcolorgray 652 1918 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 889 1936 a SDict begin H.S end 889 1936 a 0 0 1 TeXcolorrgb -18 x Fx(updateRo)n(ws)p 0 0 1 TeXcolorrgb 1297 1862 a SDict begin H.R end 1297 1862 a 1297 1918 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_aa610c082528ac5ed89b715e3f3b2e4e6) cvn H.B /ANN pdfmark end 1297 1918 a 0 TeXcolorgray 21 w Fx(\(\))p 0 TeXcolorgray 0 TeXcolorgray 840 2042 a Fl(update)20 b(the)f(number)h(of)f(r)m(ows)g(in)g(the)g(table)p 0.25 TeXcolorgray 515 2311 a Fo(Pr)o(otected)f(Member)g(Functions)p 0 TeXcolorgray 515 2367 a SDict begin H.S end 515 2367 a 515 2367 a SDict begin 12 H.A end 515 2367 a 515 2367 a SDict begin [ /View [/XYZ H.V] /Dest (section*.65) cvn H.B /DEST pdfmark end 515 2367 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2500 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2501 a SDict begin H.S end 722 2501 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 905 2443 a SDict begin H.R end 905 2443 a 905 2500 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a37f73f59845f49a01fbd587ce1bd06f3) cvn H.B /ANN pdfmark end 905 2500 a 0 TeXcolorgray 26 w Fx(\(FITSBase)26 b Fp(\003)p Fx(p,)h(HduT)-7 b(ype)24 b(xtype,)i(const)g(String)f(&hduName,)g(int)h(ro)n(ws,)h (const)722 2599 y(std::v)o(ector)p Fu(<)h Fx(String)i Fu(>)g Fx(&columnName,)f(const)g(std::v)o(ector)p Fu(<)g Fx(String)g Fu(>)h Fx(&column-)722 2699 y(Fmt,)18 b(const)f(std::v)o (ector)p Fu(<)f Fx(String)h Fu(>)g Fx(&columnUnit=std::v)o(ector)p Fu(<)c Fx(String)k Fu(>)p Fx(\(\),)g(int)g(v)o(er)n(-)722 2798 y(sion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 2923 a Fl(Constructor)j(to)f(be)g(used)h(for)f(cr)m(eating)h(ne)o(w)f(HDUs.) p 0 TeXcolorgray 0 TeXcolorgray 652 3031 a Fx(\225)p 0 TeXcolorgray 722 3031 a SDict begin H.S end 722 3031 a 0 TeXcolorgray 0 TeXcolorgray 722 3031 a SDict begin H.R end 722 3031 a 722 3031 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a3325a78088498051760efde16dfae9b8) cvn H.B /DEST pdfmark end 722 3031 a 0 TeXcolorgray 0 0 1 TeXcolorrgb 750 3032 a SDict begin H.S end 750 3032 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 932 2975 a SDict begin H.R end 932 2975 a 932 3031 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a3325a78088498051760efde16dfae9b8) cvn H.B /ANN pdfmark end 932 3031 a 0 TeXcolorgray 28 w Fx(\(FITSBase)27 b Fp(\003)p Fx(p,)h(HduT)-7 b(ype)25 b(xtype,)i(const)g(String)f(&hduName=String\(""\),)e(int)722 3130 y(v)o(ersion=1\))p 0 TeXcolorgray 0 TeXcolorgray 840 3255 a Fl(Constructor)29 b(to)f(be)g(called)h(by)f(oper)o(ations)h (that)f(r)m(ead)p 0 0 1 TeXcolorrgb 2374 3256 a SDict begin H.S end 2374 3256 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 2538 3204 a SDict begin H.R end 2538 3204 a 2538 3255 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2538 3255 a 0 TeXcolorgray 27 w Fl(speci\002ed)30 b(by)e(hduName)h(and)840 3346 y(ver)o(sion.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 3454 a Fx(\225)p 0 0 1 TeXcolorrgb 722 3455 a SDict begin H.S end 722 3455 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 905 3398 a SDict begin H.R end 905 3398 a 905 3454 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_af79b97361d3f64e7b6fa48296a971818) cvn H.B /ANN pdfmark end 905 3454 a 0 TeXcolorgray 20 w Fx(\(FITSBase)21 b Fp(\003)p Fx(p,)e(HduT)-7 b(ype)19 b(xtype,)g(int)i(number\))p 0 0 1 TeXcolorrgb 0 TeXcolorgray 0 0 1 TeXcolorrgb 840 3580 a SDict begin H.S end 840 3580 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 1004 3528 a SDict begin H.R end 1004 3528 a 1004 3579 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1004 3579 a 0 TeXcolorgray 18 w Fl(constructor)21 b(for)e(g)o(etting)g(T)-7 b(ables)19 b(by)g(number)-8 b(.)p 0 TeXcolorgray 652 3687 a Fx(\225)p 0 TeXcolorgray 41 w(v)n(oid)p 0 0 1 TeXcolorrgb 891 3688 a SDict begin H.S end 891 3688 a 0 0 1 TeXcolorrgb -1 x Fx(init)p 0 0 1 TeXcolorrgb 1001 3630 a SDict begin H.R end 1001 3630 a 1001 3687 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_ab5ade7dd546fe55f2c0e1f5ff7e0eddf) cvn H.B /ANN pdfmark end 1001 3687 a 0 TeXcolorgray 23 w Fx(\(bool)20 b(readFlag=f)o(alse,)h(const)g(std::v)o(ector)p Fu(<)g Fx(String)g Fu(>)h Fx(&k)o(e)o(ys=std::v)o(ector)p Fu(<)722 3786 y Fx(String)e Fu(>)p Fx(\(\)\))p 0 TeXcolorgray 0 TeXcolorgray 652 3894 a(\225)p 0 TeXcolorgray 722 3894 a SDict begin H.S end 722 3894 a 0 TeXcolorgray 0 TeXcolorgray 722 3894 a SDict begin H.R end 722 3894 a 722 3894 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a7a9b5c4231233847904f841d023978a5) cvn H.B /DEST pdfmark end 722 3894 a 0 TeXcolorgray 21 w Fx(v)n(oid)p 0 0 1 TeXcolorrgb 910 3895 a SDict begin H.S end 910 3895 a 0 0 1 TeXcolorrgb -1 x Fx(numCols)p 0 0 1 TeXcolorrgb 1210 3838 a SDict begin H.R end 1210 3838 a 1210 3894 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a7a9b5c4231233847904f841d023978a5) cvn H.B /ANN pdfmark end 1210 3894 a 0 TeXcolorgray 20 w Fx(\(int)g(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4019 a Fl(set)f(the)g(number)h(of)f(Columns)g(in)g(the)p 0 0 1 TeXcolorrgb 1847 4020 a SDict begin H.S end 1847 4020 a 0 0 1 TeXcolorrgb -1 x Fl(T)-7 b(able)p 0 0 1 TeXcolorrgb 2010 3968 a SDict begin H.R end 2010 3968 a 2010 4019 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2010 4019 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 652 4127 a Fx(\225)p 0 TeXcolorgray 722 4127 a SDict begin H.S end 722 4127 a 0 TeXcolorgray 0 TeXcolorgray 722 4127 a SDict begin H.R end 722 4127 a 722 4127 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_adcf7114a5828d38b35e1732618716c35) cvn H.B /DEST pdfmark end 722 4127 a 0 TeXcolorgray 21 w Fx(virtual)20 b(v)n(oid)p 0 0 1 TeXcolorrgb 1147 4128 a SDict begin H.S end 1147 4128 a 0 0 1 TeXcolorrgb -1 x Fx(setColumn)p 0 0 1 TeXcolorrgb 1507 4070 a SDict begin H.R end 1507 4070 a 1507 4127 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_adcf7114a5828d38b35e1732618716c35) cvn H.B /ANN pdfmark end 1507 4127 a 0 TeXcolorgray 21 w Fx(\(const)g(String)f(&colname,)p 0 0 1 TeXcolorrgb 2363 4128 a SDict begin H.S end 2363 4128 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2630 4070 a SDict begin H.R end 2630 4070 a 2630 4127 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2630 4127 a 0 TeXcolorgray 21 w Fp(\003)p Fx(v)n(alue\))p 0 TeXcolorgray 0 TeXcolorgray 840 4251 a Fl(set)g(the)g(column)h(with)e(name)i(colname)g(to)e(the)h(input)h (value)o(.)515 4388 y SDict begin H.S end 515 4388 a 515 4388 a SDict begin 12 H.A end 515 4388 a 515 4388 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.40.1) cvn H.B /DEST pdfmark end 515 4388 a 0.25 TeXcolorgray 132 x Fo(24.40.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 4723 a SDict begin H.S end 515 4723 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 697 4666 a SDict begin H.R end 697 4666 a 697 4722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 697 4722 a 0 TeXcolorgray 21 w Fx(is)21 b(the)f(abstract)g (common)f(interf)o(ace)g(to)h(Binary)g(and)g(Ascii)p 0 0 1 TeXcolorrgb 2486 4723 a SDict begin H.S end 2486 4723 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2668 4666 a SDict begin H.R end 2668 4666 a 2668 4722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2668 4722 a 0 TeXcolorgray 21 w Fx(HDUs.)p 0 0 1 TeXcolorrgb 515 4870 a SDict begin H.S end 515 4870 a 0 0 1 TeXcolorrgb -1 x Fx(T)g(able)p 0 0 1 TeXcolorrgb 697 4813 a SDict begin H.R end 697 4813 a 697 4869 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 697 4869 a 0 TeXcolorgray 21 w Fx(is)21 b(a)f(subclass)h(of)p 0 0 1 TeXcolorrgb 1238 4870 a SDict begin H.S end 1238 4870 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU)p 0 0 1 TeXcolorrgb 1534 4815 a SDict begin H.R end 1534 4815 a 1534 4869 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU) cvn H.B /ANN pdfmark end 1534 4869 a 0 TeXcolorgray 20 w Fx(that)f(contains)g(an)g(associati)n(v)o(e)f(array)h(of)p 0 0 1 TeXcolorrgb 2758 4870 a SDict begin H.S end 2758 4870 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 3026 4813 a SDict begin H.R end 3026 4813 a 3026 4869 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 3026 4869 a 0 TeXcolorgray 21 w Fx(objects.)k(It)515 4969 y(implements)19 b(methods)g(for)h(reading)e(and)i(writing)g (columns)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 141 146 TeXDict begin 141 145 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.141) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.40)81 b(CC\002ts::T)-8 b(able)20 b(Class)h(Refer)o(ence)1407 b(141)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.40.2) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.40.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.S end 515 726 a 0 TeXcolorgray 0 TeXcolorgray 515 726 a SDict begin H.R end 515 726 a 515 726 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a37f73f59845f49a01fbd587ce1bd06f3) cvn H.B /DEST pdfmark end 515 726 a 0 TeXcolorgray 515 763 a SDict begin H.S end 515 763 a 515 763 a SDict begin 12 H.A end 515 763 a 515 763 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.2.1) cvn H.B /DEST pdfmark end 515 763 a 0.25 TeXcolorgray 147 x Fo(24.40.2.1)75 b(CC\002ts::T)-5 b(ab)o(le::T)g(ab)o(le)25 b(\()38 b(FITSBase)20 b Fp(\003)e Fk(p,)39 b Fo(HduT)l(ype)22 b Fk(xtype)q(,)39 b Fo(const)20 b(String)g(&)f Fk(hduName)q(,)845 1010 y Fo(int)i Fk(r)o(o)o(ws,)40 b Fo(const)21 b(std::vector)p Fu(<)g Fo(String)g Fu(>)e Fo(&)h Fk(columnName)q(,)43 b Fo(const)21 b(std::vector)p Fu(<)845 1109 y Fo(String)h Fu(>)f Fo(&)g Fk(columnFmt,)47 b Fo(const)23 b(std::vector)p Fu(<)g Fo(String)f Fu(>)e Fo(&)i Fk(columnUnit)i(=)845 1209 y Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))p Fk(,)30 b Fo(int)17 b Fk(ver)o(sion)h(=)f Fr(1)34 b Fo(\))71 b Fr([protected])p 0 TeXcolorgray 515 1393 a Fx(Constructor)19 b(to)h(be)g(used)g(for)f(creating)h(ne)n(w)g(HDUs.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1603 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1546 a SDict begin H.S end 515 1546 a 515 1546 a SDict begin 12 H.A end 515 1546 a 515 1546 a SDict begin [ /View [/XYZ H.V] /Dest (table.87) cvn H.B /DEST pdfmark end 515 1546 a 0.5 TeXcolorgray 515 1649 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1649 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1749 4 100 v 0 TeXcolorgray 935 1719 a Ft(p)p 0.5 TeXcolorgray 1005 1749 V 0 TeXcolorgray 60 w Fx(The)p 0 0 1 TeXcolorrgb 1187 1720 a SDict begin H.S end 1187 1720 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 1357 1662 a SDict begin H.R end 1357 1662 a 1357 1719 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 1357 1719 a 0 TeXcolorgray 21 w Fx(\002le)h(in)f(which)g(to)g(place)g (the)h(ne)n(w)p 0 0 1 TeXcolorrgb 2375 1720 a SDict begin H.S end 2375 1720 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2554 1665 a SDict begin H.R end 2554 1665 a 2554 1719 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2554 1719 a 0 TeXcolorgray 0.5 TeXcolorgray 3400 1749 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1752 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1752 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1951 4 200 v 0 TeXcolorgray 801 1822 a Ft(xtype)p 0.5 TeXcolorgray 1005 1951 V 0 TeXcolorgray 60 w Fx(An)c(HduT)-7 b(ype)15 b(enumerator)g(de\002ned)h(in)p 0 0 1 TeXcolorrgb 2220 1823 a SDict begin H.S end 2220 1823 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts.h)p 0 0 1 TeXcolorrgb 2495 1765 a SDict begin H.R end 2495 1765 a 2495 1822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (CCfits_8h_source) cvn H.B /ANN pdfmark end 2495 1822 a 0 TeXcolorgray 17 w Fx(for)h(type)f(of)h(table)g (\(AsciiTbl)1037 1921 y(or)j(BinaryTbl\))p 0.5 TeXcolorgray 3400 1951 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1954 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1954 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2054 4 100 v 0 TeXcolorgray 658 2024 a Ft(hduName)p 0.5 TeXcolorgray 1005 2054 V 0 TeXcolorgray 59 w Fx(The)g(name)f(of)h(this)p 0 0 1 TeXcolorrgb 1618 2025 a SDict begin H.S end 1618 2025 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 1798 1970 a SDict begin H.R end 1798 1970 a 1798 2024 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 1798 2024 a 0 TeXcolorgray 21 w Fx(e)o(xtension)p 0.5 TeXcolorgray 3400 2054 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2057 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2057 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2257 4 200 v 0 TeXcolorgray 819 2127 a Ft(r)l(ows)p 0.5 TeXcolorgray 1005 2257 V 0 TeXcolorgray 61 w Fx(The)k(number)e(of)i(ro)n(ws)g(in)h (the)f(ne)n(w)p 0 0 1 TeXcolorrgb 2124 2128 a SDict begin H.S end 2124 2128 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2304 2073 a SDict begin H.R end 2304 2073 a 2304 2127 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2304 2127 a 0 TeXcolorgray 25 w Fx(\(the)g(v)n(alue)g(of)g(the)g(NAXIS2)g(k)o(e)o(y-)1037 2227 y(w)o(ord\).)p 0.5 TeXcolorgray 3400 2257 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2260 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2260 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2459 4 200 v 0 TeXcolorgray 704 2330 a Ft(column-)783 2429 y(Name)p 0.5 TeXcolorgray 1005 2459 V 0 TeXcolorgray 1037 2330 a Fx(a)c(v)o(ector)f(of)h(names)g (for)g(the)g(columns.)p 0.5 TeXcolorgray 3400 2459 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2463 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2463 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2562 4 100 v 0 TeXcolorgray 598 2532 a Ft(columnFmt)p 0.5 TeXcolorgray 1005 2562 V 0 TeXcolorgray 59 w Fx(the)g(format)f (strings)h(for)g(the)g(columns)p 0.5 TeXcolorgray 3400 2562 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2565 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2565 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2665 4 100 v 0 TeXcolorgray 584 2635 a Ft(columnUnit)p 0.5 TeXcolorgray 1005 2665 V 0 TeXcolorgray 59 w Fx(the)g(units)g(for)g(the)g(columns.)p 0.5 TeXcolorgray 3400 2665 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2668 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2668 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2768 4 100 v 0 TeXcolorgray 733 2738 a Ft(ver)o(sion)p 0.5 TeXcolorgray 1005 2768 V 0 TeXcolorgray 60 w Fx(a)g(v)o(ersion)f(number)p 0.5 TeXcolorgray 3400 2768 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2771 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2771 V 0 TeXcolorgray 0 TeXcolorgray 515 3001 a SDict begin H.S end 515 3001 a 0 TeXcolorgray 0 TeXcolorgray 515 3001 a SDict begin H.R end 515 3001 a 515 3001 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_af79b97361d3f64e7b6fa48296a971818) cvn H.B /DEST pdfmark end 515 3001 a 0 TeXcolorgray 515 3039 a SDict begin H.S end 515 3039 a 515 3039 a SDict begin 12 H.A end 515 3039 a 515 3039 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.2.2) cvn H.B /DEST pdfmark end 515 3039 a 0.25 TeXcolorgray 146 x Fo(24.40.2.2)75 b(CC\002ts::T)-5 b(ab)o(le::T)g(ab)o(le)28 b(\()43 b(FITSBase)23 b Fp(\003)e Fk(p,)46 b Fo(HduT)l(ype)24 b Fk(xtype)q(,)46 b Fo(int)23 b Fk(n)o(umber)45 b Fo(\))845 3285 y Fr([protected])p 0 TeXcolorgray 0 0 1 TeXcolorrgb 515 3470 a SDict begin H.S end 515 3470 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 697 3413 a SDict begin H.R end 697 3413 a 697 3469 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 697 3469 a 0 TeXcolorgray 21 w Fx(constructor)18 b(for)i(getting)f(T)-7 b(ables)21 b(by)e(number)-5 b(.)515 3616 y(Necessary)25 b(since)g(EXTNAME)g(is)h(a)g(reserv)o(ed)e(not)h (required)e(k)o(e)o(yw)o(ord,)i(and)f(users)i(may)f(thus)515 3716 y(read)p 0 0 1 TeXcolorrgb 681 3717 a SDict begin H.S end 681 3717 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 852 3660 a SDict begin H.R end 852 3660 a 852 3716 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 852 3716 a 0 TeXcolorgray 24 w Fx(\002les)f(without)e(an)h(e)o(xtension)e(name.)33 b(Since)23 b(an)p 0 0 1 TeXcolorrgb 2302 3717 a SDict begin H.S end 2302 3717 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 2482 3662 a SDict begin H.R end 2482 3662 a 2482 3716 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 2482 3716 a 0 TeXcolorgray 24 w Fx(is)h(completely)d(speci\002ed)i(by)515 3815 y(e)o(xtension)18 b(number)m(,)g(this)j(is)g(part)f(of)g(the)g(public)f(interf)o(ace.)515 3955 y SDict begin H.S end 515 3955 a 515 3955 a SDict begin 12 H.A end 515 3955 a 515 3955 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.40.3) cvn H.B /DEST pdfmark end 515 3955 a 0.25 TeXcolorgray 129 x Fo(24.40.3)75 b(Member)18 b(Function)i(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4287 a SDict begin H.S end 515 4287 a 0 TeXcolorgray 0 TeXcolorgray 515 4287 a SDict begin H.R end 515 4287 a 515 4287 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_ae578460dd522485e48ccd8f4536e5531) cvn H.B /DEST pdfmark end 515 4287 a 0 TeXcolorgray 515 4324 a SDict begin H.S end 515 4324 a 515 4324 a SDict begin 12 H.A end 515 4324 a 515 4324 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.1) cvn H.B /DEST pdfmark end 515 4324 a 0.25 TeXcolorgray 147 x Fo(24.40.3.1)75 b Fy(Column)18 b Fo(&)g(CC\002ts::T)-5 b(ab)o(le::column)25 b(\()36 b(const)19 b(String)g(&)f Fk(colName)q(,)38 b Fo(bool)19 b Fk(caseSensitive)g(=)845 4571 y Fr(true)33 b Fo(\))18 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 4755 a Fx(return)19 b(a)h(reference)f(to)h(a)p 0 0 1 TeXcolorrgb 1264 4756 a SDict begin H.S end 1264 4756 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1446 4698 a SDict begin H.R end 1446 4698 a 1446 4755 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1446 4755 a 0 TeXcolorgray 21 w Fx(column)19 b(speci\002ed)h(by)f(name.)515 4902 y(If)25 b(the)g Ft(caseSensitive)f Fx(parameter)g(is)i(set)g(to)f(f)o(alse,)i(the)e(search)g(will)h(be)f (case-insensiti)n(v)o(e.)39 b(The)515 5001 y(o)o(v)o(erridden)16 b(base)k(class)h(implementation)p 0 0 1 TeXcolorrgb 1784 5002 a SDict begin H.S end 1784 5002 a 0 0 1 TeXcolorrgb -1 x Fx(ExtHDU::column)p 0 0 1 TeXcolorrgb 2374 4945 a SDict begin H.R end 2374 4945 a 2374 5001 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) cvn H.B /ANN pdfmark end 2374 5001 a 0 TeXcolorgray 20 w Fx(thro)n(ws)f(an)g(e)o(xception,)d (which)j(is)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 142 147 TeXDict begin 142 146 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.142) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.40)81 b(CC\002ts::T)-8 b(able)20 b(Class)h(Refer)o(ence)1407 b(142)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(thus)20 b(the)g(action)g(to)g(be)g(tak)o (en)g(if)g(self)h(is)g(an)f(image)g(e)o(xtension)p 0 TeXcolorgray 0.25 TeXcolorgray 506 734 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 692 a SDict begin H.S end 515 692 a 515 692 a SDict begin 12 H.A end 515 692 a 515 692 a SDict begin [ /View [/XYZ H.V] /Dest (table.88) cvn H.B /DEST pdfmark end 515 692 a 0.5 TeXcolorgray 515 795 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 795 V 0 TeXcolorgray 0.5 TeXcolorgray 515 894 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 894 774 100 v 0 TeXcolorgray 558 864 a Ft(Wr)l(ongExtensionT)-6 b(ype)p 0.5 TeXcolorgray 1291 894 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 894 2263 100 v 0 TeXcolorgray 57 w Fx(see)21 b(abo)o(v)o(e)p 0.5 TeXcolorgray 3557 894 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 898 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 898 V 0 TeXcolorgray 515 1127 a(Reimplemented)d(from)p 0 0 1 TeXcolorrgb 1243 1128 a SDict begin H.S end 1243 1128 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 1071 a SDict begin H.R end 1797 1071 a 1797 1127 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a9d3f8b23a32aa7303b0824fa6cb2f21b) cvn H.B /ANN pdfmark end 1797 1127 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1274 a SDict begin H.S end 515 1274 a 0 TeXcolorgray 0 TeXcolorgray 515 1274 a SDict begin H.R end 515 1274 a 515 1274 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a67eb478179846fc940e202476b4c08a3) cvn H.B /DEST pdfmark end 515 1274 a 0 TeXcolorgray 515 1312 a SDict begin H.S end 515 1312 a 515 1312 a SDict begin 12 H.A end 515 1312 a 515 1312 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.2) cvn H.B /DEST pdfmark end 515 1312 a 0.25 TeXcolorgray 147 x Fo(24.40.3.2)75 b Fy(Column)17 b Fo(&)g(CC\002ts::T)-5 b(ab)o(le::column)24 b(\()34 b(int)18 b Fk(colInde)o(x)36 b Fo(\))17 b(const)72 b Fr([virtual])p 0 TeXcolorgray 515 1643 a Fx(return)19 b(a)h(reference)f(to)h(the)g(column)f(identi\002ed)h(by)f(colInde)o(x) 515 1790 y(Thro)n(ws)p 0 0 1 TeXcolorrgb 793 1791 a SDict begin H.S end 793 1791 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchColumn)p 0 0 1 TeXcolorrgb 1328 1733 a SDict begin H.R end 1328 1733 a 1328 1790 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn) cvn H.B /ANN pdfmark end 1328 1790 a 0 TeXcolorgray 27 w Fx(if)26 b(the)h(inde)o(x)d(is)k(out)d(of)h (range)f(-inde)o(x)g(must)h(satisfy)h(\(1)f Fu(<)p Fx(=)g(inde)o(x)515 1889 y Fu(<)p Fx(=)p 0 0 1 TeXcolorrgb 647 1904 a SDict begin H.S end 647 1904 a 0 0 1 TeXcolorrgb -15 x Fx(numCols\(\))p 0 0 1 TeXcolorrgb 1002 1833 a SDict begin H.R end 1002 1833 a 1002 1889 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_a7a10118f8f79786fa1c8813e2e838076) cvn H.B /ANN pdfmark end 1002 1889 a 0 TeXcolorgray 21 w Fx(\).)515 2036 y(N.B.)c(the)h(column)e (number)f(is)j(assigned)f(as)h(1-based,)f(as)h(in)f(FORTRAN)h(rather)f (than)g(0-based)515 2136 y(as)f(in)f(C.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2330 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2287 a SDict begin H.S end 515 2287 a 515 2287 a SDict begin 12 H.A end 515 2287 a 515 2287 a SDict begin [ /View [/XYZ H.V] /Dest (table.89) cvn H.B /DEST pdfmark end 515 2287 a 0.5 TeXcolorgray 515 2390 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2390 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2590 4 200 v 0 TeXcolorgray 1 TeXcolorgray 518 2590 774 200 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 547 2561 a SDict begin H.S end 547 2561 a 0 0 1 TeXcolorrgb -1 x Ft(T)-8 b(able::NoSuc)o(hColumn)p 0 0 1 TeXcolorrgb 1303 2503 a SDict begin H.R end 1303 2503 a 1303 2560 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn) cvn H.B /ANN pdfmark end 1303 2560 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 2590 4 200 v 0 TeXcolorgray 1 TeXcolorgray 1294 2590 2263 200 v 0 TeXcolorgray 1323 2460 a Fx(passes)20 b(colInde)o(x)d(to)j(the) f(diagnostic)f(message)i(printed)e(when)g(the)i(e)o(xcep-)1323 2560 y(tion)g(is)h(thro)n(wn)p 0.5 TeXcolorgray 3557 2590 4 200 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2593 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2593 V 0 TeXcolorgray 515 2823 a(Reimplemented)d(from)p 0 0 1 TeXcolorrgb 1243 2824 a SDict begin H.S end 1243 2824 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 2766 a SDict begin H.R end 1797 2766 a 1797 2823 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a06d5f1ebd32e0228790c8b4e4b57e2e4) cvn H.B /ANN pdfmark end 1797 2823 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 2970 a SDict begin H.S end 515 2970 a 0 TeXcolorgray 0 TeXcolorgray 515 2970 a SDict begin H.R end 515 2970 a 515 2970 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a573b295bfdd242a99d97d0d3a1dd4982) cvn H.B /DEST pdfmark end 515 2970 a 0 TeXcolorgray 515 3007 a SDict begin H.S end 515 3007 a 515 3007 a SDict begin 12 H.A end 515 3007 a 515 3007 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.3) cvn H.B /DEST pdfmark end 515 3007 a 0.25 TeXcolorgray 147 x Fo(24.40.3.3)75 b(const)21 b(std::map)p Fu(<)h Fo(string,)g Fy(Column)e Fp(\003)f Fu(>)h Fo(&)g(CC\002ts::T)-5 b(ab)o(le::column)26 b(\()80 b(\))20 b(const)845 3253 y Fr([inline,)48 b(virtual])p 0 TeXcolorgray 515 3438 a Fx(return)19 b(a)h(reference)f(to)h(the)g (array)g(containing)e(the)i(columns.)515 3585 y(This)e(public)e(v)o (ersion)h(might)g(be)h(used)f(to)h(query)e(the)i(size)g(of)g(the)f (column)g(container)f(in)i(a)g(routine)515 3684 y(that)i(manipulates)f (column)g(table)h(data.)515 3831 y(Reimplemented)e(from)p 0 0 1 TeXcolorrgb 1243 3832 a SDict begin H.S end 1243 3832 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 3775 a SDict begin H.R end 1797 3775 a 1797 3831 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_ab121d5ab64abcc0a5df4ca7955bec2e9) cvn H.B /ANN pdfmark end 1797 3831 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 3978 a SDict begin H.S end 515 3978 a 0 TeXcolorgray 0 TeXcolorgray 515 3978 a SDict begin H.R end 515 3978 a 515 3978 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_ac41ac8e02386d095a969142b486d3890) cvn H.B /DEST pdfmark end 515 3978 a 0 TeXcolorgray 515 4015 a SDict begin H.S end 515 4015 a 515 4015 a SDict begin 12 H.A end 515 4015 a 515 4015 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.4) cvn H.B /DEST pdfmark end 515 4015 a 0.25 TeXcolorgray 147 x Fo(24.40.3.4)75 b(std::map)p Fu(<)21 b Fo(string,)g Fy(Column)e Fp(\003)g Fu(>)f Fo(&)h(CC\002ts::T)-5 b(ab)o(le::column)26 b(\()76 b(\))c Fr([inline,)845 4262 y(virtual])p 0 TeXcolorgray 515 4446 a Fx(return)19 b(a)h(reference)f(to)h(the)g(array)g (containing)e(the)i(columns.)515 4593 y(T)-7 b(o)20 b(be)g(used)g(in)g (the)h(implementation)d(of)i(subclasses.)p 0 TeXcolorgray 2125 4593 a SDict begin H.S end 2125 4593 a 0 TeXcolorgray 0 TeXcolorgray 2125 4593 a SDict begin H.R end 2125 4593 a 2125 4593 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a19bde9d4a37a2ee07016ef627e5fecde) cvn H.B /DEST pdfmark end 2125 4593 a 0 TeXcolorgray 515 4648 a SDict begin H.S end 515 4648 a 515 4648 a SDict begin 12 H.A end 515 4648 a 515 4648 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.5) cvn H.B /DEST pdfmark end 515 4648 a 0.25 TeXcolorgray 129 x Fo(24.40.3.5)75 b(v)n(oid)18 b(CC\002ts::T)-5 b(ab)o(le::deleteCo)q(lum)q(n)23 b(\()34 b(const)19 b(String)f(&)f Fk(columnName)37 b Fo(\))71 b Fr([virtual])p 0 TeXcolorgray 515 4961 a Fx(delete)20 b(a)g(column)f(in)i(a)p 0 0 1 TeXcolorrgb 1204 4962 a SDict begin H.S end 1204 4962 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1387 4905 a SDict begin H.R end 1387 4905 a 1387 4961 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1387 4961 a 0 TeXcolorgray 20 w Fx(e)o(xtension)19 b(by)h(name.)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 143 148 TeXDict begin 143 147 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.143) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.40)81 b(CC\002ts::T)-8 b(able)20 b(Class)h(Refer)o(ence)1407 b(143)p 515 236 2865 4 v 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 494 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 436 a SDict begin H.S end 515 436 a 515 436 a SDict begin 12 H.A end 515 436 a 515 436 a SDict begin [ /View [/XYZ H.V] /Dest (table.90) cvn H.B /DEST pdfmark end 515 436 a 0.5 TeXcolorgray 515 539 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 539 V 0 TeXcolorgray 0.5 TeXcolorgray 515 738 4 200 v 0 TeXcolorgray 704 609 a Ft(column-)783 708 y(Name)p 0.5 TeXcolorgray 1005 738 V 0 TeXcolorgray 1037 609 a Fx(The)20 b(name)f(of)h(the)g(column)f(to)i(be)f(deleted.)p 0.5 TeXcolorgray 3400 738 V 0 TeXcolorgray 0.5 TeXcolorgray 515 742 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 742 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 1018 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 975 a SDict begin H.S end 515 975 a 515 975 a SDict begin 12 H.A end 515 975 a 515 975 a SDict begin [ /View [/XYZ H.V] /Dest (table.91) cvn H.B /DEST pdfmark end 515 975 a 0.5 TeXcolorgray 515 1078 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1078 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1178 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 1178 774 100 v 0 TeXcolorgray 558 1148 a Ft(Wr)l(ongExtensionT)-6 b(ype)p 0.5 TeXcolorgray 1291 1178 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 1178 2263 100 v 0 TeXcolorgray 57 w Fx(if)21 b(e)o(xtension)e(is)i (an)f(image.)p 0.5 TeXcolorgray 3557 1178 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1181 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1181 V 0 TeXcolorgray 515 1411 a(Reimplemented)e(from) p 0 0 1 TeXcolorrgb 1243 1412 a SDict begin H.S end 1243 1412 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 1355 a SDict begin H.R end 1797 1355 a 1797 1411 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_aaee3fda1eb075ef4ee7a9178114bd00d) cvn H.B /ANN pdfmark end 1797 1411 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1558 a SDict begin H.S end 515 1558 a 0 TeXcolorgray 0 TeXcolorgray 515 1558 a SDict begin H.R end 515 1558 a 515 1558 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_aa89bbe572a86b8bc4ca4249ba0b21dbb) cvn H.B /DEST pdfmark end 515 1558 a 0 TeXcolorgray 515 1595 a SDict begin H.S end 515 1595 a 515 1595 a SDict begin 12 H.A end 515 1595 a 515 1595 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.6) cvn H.B /DEST pdfmark end 515 1595 a 0.25 TeXcolorgray 147 x Fo(24.40.3.6)75 b(v)n(oid)18 b(CC\002ts::T)-5 b(ab)o(le::deleteRows)23 b(\()34 b(long)18 b Fk(\002r)o(st,)35 b Fo(long)18 b Fk(n)o(umber)h(=)e Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 1926 a Fx(delete)20 b(a)g(range)g(of)f(ro)n(ws)h(in)h(a)f(table.)515 2073 y(In)g(both)g(this)g(and)g(the)h(o)o(v)o(erloaded)c(v)o(ersion)i (which)h(allo)n(ws)h(a)g(selection)f(of)g(ro)n(ws)h(to)f(be)g(deleted,) 515 2173 y(the)k(c\002tsio)g(library)f(is)i(called)f(\002rst)h(to)f (perform)e(the)i(operation)e(on)i(the)g(disk)g(\002le,)h(and)f(then)g (the)p 0 0 1 TeXcolorrgb 515 2274 a SDict begin H.S end 515 2274 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 685 2216 a SDict begin H.R end 685 2216 a 685 2273 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 685 2273 a 0 TeXcolorgray 21 w Fx(object)c(is)h(updated.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2483 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2425 a SDict begin H.S end 515 2425 a 515 2425 a SDict begin 12 H.A end 515 2425 a 515 2425 a SDict begin [ /View [/XYZ H.V] /Dest (table.92) cvn H.B /DEST pdfmark end 515 2425 a 0.5 TeXcolorgray 515 2528 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2528 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2628 4 100 v 0 TeXcolorgray 848 2598 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 2628 V 0 TeXcolorgray 61 w Fx(the)f(start)h(ro)n (w)f(of)f(the)i(range)p 0.5 TeXcolorgray 3400 2628 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2631 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2631 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2731 4 100 v 0 TeXcolorgray 723 2701 a Ft(number)p 0.5 TeXcolorgray 1005 2731 V 0 TeXcolorgray 59 w Fx(the)f(number)e(of)i (ro)n(ws)g(to)h(delete;)f(def)o(aults)g(to)g(1.)p 0.5 TeXcolorgray 3400 2731 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2734 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2734 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 3010 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2968 a SDict begin H.S end 515 2968 a 515 2968 a SDict begin 12 H.A end 515 2968 a 515 2968 a SDict begin [ /View [/XYZ H.V] /Dest (table.93) cvn H.B /DEST pdfmark end 515 2968 a 0.5 TeXcolorgray 515 3071 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3071 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3170 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 3170 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 952 3142 a SDict begin H.S end 952 3142 a 0 0 1 TeXcolorrgb -1 x Ft(F)l(itsErr)l(or)p 0 0 1 TeXcolorrgb 1263 3087 a SDict begin H.R end 1263 3087 a 1263 3141 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1263 3141 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 3170 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 3170 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)f(if)i(the)f (c\002tsio)h(call)f(f)o(ails)h(to)f(return)g(without)f(error)-5 b(.)p 0.5 TeXcolorgray 3557 3170 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3174 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3174 V 0 TeXcolorgray 0 TeXcolorgray 515 3404 a SDict begin H.S end 515 3404 a 0 TeXcolorgray 0 TeXcolorgray 515 3404 a SDict begin H.R end 515 3404 a 515 3404 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a7dc1b5bfcfde698946777e045b532ba2) cvn H.B /DEST pdfmark end 515 3404 a 0 TeXcolorgray 515 3441 a SDict begin H.S end 515 3441 a 515 3441 a SDict begin 12 H.A end 515 3441 a 515 3441 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.7) cvn H.B /DEST pdfmark end 515 3441 a 0.25 TeXcolorgray 147 x Fo(24.40.3.7)75 b(v)n(oid)18 b(CC\002ts::T)-5 b(ab)o(le::deleteRows)23 b(\()34 b(const)18 b(std::vector)p Fu(<)i Fo(long)e Fu(>)e Fo(&)i Fk(r)o(o)o(wlist)34 b Fo(\))p 0 TeXcolorgray 515 3772 a Fx(delete)20 b(a)g(set)h(of)f(ro)n(ws)g(in)h(the)f(table)g (speci\002ed)g(by)g(an)g(input)f(array)-5 b(.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 3982 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3925 a SDict begin H.S end 515 3925 a 515 3925 a SDict begin 12 H.A end 515 3925 a 515 3925 a SDict begin [ /View [/XYZ H.V] /Dest (table.94) cvn H.B /DEST pdfmark end 515 3925 a 0.5 TeXcolorgray 515 4028 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4028 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4127 4 100 v 0 TeXcolorgray 749 4097 a Ft(r)l(owlist)p 0.5 TeXcolorgray 1005 4127 V 0 TeXcolorgray 62 w Fx(The)20 b(v)o(ector)f(of)h(ro)n(w)f (numbers)g(to)h(be)h(deleted.)p 0.5 TeXcolorgray 3400 4127 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4131 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4131 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 4407 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 4364 a SDict begin H.S end 515 4364 a 515 4364 a SDict begin 12 H.A end 515 4364 a 515 4364 a SDict begin [ /View [/XYZ H.V] /Dest (table.95) cvn H.B /DEST pdfmark end 515 4364 a 0.5 TeXcolorgray 515 4467 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4467 V 0 TeXcolorgray 0.5 TeXcolorgray 515 4567 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 4567 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 952 4538 a SDict begin H.S end 952 4538 a 0 0 1 TeXcolorrgb -1 x Ft(F)l(itsErr)l(or)p 0 0 1 TeXcolorrgb 1263 4484 a SDict begin H.R end 1263 4484 a 1263 4537 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1263 4537 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 4567 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 4567 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)e(if)i(the)f(underlying)d (c\002tsio)k(call)g(f)o(ails)g(to)f(return)f(without)g(error)-5 b(.)p 0.5 TeXcolorgray 3557 4567 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4570 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 4570 V 0 TeXcolorgray 0 TeXcolorgray 515 4800 a SDict begin H.S end 515 4800 a 0 TeXcolorgray 0 TeXcolorgray 515 4800 a SDict begin H.R end 515 4800 a 515 4800 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a54e2948a7603a058c6a3cd99f0806ac9) cvn H.B /DEST pdfmark end 515 4800 a 0 TeXcolorgray 515 4838 a SDict begin H.S end 515 4838 a 515 4838 a SDict begin 12 H.A end 515 4838 a 515 4838 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.8) cvn H.B /DEST pdfmark end 515 4838 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 417 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 144 149 TeXDict begin 144 148 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.144) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.40)81 b(CC\002ts::T)-8 b(able)20 b(Class)h(Refer)o(ence)1407 b(144)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fo(24.40.3.8)75 b(long)18 b(CC\002ts::T)-5 b(ab)o(le::g)q(etRo)o(wsiz)q(e)22 b(\()69 b(\))17 b(const)73 b Fr([virtual])p 0 TeXcolorgray 515 707 a Fx(return)19 b(the)h(optimal)f(number)g(of)h(ro)n(ws)g(to)g (read)g(or)g(write)g(at)h(a)f(time)515 854 y(A)j(wrapper)e(for)h(the)g (CFITSIO)h(function)d(\002ts_get_ro)n(wsize,)i(useful)g(for)g (obtaining)e(maximum)515 954 y(I/O)g(ef)n(\002cienc)o(y)-5 b(.)23 b(This)e(will)g(thro)n(w)e(if)h(it)h(is)g(not)f(called)g(for)g (a)p 0 0 1 TeXcolorrgb 2278 955 a SDict begin H.S end 2278 955 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 2460 897 a SDict begin H.R end 2460 897 a 2460 954 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 2460 954 a 0 TeXcolorgray 21 w Fx(e)o(xtension.)515 1101 y(Reimplemented)18 b(from)p 0 0 1 TeXcolorrgb 1243 1102 a SDict begin H.S end 1243 1102 a 0 0 1 TeXcolorrgb -1 x Fx(CC\002ts::ExtHDU)p 0 0 1 TeXcolorrgb 1797 1044 a SDict begin H.R end 1797 1044 a 1797 1101 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1ExtHDU_a5a480387701525f75ea450dac7510f23) cvn H.B /ANN pdfmark end 1797 1101 a 0 TeXcolorgray Fx(.)p 0 TeXcolorgray 515 1248 a SDict begin H.S end 515 1248 a 0 TeXcolorgray 0 TeXcolorgray 515 1248 a SDict begin H.R end 515 1248 a 515 1248 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_ab5ade7dd546fe55f2c0e1f5ff7e0eddf) cvn H.B /DEST pdfmark end 515 1248 a 0 TeXcolorgray 515 1285 a SDict begin H.S end 515 1285 a 515 1285 a SDict begin 12 H.A end 515 1285 a 515 1285 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.9) cvn H.B /DEST pdfmark end 515 1285 a 0.25 TeXcolorgray 147 x Fo(24.40.3.9)75 b(v)n(oid)18 b(CC\002ts::T)-5 b(ab)o(le::init)21 b(\()34 b(bool)17 b Fk(readFla)o(g)h(=)f Fr(false)p Fk(,)32 b Fo(const)17 b(std::vector)p Fu(<)i Fo(String)e Fu(>)f Fo(&)h Fk(ke)o(ys)845 1531 y(=)g Fr(std::vector)p Fu(<)p Fr(String)p Fu(>)p Fr(\(\))29 b Fo(\))72 b Fr([)o(protected])p 0 TeXcolorgray 515 1716 a Fx("Late)24 b(Constructor)-5 b(.")22 b(wrap-up)h(of)h(calls) g(needed)f(to)h(construct)f(a)i(table.)36 b(Reads)25 b(header)e(infor)n(-)515 1815 y(mation)c(and)h(sets)h(up)f(the)g(array) f(of)h(column)f(objects)h(in)g(the)h(table.)515 1962 y(Protected)d(function,)g(pro)o(vided)e(to)k(allo)n(w)f(the)g (implementation)f(of)h(e)o(xtensions)f(of)h(the)g(library)-5 b(.)p 0 TeXcolorgray 3359 1962 a SDict begin H.S end 3359 1962 a 0 TeXcolorgray 0 TeXcolorgray 3359 1962 a SDict begin H.R end 3359 1962 a 3359 1962 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_a470beae464348ac917729b0d1d693ba0) cvn H.B /DEST pdfmark end 3359 1962 a 0 TeXcolorgray 515 2017 a SDict begin H.S end 515 2017 a 515 2017 a SDict begin 12 H.A end 515 2017 a 515 2017 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.10) cvn H.B /DEST pdfmark end 515 2017 a 0.25 TeXcolorgray 129 x Fo(24.40.3.10)75 b(v)n(oid)18 b(CC\002ts::T)-5 b(ab)o(le::inser)q(tRows)23 b(\()34 b(long)18 b Fk(\002r)o(st,)35 b Fo(long)19 b Fk(n)o(umber)f(=)f Fr(1)34 b Fo(\))p 0 TeXcolorgray 515 2331 a Fx(insert)20 b(empty)f(ro)n(ws)h(into)g(the)g (table)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2541 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2483 a SDict begin H.S end 515 2483 a 515 2483 a SDict begin 12 H.A end 515 2483 a 515 2483 a SDict begin [ /View [/XYZ H.V] /Dest (table.96) cvn H.B /DEST pdfmark end 515 2483 a 0.5 TeXcolorgray 515 2586 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2586 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2686 4 100 v 0 TeXcolorgray 848 2656 a Ft(\002r)o(st)p 0.5 TeXcolorgray 1005 2686 V 0 TeXcolorgray 61 w Fx(the)g(start)h(ro)n (w)f(of)f(the)i(range)p 0.5 TeXcolorgray 3400 2686 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2689 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2689 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2789 4 100 v 0 TeXcolorgray 723 2759 a Ft(number)p 0.5 TeXcolorgray 1005 2789 V 0 TeXcolorgray 59 w Fx(the)f(number)e(of)i (ro)n(ws)g(to)h(insert.)p 0.5 TeXcolorgray 3400 2789 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2792 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2792 V 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 506 3068 a Fo(Exceptions)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 3026 a SDict begin H.S end 515 3026 a 515 3026 a SDict begin 12 H.A end 515 3026 a 515 3026 a SDict begin [ /View [/XYZ H.V] /Dest (table.97) cvn H.B /DEST pdfmark end 515 3026 a 0.5 TeXcolorgray 515 3129 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3129 V 0 TeXcolorgray 0.5 TeXcolorgray 515 3228 4 100 v 0 TeXcolorgray 1 TeXcolorgray 518 3228 774 100 v 0 TeXcolorgray 0 0 1 TeXcolorrgb 952 3199 a SDict begin H.S end 952 3199 a 0 0 1 TeXcolorrgb -1 x Ft(F)l(itsErr)l(or)p 0 0 1 TeXcolorrgb 1263 3145 a SDict begin H.R end 1263 3145 a 1263 3198 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FitsError) cvn H.B /ANN pdfmark end 1263 3198 a 0 TeXcolorgray 0.5 TeXcolorgray 1291 3228 4 100 v 0 TeXcolorgray 1 TeXcolorgray 1294 3228 2263 100 v 0 TeXcolorgray 60 w Fx(thro)n(wn)e(if)i(the)f(underlying)d (c\002tsio)k(call)g(f)o(ails)g(to)f(return)f(without)g(error)-5 b(.)p 0.5 TeXcolorgray 3557 3228 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3232 3047 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 3232 V 0 TeXcolorgray 0 TeXcolorgray 515 3462 a SDict begin H.S end 515 3462 a 0 TeXcolorgray 0 TeXcolorgray 515 3462 a SDict begin H.R end 515 3462 a 515 3462 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_aa610c082528ac5ed89b715e3f3b2e4e6) cvn H.B /DEST pdfmark end 515 3462 a 0 TeXcolorgray 515 3499 a SDict begin H.S end 515 3499 a 515 3499 a SDict begin 12 H.A end 515 3499 a 515 3499 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.40.3.11) cvn H.B /DEST pdfmark end 515 3499 a 0.25 TeXcolorgray 147 x Fo(24.40.3.11)75 b(v)n(oid)18 b(CC\002ts::T)-5 b(ab)o(le::updat)q(eRows)22 b(\()69 b(\))p 0 TeXcolorgray 515 3830 a Fx(update)19 b(the)h(number)e(of)i(ro)n(ws)g(in)h(the)f(table)515 3977 y(Called)e(to)g(force)f(the)p 0 0 1 TeXcolorrgb 1143 3978 a SDict begin H.S end 1143 3978 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 1325 3921 a SDict begin H.R end 1325 3921 a 1325 3977 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 1325 3977 a 0 TeXcolorgray 19 w Fx(to)18 b(reset)g(its)h (internal)e("ro)n(ws")h(attrib)n(ute.)24 b(public,)17 b(b)n(ut)h(is)h(called)f(when)515 4077 y(needed)h(internally)-5 b(.)515 4223 y(The)20 b(documentation)d(for)i(this)i(class)g(w)o(as)g (generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 4437 a(\225)p 0 TeXcolorgray 41 w(T)-7 b(able.h)p 0 TeXcolorgray 652 4545 a(\225)p 0 TeXcolorgray 41 w(T)g(able.cxx)p 0 TeXcolorgray 515 4758 a SDict begin H.S end 515 4758 a 0 TeXcolorgray 0 TeXcolorgray 515 4758 a SDict begin H.R end 515 4758 a 515 4758 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_1_1NoSuchColumn) cvn H.B /DEST pdfmark end 515 4758 a 0 TeXcolorgray 515 4879 a SDict begin H.S end 515 4879 a 515 4879 a SDict begin 12 H.A end 515 4879 a 515 4879 a SDict begin [ /View [/XYZ H.V] /Dest (subsection.24.41) cvn H.B /DEST pdfmark end 515 4879 a 0.25 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 376 x Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h (by)g(Doxygen)p 0.25 TeXcolorgray eop end %%Page: 145 150 TeXDict begin 145 149 bop 0.25 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.145) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.41)81 b(CC\002ts::T)-8 b(able::NoSuchColumn)19 b(Class)i(Refer)o(ence)789 b(145)p 515 236 2865 4 v 0.25 TeXcolorgray 515 523 a Fq(24.41)89 b(CC\002ts::T)-6 b(ab)o(le::NoSuc)o(hColumn)25 b(Class)20 b(Ref)o(erence)p 0 TeXcolorgray 515 726 a Fx(Exception)k(to)i(be)g (thro)n(wn)f(on)g(a)i(f)o(ailure)e(to)i(retrie)n(v)o(e)d(a)j(column)d (speci\002ed)i(either)g(by)f(name)h(or)515 826 y(inde)o(x)19 b(number)-5 b(.)515 972 y Fr(#include)48 b Fu(<)p Fr(Table.h)p Fu(>)515 1119 y Fx(Inheritance)18 b(diagram)h(for)g(CC\002ts::T)-7 b(able::NoSuchColumn:)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1404 1718 a @beginspecial 0 @llx 0 @lly 500 @urx 217.391296 @ury 566 @rhi @setspecial %%BeginDocument: classCCfits_1_1Table_1_1NoSuchColumn.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: ClassName %%Creator: Doxygen %%CreationDate: Time %%For: %Magnification: 1.00 %%Orientation: Portrait %%BoundingBox: 0 0 500 217.391304 %%Pages: 0 %%BeginSetup %%EndSetup %%EndComments % ----- variables ----- /boxwidth 0 def /boxheight 40 def /fontheight 24 def /marginwidth 10 def /distx 20 def /disty 40 def /boundaspect 2.300000 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def /yspacing 0 def /rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def % ----- procedures ----- /dotted { [1 4] 0 setdash } def /dashed { [5] 0 setdash } def /solid { [] 0 setdash } def /max % result = MAX(arg1,arg2) { /a exch def /b exch def a b gt {a} {b} ifelse } def /xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) { 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max } def /cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) { /str exch def /boxwidth boxwidth str stringwidth pop max def } def /box % draws a box with text `arg1' at grid pos (arg2,arg3) { gsave 2 setlinewidth newpath exch xspacing mul xoffset add exch yspacing mul moveto boxwidth 0 rlineto 0 boxheight rlineto boxwidth neg 0 rlineto 0 boxheight neg rlineto closepath dup stringwidth pop neg boxwidth add 2 div boxheight fontheight 2 div sub 2 div rmoveto show stroke grestore } def /mark { newpath exch xspacing mul xoffset add boxwidth add exch yspacing mul moveto 0 boxheight 4 div rlineto boxheight neg 4 div boxheight neg 4 div rlineto closepath eofill stroke } def /arrow { newpath moveto 3 -8 rlineto -6 0 rlineto 3 8 rlineto closepath eofill stroke } def /out % draws an output connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight add /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /in % draws an input connector for the block at (arg1,arg2) { newpath exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul disty 2 div sub /y exch def /x exch def x y moveto 0 disty 2 div rlineto stroke 1 eq { x y disty 2 div add arrow } if } def /hedge { exch xspacing mul xoffset add boxwidth 2 div add exch yspacing mul boxheight 2 div sub /y exch def /x exch def newpath x y moveto boxwidth 2 div distx add 0 rlineto stroke 1 eq { newpath x boxwidth 2 div distx add add y moveto -8 3 rlineto 0 -6 rlineto 8 3 rlineto closepath eofill stroke } if } def /vedge { /ye exch def /ys exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add dup ys yspacing mul boxheight 2 div sub moveto ye yspacing mul boxheight 2 div sub lineto stroke } def /conn % connections the blocks from col `arg1' to `arg2' of row `arg3' { /ys exch def /xe exch def /xs exch def newpath xs xspacing mul xoffset add boxwidth 2 div add ys yspacing mul disty 2 div sub moveto xspacing xe xs sub mul 0 rlineto stroke } def % ----- main ------ boxfont setfont 1 boundaspect scale (CCfits::Table::NoSuchColumn) cw (CCfits::FitsException) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def /scalefactor boxwidth cols mul distx cols 1 sub mul add boxheight rows mul disty rows 1 sub mul add boundaspect mul max def boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (CCfits::Table::NoSuchColumn) 0.000000 0.000000 box (CCfits::FitsException) 0.000000 1.000000 box % ----- relations ----- solid 0 0.000000 0.000000 out solid 1 0.000000 1.000000 in %%EndDocument @endspecial 0 TeXcolorgray 0.25 TeXcolorgray 515 2069 a Fo(Pub)o(lic)18 b(Member)g(Functions)p 0 TeXcolorgray 515 2126 a SDict begin H.S end 515 2126 a 515 2126 a SDict begin 12 H.A end 515 2126 a 515 2126 a SDict begin [ /View [/XYZ H.V] /Dest (section*.66) cvn H.B /DEST pdfmark end 515 2126 a 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2258 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2259 a SDict begin H.S end 722 2259 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchColumn)p 0 0 1 TeXcolorrgb 1257 2202 a SDict begin H.R end 1257 2202 a 1257 2258 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn_a5f21d893d831bb74eff8703b3c6d0b1e) cvn H.B /ANN pdfmark end 1257 2258 a 0 TeXcolorgray 21 w Fx(\(const)i(String)g(&name,)e(bool)i(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2382 a Fl(Exception)d(ctor)g(for)f(e) o(xception)h(thr)m(own)g(if)e(the)i(r)m(equested)h(column)f (\(speci\002ed)g(by)g(name\))g(is)f(not)840 2474 y(pr)m(esent.)p 0 0 1 TeXcolorrgb 0 TeXcolorgray 652 2582 a Fx(\225)p 0 0 1 TeXcolorrgb 722 2583 a SDict begin H.S end 722 2583 a 0 0 1 TeXcolorrgb -1 x Fx(NoSuchColumn)p 0 0 1 TeXcolorrgb 1257 2525 a SDict begin H.R end 1257 2525 a 1257 2582 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table_1_1NoSuchColumn_a3f2a9ac7e04e28c2c13b33934a8ba485) cvn H.B /ANN pdfmark end 1257 2582 a 0 TeXcolorgray 21 w Fx(\(int)k(inde)o(x,)f(bool)g(silent=true\))p 0 TeXcolorgray 0 TeXcolorgray 840 2706 a Fl(Exception)e(ctor)g(for)f(e)o(xception)h (thr)m(own)g(if)e(the)i(r)m(equested)h(column)f(\(speci\002ed)g(by)g (name\))g(is)f(not)840 2797 y(pr)m(esent.)515 2934 y SDict begin H.S end 515 2934 a 515 2934 a SDict begin 12 H.A end 515 2934 a 515 2934 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.41.1) cvn H.B /DEST pdfmark end 515 2934 a 0.25 TeXcolorgray 132 x Fo(24.41.1)75 b(Detailed)18 b(Description)p 0 TeXcolorgray 515 3269 a Fx(Exception)24 b(to)i(be)g(thro)n(wn)f(on)g(a)i(f)o(ailure)e(to)i(retrie)n(v)o(e)d(a)j (column)d(speci\002ed)i(either)g(by)f(name)h(or)515 3368 y(inde)o(x)19 b(number)-5 b(.)515 3515 y(When)18 b(a)p 0 0 1 TeXcolorrgb 789 3516 a SDict begin H.S end 789 3516 a 0 0 1 TeXcolorrgb -1 x Fx(T)-7 b(able)p 0 0 1 TeXcolorrgb 971 3459 a SDict begin H.R end 971 3459 a 971 3515 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Table) cvn H.B /ANN pdfmark end 971 3515 a 0 TeXcolorgray 19 w Fx(object)19 b(is)g(created,)f(the)h(header)f(is)h(read)g(and)f(a)h(column)e(object) i(created)f(for)g(each)515 3615 y(column)j(de\002ned.)30 b(Thus)22 b(id)g(this)h(e)o(xception)e(is)i(thro)n(wn)e(the)h(column)f (requested)g(does)h(not)g(e)o(xist)515 3714 y(in)j(the)p 0 0 1 TeXcolorrgb 732 3715 a SDict begin H.S end 732 3715 a 0 0 1 TeXcolorrgb -1 x Fx(HDU)p 0 0 1 TeXcolorrgb 912 3660 a SDict begin H.R end 912 3660 a 912 3714 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1HDU) cvn H.B /ANN pdfmark end 912 3714 a 0 TeXcolorgray 25 w Fx(\(note)f(that)i(the)f (column)e(can)i(easily)g(e)o(xist)g(and)g(not)f(contain)g(an)o(y)h (data)f(since)i(the)515 3814 y(user)20 b(controls)f(whether)g(the)h (column)f(will)i(be)f(read)g(when)g(the)p 0 0 1 TeXcolorrgb 2378 3815 a SDict begin H.S end 2378 3815 a 0 0 1 TeXcolorrgb -1 x Fx(FITS)p 0 0 1 TeXcolorrgb 2548 3758 a SDict begin H.R end 2548 3758 a 2548 3814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS) cvn H.B /ANN pdfmark end 2548 3814 a 0 TeXcolorgray 21 w Fx(object)g(is)h(instantiated\).)515 3961 y(It)27 b(is)g(e)o(xpected)e(that)h(the)h(inde)o(x)e(number)g (calls)i(will)g(be)g(primarily)e(internal.)43 b(The)26 b(underlying)515 4061 y(implementation)18 b(mak)o(es)i(lookup)e(by)i (name)f(more)h(ef)n(\002cient.)515 4207 y(The)k(e)o(xception)e(has)i (tw)o(o)h(v)n(ariants,)f(which)g(tak)o(e)g(either)g(an)g(inte)o(ger)f (or)h(a)h(string)f(as)h(parameter)-5 b(.)515 4307 y(These)20 b(are)g(used)g(according)e(to)i(the)g(accessor)g(that)h(thre)n(w)e (them,)h(either)g(by)g(name)f(or)h(inde)o(x.)515 4446 y SDict begin H.S end 515 4446 a 515 4446 a SDict begin 12 H.A end 515 4446 a 515 4446 a SDict begin [ /View [/XYZ H.V] /Dest (subsubsection.24.41.2) cvn H.B /DEST pdfmark end 515 4446 a 0.25 TeXcolorgray 129 x Fo(24.41.2)75 b(Constructor)19 b(&)f(Destructor)h(Documentation)p 0 TeXcolorgray 0 TeXcolorgray 515 4778 a SDict begin H.S end 515 4778 a 0 TeXcolorgray 0 TeXcolorgray 515 4778 a SDict begin H.R end 515 4778 a 515 4778 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_1_1NoSuchColumn_a5f21d893d831bb74eff8703b3c6d0b1e) cvn H.B /DEST pdfmark end 515 4778 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 477 x Fw(Generated)c(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 146 151 TeXDict begin 146 150 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.146) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(24.41)81 b(CC\002ts::T)-8 b (able::NoSuchColumn)19 b(Class)i(Refer)o(ence)789 b(146)p 515 236 2865 4 v 0 TeXcolorgray 515 440 a SDict begin H.S end 515 440 a 515 440 a SDict begin 12 H.A end 515 440 a 515 440 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.41.2.1) cvn H.B /DEST pdfmark end 515 440 a 0.25 TeXcolorgray 83 x Fo(24.41.2.1)75 b(CC\002ts::T)-5 b(ab)o(le::NoSuc)o(h)q(Colu)q(mn) q(::N)q(oSuchC)q(olum)q(n)24 b(\()36 b(const)19 b(String)g(&)e Fk(name)q(,)37 b Fo(bool)19 b Fk(silent)g(=)845 623 y Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 807 a Fx(Exception)17 b(ctor)h(for)h(e)o(xception)e(thro)n(wn)g(if)i(the)g(requested)f (column)f(\(speci\002ed)i(by)f(name\))g(is)i(not)515 907 y(present.)515 1053 y(Message:)25 b(Fits)c(Error:)j(cannot)19 b(\002nd)p 0 0 1 TeXcolorrgb 1615 1054 a SDict begin H.S end 1615 1054 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 1883 997 a SDict begin H.R end 1883 997 a 1883 1053 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 1883 1053 a 0 TeXcolorgray 21 w Fx(named:)24 b Ft(name)19 b Fx(is)j(printed.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 1263 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 1206 a SDict begin H.S end 515 1206 a 515 1206 a SDict begin 12 H.A end 515 1206 a 515 1206 a SDict begin [ /View [/XYZ H.V] /Dest (table.98) cvn H.B /DEST pdfmark end 515 1206 a 0.5 TeXcolorgray 515 1309 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1309 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1409 4 100 v 0 TeXcolorgray 796 1379 a Ft(name)p 0.5 TeXcolorgray 1005 1409 V 0 TeXcolorgray 60 w Fx(the)e(requested)f(column)g(name)p 0.5 TeXcolorgray 3400 1409 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1412 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1412 V 0 TeXcolorgray 0.5 TeXcolorgray 515 1512 4 100 v 0 TeXcolorgray 796 1482 a Ft(silent)p 0.5 TeXcolorgray 1005 1512 V 0 TeXcolorgray 61 w Fx(if)h(true,)g(print)g(message)g (whether)p 0 0 1 TeXcolorrgb 2047 1483 a SDict begin H.S end 2047 1483 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 1425 a SDict begin H.R end 2714 1425 a 2714 1482 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 1482 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 1512 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1515 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 1515 V 0 TeXcolorgray 0 TeXcolorgray 515 1745 a SDict begin H.S end 515 1745 a 0 TeXcolorgray 0 TeXcolorgray 515 1745 a SDict begin H.R end 515 1745 a 515 1745 a SDict begin [ /View [/XYZ H.V] /Dest (classCCfits_1_1Table_1_1NoSuchColumn_a3f2a9ac7e04e28c2c13b33934a8ba485) cvn H.B /DEST pdfmark end 515 1745 a 0 TeXcolorgray 515 1782 a SDict begin H.S end 515 1782 a 515 1782 a SDict begin 12 H.A end 515 1782 a 515 1782 a SDict begin [ /View [/XYZ H.V] /Dest (paragraph.24.41.2.2) cvn H.B /DEST pdfmark end 515 1782 a 0.25 TeXcolorgray 147 x Fo(24.41.2.2)75 b(CC\002ts::T)-5 b(ab)o(le::NoSuc)o (h)q(Colu)q(mn)q(::N)q(oSuchC)q(olum)q(n)23 b(\()35 b(int)18 b Fk(inde)o(x,)35 b Fo(bool)18 b Fk(silent)g(=)f Fr(true)33 b Fo(\))p 0 TeXcolorgray 515 2113 a Fx(Exception)17 b(ctor)h(for)h(e)o (xception)e(thro)n(wn)g(if)i(the)g(requested)f(column)f(\(speci\002ed)i (by)f(name\))g(is)i(not)515 2213 y(present.)515 2360 y(Message:)25 b(Fits)c(Error:)j(column)19 b(not)h(present)g(-)p 0 0 1 TeXcolorrgb 1929 2361 a SDict begin H.S end 1929 2361 a 0 0 1 TeXcolorrgb -1 x Fx(Column)p 0 0 1 TeXcolorrgb 2197 2303 a SDict begin H.R end 2197 2303 a 2197 2360 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1Column) cvn H.B /ANN pdfmark end 2197 2360 a 0 TeXcolorgray 20 w Fx(number)f Ft(inde)n(x)h Fx(is)h(printed.)p 0 TeXcolorgray 0.25 TeXcolorgray 506 2570 a Fo(P)n(arameter)o(s)p 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 2512 a SDict begin H.S end 515 2512 a 515 2512 a SDict begin 12 H.A end 515 2512 a 515 2512 a SDict begin [ /View [/XYZ H.V] /Dest (table.99) cvn H.B /DEST pdfmark end 515 2512 a 0.5 TeXcolorgray 515 2615 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2615 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2715 4 100 v 0 TeXcolorgray 798 2685 a Ft(inde)n(x)p 0.5 TeXcolorgray 1005 2715 V 0 TeXcolorgray 60 w Fx(the)f(requested)f(column)g(number)p 0.5 TeXcolorgray 3400 2715 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2718 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2718 V 0 TeXcolorgray 0.5 TeXcolorgray 515 2818 4 100 v 0 TeXcolorgray 796 2788 a Ft(silent)p 0.5 TeXcolorgray 1005 2818 V 0 TeXcolorgray 61 w Fx(if)h(true,)g(print)g(message)g(whether)p 0 0 1 TeXcolorrgb 2047 2789 a SDict begin H.S end 2047 2789 a 0 0 1 TeXcolorrgb -1 x Fx(FITS::v)o(erboseMode)p 0 0 1 TeXcolorrgb 2714 2732 a SDict begin H.R end 2714 2732 a 2714 2788 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (classCCfits_1_1FITS_ac897e39e93234792d519913e656be5fc) cvn H.B /ANN pdfmark end 2714 2788 a 0 TeXcolorgray 21 w Fx(is)h(set)g(or)f(not.)p 0.5 TeXcolorgray 3400 2818 4 100 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2821 2889 4 v 0 TeXcolorgray 0.5 TeXcolorgray 515 2821 V 0 TeXcolorgray 515 3051 a(The)g(documentation)d(for)i(this)i(class)g(w)o (as)g(generated)e(from)g(the)h(follo)n(wing)f(\002les:)p 0 TeXcolorgray 652 3264 a(\225)p 0 TeXcolorgray 41 w(T)-7 b(able.h)p 0 TeXcolorgray 652 3372 a(\225)p 0 TeXcolorgray 41 w(T)g(able.cxx)p 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h (16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Page: 147 152 TeXDict begin 147 151 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.147) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0.25 TeXcolorgray 416 x Fs(Inde)o(x)p 0 TeXcolorgray 515 735 a SDict begin H.S end 515 735 a 515 735 a SDict begin 12 H.A end 515 735 a 515 735 a SDict begin [ /View [/XYZ H.V] /Dest (section*.67) cvn H.B /DEST pdfmark end 515 735 a 0 TeXcolorgray 83 x Fp(\030)p Fx(PHDU)681 917 y(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 1207 918 a SDict begin H.S end 1207 918 a 0 0 1 TeXcolorrgb -1 x Fx(133)p 0 0 1 TeXcolorrgb 1331 861 a SDict begin H.R end 1331 861 a 1331 917 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.133) cvn H.B /ANN pdfmark end 1331 917 a 0 TeXcolorgray 515 1017 a Fx(AsciiT)-7 b(able)681 1117 y(CC\002ts::AsciiT)g(able,)p 0 0 1 TeXcolorrgb 1338 1118 a SDict begin H.S end 1338 1118 a 0 0 1 TeXcolorrgb -1 x Fx(43)p 0 0 1 TeXcolorrgb 1421 1060 a SDict begin H.R end 1421 1060 a 1421 1117 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.43) cvn H.B /ANN pdfmark end 1421 1117 a 0 TeXcolorgray Fx(\226)p 0 0 1 TeXcolorrgb 1463 1118 a SDict begin H.S end 1463 1118 a 0 0 1 TeXcolorrgb -1 x Fx(45)p 0 0 1 TeXcolorrgb 1546 1060 a SDict begin H.R end 1546 1060 a 1546 1117 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.45) cvn H.B /ANN pdfmark end 1546 1117 a 0 TeXcolorgray 515 1216 a Fx(BinT)g(able)681 1316 y(CC\002ts::BinT)g(able,)p 0 0 1 TeXcolorrgb 1283 1317 a SDict begin H.S end 1283 1317 a 0 0 1 TeXcolorrgb -1 x Fx(47)p 0 0 1 TeXcolorrgb 1366 1260 a SDict begin H.R end 1366 1260 a 1366 1316 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.47) cvn H.B /ANN pdfmark end 1366 1316 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 1408 1317 a SDict begin H.S end 1408 1317 a 0 0 1 TeXcolorrgb -1 x Fx(48)p 0 0 1 TeXcolorrgb 1491 1260 a SDict begin H.R end 1491 1260 a 1491 1316 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.48) cvn H.B /ANN pdfmark end 1491 1316 a 0 TeXcolorgray 515 1416 a Fx(CC\002ts,)p 0 0 1 TeXcolorrgb 769 1417 a SDict begin H.S end 769 1417 a 0 0 1 TeXcolorrgb -1 x Fx(40)p 0 0 1 TeXcolorrgb 852 1359 a SDict begin H.R end 852 1359 a 852 1416 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.40) cvn H.B /ANN pdfmark end 852 1416 a 0 TeXcolorgray 681 1515 a Fx(V)e(alueT)i(ype,)p 0 0 1 TeXcolorrgb 1075 1515 a SDict begin H.S end 1075 1515 a 0 0 1 TeXcolorrgb Fx(41)p 0 0 1 TeXcolorrgb 1158 1459 a SDict begin H.R end 1158 1459 a 1158 1515 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.41) cvn H.B /ANN pdfmark end 1158 1515 a 0 TeXcolorgray 681 1615 a Fx(operator)p Fu(<<)p Fx(,)p 0 0 1 TeXcolorrgb 1128 1615 a SDict begin H.S end 1128 1615 a 0 0 1 TeXcolorrgb Fx(41)p 0 0 1 TeXcolorrgb 1211 1559 a SDict begin H.R end 1211 1559 a 1211 1615 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.41) cvn H.B /ANN pdfmark end 1211 1615 a 0 TeXcolorgray 515 1714 a Fx(CC\002ts::AsciiT)g(able,)p 0 0 1 TeXcolorrgb 1172 1714 a SDict begin H.S end 1172 1714 a 0 0 1 TeXcolorrgb Fx(42)p 0 0 1 TeXcolorrgb 1255 1658 a SDict begin H.R end 1255 1658 a 1255 1714 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.42) cvn H.B /ANN pdfmark end 1255 1714 a 0 TeXcolorgray 681 1814 a Fx(AsciiT)g(able,)p 0 0 1 TeXcolorrgb 1080 1815 a SDict begin H.S end 1080 1815 a 0 0 1 TeXcolorrgb -1 x Fx(43)p 0 0 1 TeXcolorrgb 1163 1758 a SDict begin H.R end 1163 1758 a 1163 1814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.43) cvn H.B /ANN pdfmark end 1163 1814 a 0 TeXcolorgray Fx(\226)p 0 0 1 TeXcolorrgb 1205 1815 a SDict begin H.S end 1205 1815 a 0 0 1 TeXcolorrgb -1 x Fx(45)p 0 0 1 TeXcolorrgb 1288 1758 a SDict begin H.R end 1288 1758 a 1288 1814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.45) cvn H.B /ANN pdfmark end 1288 1814 a 0 TeXcolorgray 681 1914 a Fx(addColumn,)p 0 0 1 TeXcolorrgb 1110 1915 a SDict begin H.S end 1110 1915 a 0 0 1 TeXcolorrgb -1 x Fx(45)p 0 0 1 TeXcolorrgb 1193 1857 a SDict begin H.R end 1193 1857 a 1193 1914 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.45) cvn H.B /ANN pdfmark end 1193 1914 a 0 TeXcolorgray 681 2013 a Fx(readData,)p 0 0 1 TeXcolorrgb 1022 2014 a SDict begin H.S end 1022 2014 a 0 0 1 TeXcolorrgb -1 x Fx(45)p 0 0 1 TeXcolorrgb 1105 1957 a SDict begin H.R end 1105 1957 a 1105 2013 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.45) cvn H.B /ANN pdfmark end 1105 2013 a 0 TeXcolorgray 515 2113 a Fx(CC\002ts::BinT)g (able,)p 0 0 1 TeXcolorrgb 1117 2114 a SDict begin H.S end 1117 2114 a 0 0 1 TeXcolorrgb -1 x Fx(46)p 0 0 1 TeXcolorrgb 1200 2057 a SDict begin H.R end 1200 2057 a 1200 2113 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.46) cvn H.B /ANN pdfmark end 1200 2113 a 0 TeXcolorgray 681 2213 a Fx(BinT)g(able,)p 0 0 1 TeXcolorrgb 1025 2214 a SDict begin H.S end 1025 2214 a 0 0 1 TeXcolorrgb -1 x Fx(47)p 0 0 1 TeXcolorrgb 1108 2156 a SDict begin H.R end 1108 2156 a 1108 2213 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.47) cvn H.B /ANN pdfmark end 1108 2213 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 1149 2214 a SDict begin H.S end 1149 2214 a 0 0 1 TeXcolorrgb -1 x Fx(48)p 0 0 1 TeXcolorrgb 1232 2156 a SDict begin H.R end 1232 2156 a 1232 2213 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.48) cvn H.B /ANN pdfmark end 1232 2213 a 0 TeXcolorgray 681 2312 a Fx(addColumn,)p 0 0 1 TeXcolorrgb 1110 2314 a SDict begin H.S end 1110 2314 a 0 0 1 TeXcolorrgb -2 x Fx(49)p 0 0 1 TeXcolorrgb 1193 2256 a SDict begin H.R end 1193 2256 a 1193 2312 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.49) cvn H.B /ANN pdfmark end 1193 2312 a 0 TeXcolorgray 681 2412 a Fx(readData,)p 0 0 1 TeXcolorrgb 1022 2414 a SDict begin H.S end 1022 2414 a 0 0 1 TeXcolorrgb -2 x Fx(49)p 0 0 1 TeXcolorrgb 1105 2356 a SDict begin H.R end 1105 2356 a 1105 2412 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.49) cvn H.B /ANN pdfmark end 1105 2412 a 0 TeXcolorgray 515 2511 a Fx(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1082 2512 a SDict begin H.S end 1082 2512 a 0 0 1 TeXcolorrgb -1 x Fx(50)p 0 0 1 TeXcolorrgb 1165 2455 a SDict begin H.R end 1165 2455 a 1165 2511 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.50) cvn H.B /ANN pdfmark end 1165 2511 a 0 TeXcolorgray 681 2611 a Fx(Column,)p 0 0 1 TeXcolorrgb 990 2612 a SDict begin H.S end 990 2612 a 0 0 1 TeXcolorrgb -1 x Fx(55)p 0 0 1 TeXcolorrgb 1073 2555 a SDict begin H.R end 1073 2555 a 1073 2611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.55) cvn H.B /ANN pdfmark end 1073 2611 a 0 TeXcolorgray 681 2711 a Fx(addNullV)e(alue,)p 0 0 1 TeXcolorrgb 1179 2712 a SDict begin H.S end 1179 2712 a 0 0 1 TeXcolorrgb -1 x Fx(55)p 0 0 1 TeXcolorrgb 1262 2654 a SDict begin H.R end 1262 2654 a 1262 2711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.55) cvn H.B /ANN pdfmark end 1262 2711 a 0 TeXcolorgray 681 2810 a Fx(dimen,)p 0 0 1 TeXcolorrgb 930 2811 a SDict begin H.S end 930 2811 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1013 2754 a SDict begin H.R end 1013 2754 a 1013 2810 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1013 2810 a 0 TeXcolorgray 681 2910 a Fx(display,)p 0 0 1 TeXcolorrgb 962 2911 a SDict begin H.S end 962 2911 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1045 2854 a SDict begin H.R end 1045 2854 a 1045 2910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1045 2910 a 0 TeXcolorgray 681 3010 a Fx(format,)p 0 0 1 TeXcolorrgb 944 3011 a SDict begin H.S end 944 3011 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1027 2953 a SDict begin H.R end 1027 2953 a 1027 3010 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1027 3010 a 0 TeXcolorgray 681 3109 a Fx(getNullV)g (alue,)p 0 0 1 TeXcolorrgb 1160 3110 a SDict begin H.S end 1160 3110 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1243 3053 a SDict begin H.R end 1243 3053 a 1243 3109 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1243 3109 a 0 TeXcolorgray 681 3209 a Fx(read,)p 0 0 1 TeXcolorrgb 865 3210 a SDict begin H.S end 865 3210 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 948 3153 a SDict begin H.R end 948 3153 a 948 3209 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 948 3209 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 990 3210 a SDict begin H.S end 990 3210 a 0 0 1 TeXcolorrgb -1 x Fx(57)p 0 0 1 TeXcolorrgb 1073 3153 a SDict begin H.R end 1073 3153 a 1073 3209 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.57) cvn H.B /ANN pdfmark end 1073 3209 a 0 TeXcolorgray 681 3308 a Fx(readArrays,)p 0 0 1 TeXcolorrgb 1091 3309 a SDict begin H.S end 1091 3309 a 0 0 1 TeXcolorrgb -1 x Fx(58)p 0 0 1 TeXcolorrgb 1174 3252 a SDict begin H.R end 1174 3252 a 1174 3308 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.58) cvn H.B /ANN pdfmark end 1174 3308 a 0 TeXcolorgray 681 3408 a Fx(readData,)p 0 0 1 TeXcolorrgb 1022 3409 a SDict begin H.S end 1022 3409 a 0 0 1 TeXcolorrgb -1 x Fx(58)p 0 0 1 TeXcolorrgb 1105 3352 a SDict begin H.R end 1105 3352 a 1105 3408 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.58) cvn H.B /ANN pdfmark end 1105 3408 a 0 TeXcolorgray 681 3508 a Fx(resetRead,)p 0 0 1 TeXcolorrgb 1050 3510 a SDict begin H.S end 1050 3510 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 1133 3451 a SDict begin H.R end 1133 3451 a 1133 3508 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 1133 3508 a 0 TeXcolorgray 681 3607 a Fx(ro)n(ws,)p 0 0 1 TeXcolorrgb 882 3609 a SDict begin H.S end 882 3609 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 965 3551 a SDict begin H.R end 965 3551 a 965 3607 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 965 3607 a 0 TeXcolorgray 681 3707 a Fx(scale,)p 0 0 1 TeXcolorrgb 888 3709 a SDict begin H.S end 888 3709 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 971 3651 a SDict begin H.R end 971 3651 a 971 3707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 971 3707 a 0 TeXcolorgray 681 3807 a Fx(write,)p 0 0 1 TeXcolorrgb 893 3809 a SDict begin H.S end 893 3809 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 976 3750 a SDict begin H.R end 976 3750 a 976 3807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 976 3807 a 0 TeXcolorgray Fx(\226)p 0 0 1 TeXcolorrgb 1018 3808 a SDict begin H.S end 1018 3808 a 0 0 1 TeXcolorrgb -1 x Fx(64)p 0 0 1 TeXcolorrgb 1100 3750 a SDict begin H.R end 1100 3750 a 1100 3807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.64) cvn H.B /ANN pdfmark end 1100 3807 a 0 TeXcolorgray 681 3906 a Fx(writeArrays,)p 0 0 1 TeXcolorrgb 1119 3907 a SDict begin H.S end 1119 3907 a 0 0 1 TeXcolorrgb -1 x Fx(64)p 0 0 1 TeXcolorrgb 1202 3850 a SDict begin H.R end 1202 3850 a 1202 3906 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.64) cvn H.B /ANN pdfmark end 1202 3906 a 0 TeXcolorgray 681 4006 a Fx(zero,)p 0 0 1 TeXcolorrgb 865 4007 a SDict begin H.S end 865 4007 a 0 0 1 TeXcolorrgb -1 x Fx(64)p 0 0 1 TeXcolorrgb 948 3950 a SDict begin H.R end 948 3950 a 948 4006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.64) cvn H.B /ANN pdfmark end 948 4006 a 0 TeXcolorgray 515 4106 a Fx(CC\002ts::Column::Insuf)n(\002cientElements,)p 0 0 1 TeXcolorrgb 1814 4107 a SDict begin H.S end 1814 4107 a 0 0 1 TeXcolorrgb -1 x Fx(65)p 0 0 1 TeXcolorrgb 1897 4049 a SDict begin H.R end 1897 4049 a 1897 4106 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.65) cvn H.B /ANN pdfmark end 1897 4106 a 0 TeXcolorgray 681 4205 a Fx(Insuf)n (\002cientElements,)p 0 0 1 TeXcolorrgb 1407 4206 a SDict begin H.S end 1407 4206 a 0 0 1 TeXcolorrgb -1 x Fx(65)p 0 0 1 TeXcolorrgb 1490 4149 a SDict begin H.R end 1490 4149 a 1490 4205 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.65) cvn H.B /ANN pdfmark end 1490 4205 a 0 TeXcolorgray 515 4305 a Fx(CC\002ts::Column::In)m(v)n(alidDataT)i(ype,)p 0 0 1 TeXcolorrgb 1679 4306 a SDict begin H.S end 1679 4306 a 0 0 1 TeXcolorrgb -1 x Fx(66)p 0 0 1 TeXcolorrgb 1762 4248 a SDict begin H.R end 1762 4248 a 1762 4305 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.66) cvn H.B /ANN pdfmark end 1762 4305 a 0 TeXcolorgray 681 4404 a Fx(In)m(v)n (alidDataT)g(ype,)p 0 0 1 TeXcolorrgb 1273 4405 a SDict begin H.S end 1273 4405 a 0 0 1 TeXcolorrgb -1 x Fx(66)p 0 0 1 TeXcolorrgb 1356 4348 a SDict begin H.R end 1356 4348 a 1356 4404 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.66) cvn H.B /ANN pdfmark end 1356 4404 a 0 TeXcolorgray 515 4504 a Fx(CC\002ts::Column::In)m(v)n(alidNumberOfRo)n(ws,)p 0 0 1 TeXcolorrgb 1901 4505 a SDict begin H.S end 1901 4505 a 0 0 1 TeXcolorrgb -1 x Fx(67)p 0 0 1 TeXcolorrgb 1984 4448 a SDict begin H.R end 1984 4448 a 1984 4504 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.67) cvn H.B /ANN pdfmark end 1984 4504 a 0 TeXcolorgray 681 4604 a Fx(In)m(v)n (alidNumberOfRo)n(ws,)p 0 0 1 TeXcolorrgb 1499 4605 a SDict begin H.S end 1499 4605 a 0 0 1 TeXcolorrgb -1 x Fx(67)p 0 0 1 TeXcolorrgb 1582 4547 a SDict begin H.R end 1582 4547 a 1582 4604 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.67) cvn H.B /ANN pdfmark end 1582 4604 a 0 TeXcolorgray 515 4703 a Fx(CC\002ts::Column::In)m(v)n(alidRo)n(wNumber,)p 0 0 1 TeXcolorrgb 1785 4704 a SDict begin H.S end 1785 4704 a 0 0 1 TeXcolorrgb -1 x Fx(68)p 0 0 1 TeXcolorrgb 1868 4647 a SDict begin H.R end 1868 4647 a 1868 4703 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.68) cvn H.B /ANN pdfmark end 1868 4703 a 0 TeXcolorgray 681 4803 a Fx(In)m(v)n(alidRo) n(wNumber,)p 0 0 1 TeXcolorrgb 1379 4804 a SDict begin H.S end 1379 4804 a 0 0 1 TeXcolorrgb -1 x Fx(68)p 0 0 1 TeXcolorrgb 1462 4747 a SDict begin H.R end 1462 4747 a 1462 4803 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.68) cvn H.B /ANN pdfmark end 1462 4803 a 0 TeXcolorgray 515 4903 a Fx(CC\002ts::Column::In)m(v)n(alidRo)n(wP)o(arameter,)p 0 0 1 TeXcolorrgb 1844 4905 a SDict begin H.S end 1844 4905 a 0 0 1 TeXcolorrgb -2 x Fx(69)p 0 0 1 TeXcolorrgb 1927 4846 a SDict begin H.R end 1927 4846 a 1927 4903 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.69) cvn H.B /ANN pdfmark end 1927 4903 a 0 TeXcolorgray 681 5002 a Fx(In)m(v)n(alidRo) n(wP)o(arameter,)p 0 0 1 TeXcolorrgb 1442 5003 a SDict begin H.S end 1442 5003 a 0 0 1 TeXcolorrgb -1 x Fx(70)p 0 0 1 TeXcolorrgb 1525 4946 a SDict begin H.R end 1525 4946 a 1525 5002 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.70) cvn H.B /ANN pdfmark end 1525 5002 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1988 818 a Fx(CC\002ts::Column::NoNullV)e (alue,)p 0 0 1 TeXcolorrgb 3040 819 a SDict begin H.S end 3040 819 a 0 0 1 TeXcolorrgb -1 x Fx(70)p 0 0 1 TeXcolorrgb 3123 762 a SDict begin H.R end 3123 762 a 3123 818 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.70) cvn H.B /ANN pdfmark end 3123 818 a 0 TeXcolorgray 2154 917 a Fx(NoNullV)g(alue,)p 0 0 1 TeXcolorrgb 2634 918 a SDict begin H.S end 2634 918 a 0 0 1 TeXcolorrgb -1 x Fx(71)p 0 0 1 TeXcolorrgb 2717 861 a SDict begin H.R end 2717 861 a 2717 917 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.71) cvn H.B /ANN pdfmark end 2717 917 a 0 TeXcolorgray 1988 1017 a Fx(CC\002ts::Column::RangeError,)p 0 0 1 TeXcolorrgb 2989 1018 a SDict begin H.S end 2989 1018 a 0 0 1 TeXcolorrgb -1 x Fx(71)p 0 0 1 TeXcolorrgb 3072 961 a SDict begin H.R end 3072 961 a 3072 1017 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.71) cvn H.B /ANN pdfmark end 3072 1017 a 0 TeXcolorgray 2154 1117 a Fx(RangeError,)p 0 0 1 TeXcolorrgb 2583 1118 a SDict begin H.S end 2583 1118 a 0 0 1 TeXcolorrgb -1 x Fx(72)p 0 0 1 TeXcolorrgb 2666 1060 a SDict begin H.R end 2666 1060 a 2666 1117 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.72) cvn H.B /ANN pdfmark end 2666 1117 a 0 TeXcolorgray 1988 1216 a Fx(CC\002ts::Column::WrongColumnT)i(ype,)p 0 0 1 TeXcolorrgb 3264 1217 a SDict begin H.S end 3264 1217 a 0 0 1 TeXcolorrgb -1 x Fx(72)p 0 0 1 TeXcolorrgb 3347 1160 a SDict begin H.R end 3347 1160 a 3347 1216 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.72) cvn H.B /ANN pdfmark end 3347 1216 a 0 TeXcolorgray 2154 1316 a Fx(WrongColumnT)g(ype,)p 0 0 1 TeXcolorrgb 2858 1317 a SDict begin H.S end 2858 1317 a 0 0 1 TeXcolorrgb -1 x Fx(73)p 0 0 1 TeXcolorrgb 2941 1260 a SDict begin H.R end 2941 1260 a 2941 1316 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.73) cvn H.B /ANN pdfmark end 2941 1316 a 0 TeXcolorgray 1988 1416 a Fx(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2583 1417 a SDict begin H.S end 2583 1417 a 0 0 1 TeXcolorrgb -1 x Fx(74)p 0 0 1 TeXcolorrgb 2666 1359 a SDict begin H.R end 2666 1359 a 2666 1416 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.74) cvn H.B /ANN pdfmark end 2666 1416 a 0 TeXcolorgray 2154 1515 a Fx(ExtHDU,)p 0 0 1 TeXcolorrgb 2491 1516 a SDict begin H.S end 2491 1516 a 0 0 1 TeXcolorrgb -1 x Fx(77)p 0 0 1 TeXcolorrgb 2574 1461 a SDict begin H.R end 2574 1461 a 2574 1515 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.77) cvn H.B /ANN pdfmark end 2574 1515 a 0 TeXcolorgray 2154 1615 a Fx(addColumn,)p 0 0 1 TeXcolorrgb 2583 1616 a SDict begin H.S end 2583 1616 a 0 0 1 TeXcolorrgb -1 x Fx(78)p 0 0 1 TeXcolorrgb 2666 1559 a SDict begin H.R end 2666 1559 a 2666 1615 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.78) cvn H.B /ANN pdfmark end 2666 1615 a 0 TeXcolorgray 2154 1714 a Fx(column,)p 0 0 1 TeXcolorrgb 2445 1715 a SDict begin H.S end 2445 1715 a 0 0 1 TeXcolorrgb -1 x Fx(78)p 0 0 1 TeXcolorrgb 2528 1658 a SDict begin H.R end 2528 1658 a 2528 1714 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.78) cvn H.B /ANN pdfmark end 2528 1714 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2570 1716 a SDict begin H.S end 2570 1716 a 0 0 1 TeXcolorrgb -2 x Fx(79)p 0 0 1 TeXcolorrgb 2653 1658 a SDict begin H.R end 2653 1658 a 2653 1714 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.79) cvn H.B /ANN pdfmark end 2653 1714 a 0 TeXcolorgray 2154 1814 a Fx(deleteColumn,)p 0 0 1 TeXcolorrgb 2662 1816 a SDict begin H.S end 2662 1816 a 0 0 1 TeXcolorrgb -2 x Fx(79)p 0 0 1 TeXcolorrgb 2745 1758 a SDict begin H.R end 2745 1758 a 2745 1814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.79) cvn H.B /ANN pdfmark end 2745 1814 a 0 TeXcolorgray 2154 1914 a Fx(getRo)n(wsize,)p 0 0 1 TeXcolorrgb 2581 1915 a SDict begin H.S end 2581 1915 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2664 1857 a SDict begin H.R end 2664 1857 a 2664 1914 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2664 1914 a 0 TeXcolorgray 2154 2013 a Fx(isCompressed,)p 0 0 1 TeXcolorrgb 2662 2014 a SDict begin H.S end 2662 2014 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2745 1957 a SDict begin H.R end 2745 1957 a 2745 2013 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2745 2013 a 0 TeXcolorgray 2154 2113 a Fx(mak)o(eThisCurrent,)p 0 0 1 TeXcolorrgb 2776 2114 a SDict begin H.S end 2776 2114 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2859 2057 a SDict begin H.R end 2859 2057 a 2859 2113 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2859 2113 a 0 TeXcolorgray 2154 2213 a Fx(numCols,)p 0 0 1 TeXcolorrgb 2496 2214 a SDict begin H.S end 2496 2214 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2579 2156 a SDict begin H.R end 2579 2156 a 2579 2213 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2579 2213 a 0 TeXcolorgray 2154 2312 a Fx(read,)p 0 0 1 TeXcolorrgb 2339 2313 a SDict begin H.S end 2339 2313 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2422 2256 a SDict begin H.R end 2422 2256 a 2422 2312 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2422 2312 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2463 2313 a SDict begin H.S end 2463 2313 a 0 0 1 TeXcolorrgb -1 x Fx(81)p 0 0 1 TeXcolorrgb 2546 2256 a SDict begin H.R end 2546 2256 a 2546 2312 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.81) cvn H.B /ANN pdfmark end 2546 2312 a 0 TeXcolorgray 2154 2412 a Fx(readHduName,)p 0 0 1 TeXcolorrgb 2680 2413 a SDict begin H.S end 2680 2413 a 0 0 1 TeXcolorrgb -1 x Fx(81)p 0 0 1 TeXcolorrgb 2763 2356 a SDict begin H.R end 2763 2356 a 2763 2412 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.81) cvn H.B /ANN pdfmark end 2763 2412 a 0 TeXcolorgray 2154 2511 a Fx(ro)n(ws,)p 0 0 1 TeXcolorrgb 2355 2512 a SDict begin H.S end 2355 2512 a 0 0 1 TeXcolorrgb -1 x Fx(82)p 0 0 1 TeXcolorrgb 2438 2455 a SDict begin H.R end 2438 2455 a 2438 2511 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.82) cvn H.B /ANN pdfmark end 2438 2511 a 0 TeXcolorgray 2154 2611 a Fx(write,)p 0 0 1 TeXcolorrgb 2367 2612 a SDict begin H.S end 2367 2612 a 0 0 1 TeXcolorrgb -1 x Fx(82)p 0 0 1 TeXcolorrgb 2450 2555 a SDict begin H.R end 2450 2555 a 2450 2611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.82) cvn H.B /ANN pdfmark end 2450 2611 a 0 TeXcolorgray 2154 2711 a Fx(xtension,)p 0 0 1 TeXcolorrgb 2477 2712 a SDict begin H.S end 2477 2712 a 0 0 1 TeXcolorrgb -1 x Fx(83)p 0 0 1 TeXcolorrgb 2560 2654 a SDict begin H.R end 2560 2654 a 2560 2711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.83) cvn H.B /ANN pdfmark end 2560 2711 a 0 TeXcolorgray 1988 2810 a Fx(CC\002ts::ExtHDU::WrongExtensionT)g(ype,)p 0 0 1 TeXcolorrgb 3352 2811 a SDict begin H.S end 3352 2811 a 0 0 1 TeXcolorrgb -1 x Fx(83)p 0 0 1 TeXcolorrgb 3435 2754 a SDict begin H.R end 3435 2754 a 3435 2810 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.83) cvn H.B /ANN pdfmark end 3435 2810 a 0 TeXcolorgray 2154 2910 a Fx(WrongExtensionT)g(ype,)p 0 0 1 TeXcolorrgb 2923 2911 a SDict begin H.S end 2923 2911 a 0 0 1 TeXcolorrgb -1 x Fx(84)p 0 0 1 TeXcolorrgb 3006 2854 a SDict begin H.R end 3006 2854 a 3006 2910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.84) cvn H.B /ANN pdfmark end 3006 2910 a 0 TeXcolorgray 1988 3010 a Fx(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2459 3011 a SDict begin H.S end 2459 3011 a 0 0 1 TeXcolorrgb -1 x Fx(84)p 0 0 1 TeXcolorrgb 2542 2953 a SDict begin H.R end 2542 2953 a 2542 3010 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.84) cvn H.B /ANN pdfmark end 2542 3010 a 0 TeXcolorgray 2154 3109 a Fx(FITS,)p 0 0 1 TeXcolorrgb 2367 3110 a SDict begin H.S end 2367 3110 a 0 0 1 TeXcolorrgb -1 x Fx(88)p 0 0 1 TeXcolorrgb 2450 3053 a SDict begin H.R end 2450 3053 a 2450 3109 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.88) cvn H.B /ANN pdfmark end 2450 3109 a 0 TeXcolorgray Fx(\226)p 0 0 1 TeXcolorrgb 2492 3111 a SDict begin H.S end 2492 3111 a 0 0 1 TeXcolorrgb -2 x Fx(92)p 0 0 1 TeXcolorrgb 2574 3053 a SDict begin H.R end 2574 3053 a 2574 3109 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.92) cvn H.B /ANN pdfmark end 2574 3109 a 0 TeXcolorgray 2154 3209 a Fx(addImage,)p 0 0 1 TeXcolorrgb 2523 3211 a SDict begin H.S end 2523 3211 a 0 0 1 TeXcolorrgb -2 x Fx(93)p 0 0 1 TeXcolorrgb 2606 3153 a SDict begin H.R end 2606 3153 a 2606 3209 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.93) cvn H.B /ANN pdfmark end 2606 3209 a 0 TeXcolorgray 2154 3308 a Fx(addT)g(able,)p 0 0 1 TeXcolorrgb 2498 3310 a SDict begin H.S end 2498 3310 a 0 0 1 TeXcolorrgb -2 x Fx(93)p 0 0 1 TeXcolorrgb 2581 3252 a SDict begin H.R end 2581 3252 a 2581 3308 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.93) cvn H.B /ANN pdfmark end 2581 3308 a 0 TeXcolorgray 2154 3408 a Fx(cop)o(y,)p 0 0 1 TeXcolorrgb 2356 3410 a SDict begin H.S end 2356 3410 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 2440 3352 a SDict begin H.R end 2440 3352 a 2440 3408 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 2440 3408 a 0 TeXcolorgray 2154 3508 a Fx(currentExtensionName,)p 0 0 1 TeXcolorrgb 2961 3510 a SDict begin H.S end 2961 3510 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 3044 3451 a SDict begin H.R end 3044 3451 a 3044 3508 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 3044 3508 a 0 TeXcolorgray 2154 3607 a Fx(deleteExtension,)p 0 0 1 TeXcolorrgb 2726 3609 a SDict begin H.S end 2726 3609 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 2809 3551 a SDict begin H.R end 2809 3551 a 2809 3607 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 2809 3607 a 0 TeXcolorgray 2154 3707 a Fx(destro)o(y,)p 0 0 1 TeXcolorrgb 2440 3709 a SDict begin H.S end 2440 3709 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 2523 3651 a SDict begin H.R end 2523 3651 a 2523 3707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 2523 3707 a 0 TeXcolorgray 2154 3807 a Fx(e)o(xtension,)p 0 0 1 TeXcolorrgb 2513 3809 a SDict begin H.S end 2513 3809 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 2596 3750 a SDict begin H.R end 2596 3750 a 2596 3807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 2596 3807 a 0 TeXcolorgray 2154 3906 a Fx(\002lter,)p 0 0 1 TeXcolorrgb 2353 3908 a SDict begin H.S end 2353 3908 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 2436 3850 a SDict begin H.R end 2436 3850 a 2436 3906 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 2436 3906 a 0 TeXcolorgray 2154 4006 a Fx(\003ush,)p 0 0 1 TeXcolorrgb 2357 4008 a SDict begin H.S end 2357 4008 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 2440 3950 a SDict begin H.R end 2440 3950 a 2440 4006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 2440 4006 a 0 TeXcolorgray 2154 4106 a Fx(getT)m(ileDimensions,)p 0 0 1 TeXcolorrgb 2825 4108 a SDict begin H.S end 2825 4108 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 2908 4049 a SDict begin H.R end 2908 4049 a 2908 4106 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 2908 4106 a 0 TeXcolorgray 2154 4205 a Fx(read,)p 0 0 1 TeXcolorrgb 2339 4207 a SDict begin H.S end 2339 4207 a 0 0 1 TeXcolorrgb -2 x Fx(96)p 0 0 1 TeXcolorrgb 2422 4149 a SDict begin H.R end 2422 4149 a 2422 4205 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.96) cvn H.B /ANN pdfmark end 2422 4205 a 0 TeXcolorgray 2154 4305 a Fx(setCompressionT)g(ype,)p 0 0 1 TeXcolorrgb 2890 4307 a SDict begin H.S end 2890 4307 a 0 0 1 TeXcolorrgb -2 x Fx(97)p 0 0 1 TeXcolorrgb 2973 4248 a SDict begin H.R end 2973 4248 a 2973 4305 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.97) cvn H.B /ANN pdfmark end 2973 4305 a 0 TeXcolorgray 2154 4404 a Fx(setNoiseBits,)p 0 0 1 TeXcolorrgb 2616 4406 a SDict begin H.S end 2616 4406 a 0 0 1 TeXcolorrgb -2 x Fx(97)p 0 0 1 TeXcolorrgb 2699 4348 a SDict begin H.R end 2699 4348 a 2699 4404 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.97) cvn H.B /ANN pdfmark end 2699 4404 a 0 TeXcolorgray 2154 4504 a Fx(setT)m(ileDimensions,)p 0 0 1 TeXcolorrgb 2816 4506 a SDict begin H.S end 2816 4506 a 0 0 1 TeXcolorrgb -2 x Fx(97)p 0 0 1 TeXcolorrgb 2899 4448 a SDict begin H.R end 2899 4448 a 2899 4504 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.97) cvn H.B /ANN pdfmark end 2899 4504 a 0 TeXcolorgray 2154 4604 a Fx(v)o(erboseMode,)p 0 0 1 TeXcolorrgb 2647 4606 a SDict begin H.S end 2647 4606 a 0 0 1 TeXcolorrgb -2 x Fx(98)p 0 0 1 TeXcolorrgb 2730 4547 a SDict begin H.R end 2730 4547 a 2730 4604 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.98) cvn H.B /ANN pdfmark end 2730 4604 a 0 TeXcolorgray 1988 4703 a Fx(CC\002ts::FITS::CantCreate,)p 0 0 1 TeXcolorrgb 2879 4705 a SDict begin H.S end 2879 4705 a 0 0 1 TeXcolorrgb -2 x Fx(98)p 0 0 1 TeXcolorrgb 2962 4647 a SDict begin H.R end 2962 4647 a 2962 4703 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.98) cvn H.B /ANN pdfmark end 2962 4703 a 0 TeXcolorgray 2154 4803 a Fx(CantCreate,)p 0 0 1 TeXcolorrgb 2569 4805 a SDict begin H.S end 2569 4805 a 0 0 1 TeXcolorrgb -2 x Fx(98)p 0 0 1 TeXcolorrgb 2652 4747 a SDict begin H.R end 2652 4747 a 2652 4803 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.98) cvn H.B /ANN pdfmark end 2652 4803 a 0 TeXcolorgray 1988 4903 a Fx(CC\002ts::FITS::CantOpen,)p 0 0 1 TeXcolorrgb 2842 4905 a SDict begin H.S end 2842 4905 a 0 0 1 TeXcolorrgb -2 x Fx(99)p 0 0 1 TeXcolorrgb 2925 4846 a SDict begin H.R end 2925 4846 a 2925 4903 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.99) cvn H.B /ANN pdfmark end 2925 4903 a 0 TeXcolorgray 2154 5002 a Fx(CantOpen,)p 0 0 1 TeXcolorrgb 2533 5003 a SDict begin H.S end 2533 5003 a 0 0 1 TeXcolorrgb -1 x Fx(100)p 0 0 1 TeXcolorrgb 2657 4946 a SDict begin H.R end 2657 4946 a 2657 5002 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.100) cvn H.B /ANN pdfmark end 2657 5002 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray eop end %%Page: 148 153 TeXDict begin 148 152 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.148) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(INDEX)2472 b(148)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(CC\002ts::FITS::NoSuchHDU,)p 0 0 1 TeXcolorrgb 1479 524 a SDict begin H.S end 1479 524 a 0 0 1 TeXcolorrgb -1 x Fx(100)p 0 0 1 TeXcolorrgb 1603 467 a SDict begin H.R end 1603 467 a 1603 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.100) cvn H.B /ANN pdfmark end 1603 523 a 0 TeXcolorgray 681 623 a Fx(NoSuchHDU,)p 0 0 1 TeXcolorrgb 1170 624 a SDict begin H.S end 1170 624 a 0 0 1 TeXcolorrgb -1 x Fx(101)p 0 0 1 TeXcolorrgb 1294 566 a SDict begin H.R end 1294 566 a 1294 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.101) cvn H.B /ANN pdfmark end 1294 623 a 0 TeXcolorgray 515 722 a Fx (CC\002ts::FITS::OperationNotSupported,)p 0 0 1 TeXcolorrgb 1825 723 a SDict begin H.S end 1825 723 a 0 0 1 TeXcolorrgb -1 x Fx(101)p 0 0 1 TeXcolorrgb 1950 666 a SDict begin H.R end 1950 666 a 1950 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.101) cvn H.B /ANN pdfmark end 1950 722 a 0 TeXcolorgray 681 822 a Fx(OperationNotSupported,)p 0 0 1 TeXcolorrgb 1520 823 a SDict begin H.S end 1520 823 a 0 0 1 TeXcolorrgb -1 x Fx(102)p 0 0 1 TeXcolorrgb 1645 766 a SDict begin H.R end 1645 766 a 1645 822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.102) cvn H.B /ANN pdfmark end 1645 822 a 0 TeXcolorgray 515 922 a Fx (CC\002ts::FITSUtil::CAarray)p Fu(<)20 b Fx(T)h Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1668 923 a SDict begin H.S end 1668 923 a 0 0 1 TeXcolorrgb -1 x Fx(108)p 0 0 1 TeXcolorrgb 1792 865 a SDict begin H.R end 1792 865 a 1792 922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.108) cvn H.B /ANN pdfmark end 1792 922 a 0 TeXcolorgray 515 1021 a Fx(CC\002ts::FITSUtil::CVAarray)p Fu(<)f Fx(T)h Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1728 1022 a SDict begin H.S end 1728 1022 a 0 0 1 TeXcolorrgb -1 x Fx(108)p 0 0 1 TeXcolorrgb 1852 965 a SDict begin H.R end 1852 965 a 1852 1021 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.108) cvn H.B /ANN pdfmark end 1852 1021 a 0 TeXcolorgray 515 1121 a Fx(CC\002ts::FITSUtil::CV)-9 b(array)p Fu(<)20 b Fx(T)h Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1659 1123 a SDict begin H.S end 1659 1123 a 0 0 1 TeXcolorrgb -2 x Fx(109)p 0 0 1 TeXcolorrgb 1783 1065 a SDict begin H.R end 1783 1065 a 1783 1121 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.109) cvn H.B /ANN pdfmark end 1783 1121 a 0 TeXcolorgray 515 1220 a Fx(CC\002ts::FITSUtil::MatchName)p Fu(<)16 b Fx(T)g Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1781 1222 a SDict begin H.S end 1781 1222 a 0 0 1 TeXcolorrgb -2 x Fx(109)p 0 0 1 TeXcolorrgb 1905 1164 a SDict begin H.R end 1905 1164 a 1905 1220 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.109) cvn H.B /ANN pdfmark end 1905 1220 a 0 TeXcolorgray 515 1320 a Fx(CC\002ts::FITSUtil::MatchNum)p Fu(<)k Fx(T)g Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1760 1321 a SDict begin H.S end 1760 1321 a 0 0 1 TeXcolorrgb -1 x Fx(110)p 0 0 1 TeXcolorrgb 1885 1264 a SDict begin H.R end 1885 1264 a 1885 1320 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.110) cvn H.B /ANN pdfmark end 1885 1320 a 0 TeXcolorgray 515 1420 a Fx(CC\002ts::FITSUtil::MatchPtrName)p Fu(<)15 b Fx(T)g Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1875 1421 a SDict begin H.S end 1875 1421 a 0 0 1 TeXcolorrgb -1 x Fx(110)p 0 0 1 TeXcolorrgb 2000 1363 a SDict begin H.R end 2000 1363 a 2000 1420 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.110) cvn H.B /ANN pdfmark end 2000 1420 a 0 TeXcolorgray 515 1519 a Fx(CC\002ts::FITSUtil::MatchPtrNum)p Fu(<)g Fx(T)g Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1843 1519 a SDict begin H.S end 1843 1519 a 0 0 1 TeXcolorrgb Fx(111)p 0 0 1 TeXcolorrgb 1968 1463 a SDict begin H.R end 1968 1463 a 1968 1519 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.111) cvn H.B /ANN pdfmark end 1968 1519 a 0 TeXcolorgray 515 1619 a Fx(CC\002ts::FITSUtil::MatchT)-7 b(ype)p Fu(<)20 b Fx(T)g Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1758 1619 a SDict begin H.S end 1758 1619 a 0 0 1 TeXcolorrgb Fx(111)p 0 0 1 TeXcolorrgb 1883 1563 a SDict begin H.R end 1883 1563 a 1883 1619 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.111) cvn H.B /ANN pdfmark end 1883 1619 a 0 TeXcolorgray 515 1719 a Fx(CC\002ts::FITSUtil::UnrecognizedT)-7 b(ype,)p 0 0 1 TeXcolorrgb 1786 1719 a SDict begin H.S end 1786 1719 a 0 0 1 TeXcolorrgb Fx(112)p 0 0 1 TeXcolorrgb 1911 1662 a SDict begin H.R end 1911 1662 a 1911 1719 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.112) cvn H.B /ANN pdfmark end 1911 1719 a 0 TeXcolorgray 515 1818 a Fx (CC\002ts::FITSUtil::auto_array_ptr)p Fu(<)12 b Fx(X)k Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 1866 1819 a SDict begin H.S end 1866 1819 a 0 0 1 TeXcolorrgb -1 x Fx(106)p 0 0 1 TeXcolorrgb 1991 1762 a SDict begin H.R end 1991 1762 a 1991 1818 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.106) cvn H.B /ANN pdfmark end 1991 1818 a 0 TeXcolorgray 515 1918 a Fx(CC\002ts::FitsError,)p 0 0 1 TeXcolorrgb 1114 1919 a SDict begin H.S end 1114 1919 a 0 0 1 TeXcolorrgb -1 x Fx(102)p 0 0 1 TeXcolorrgb 1239 1862 a SDict begin H.R end 1239 1862 a 1239 1918 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.102) cvn H.B /ANN pdfmark end 1239 1918 a 0 TeXcolorgray 681 2017 a Fx(FitsError,)p 0 0 1 TeXcolorrgb 1022 2018 a SDict begin H.S end 1022 2018 a 0 0 1 TeXcolorrgb -1 x Fx(103)p 0 0 1 TeXcolorrgb 1147 1961 a SDict begin H.R end 1147 1961 a 1147 2017 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.103) cvn H.B /ANN pdfmark end 1147 2017 a 0 TeXcolorgray 515 2117 a Fx (CC\002ts::FitsException,)p 0 0 1 TeXcolorrgb 1276 2118 a SDict begin H.S end 1276 2118 a 0 0 1 TeXcolorrgb -1 x Fx(103)p 0 0 1 TeXcolorrgb 1400 2061 a SDict begin H.R end 1400 2061 a 1400 2117 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.103) cvn H.B /ANN pdfmark end 1400 2117 a 0 TeXcolorgray 681 2217 a Fx(FitsException,)p 0 0 1 TeXcolorrgb 1184 2218 a SDict begin H.S end 1184 2218 a 0 0 1 TeXcolorrgb -1 x Fx(105)p 0 0 1 TeXcolorrgb 1308 2160 a SDict begin H.R end 1308 2160 a 1308 2217 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.105) cvn H.B /ANN pdfmark end 1308 2217 a 0 TeXcolorgray 681 2316 a Fx(message,)p 0 0 1 TeXcolorrgb 1004 2317 a SDict begin H.S end 1004 2317 a 0 0 1 TeXcolorrgb -1 x Fx(105)p 0 0 1 TeXcolorrgb 1128 2260 a SDict begin H.R end 1128 2260 a 1128 2316 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.105) cvn H.B /ANN pdfmark end 1128 2316 a 0 TeXcolorgray 515 2416 a Fx(CC\002ts::FitsF) o(atal,)p 0 0 1 TeXcolorrgb 1104 2417 a SDict begin H.S end 1104 2417 a 0 0 1 TeXcolorrgb -1 x Fx(105)p 0 0 1 TeXcolorrgb 1229 2360 a SDict begin H.R end 1229 2360 a 1229 2416 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.105) cvn H.B /ANN pdfmark end 1229 2416 a 0 TeXcolorgray 681 2516 a Fx(FitsF)o(atal,)p 0 0 1 TeXcolorrgb 1012 2517 a SDict begin H.S end 1012 2517 a 0 0 1 TeXcolorrgb -1 x Fx(106)p 0 0 1 TeXcolorrgb 1136 2459 a SDict begin H.R end 1136 2459 a 1136 2516 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.106) cvn H.B /ANN pdfmark end 1136 2516 a 0 TeXcolorgray 515 2615 a Fx(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 995 2615 a SDict begin H.S end 995 2615 a 0 0 1 TeXcolorrgb Fx(112)p 0 0 1 TeXcolorrgb 1119 2559 a SDict begin H.R end 1119 2559 a 1119 2615 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.112) cvn H.B /ANN pdfmark end 1119 2615 a 0 TeXcolorgray 681 2715 a Fx(addK)n(e)o(y,)p 0 0 1 TeXcolorrgb 977 2716 a SDict begin H.S end 977 2716 a 0 0 1 TeXcolorrgb -1 x Fx(116)p 0 0 1 TeXcolorrgb 1102 2659 a SDict begin H.R end 1102 2659 a 1102 2715 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.116) cvn H.B /ANN pdfmark end 1102 2715 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 1143 2716 a SDict begin H.S end 1143 2716 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 1268 2659 a SDict begin H.R end 1268 2659 a 1268 2715 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 1268 2715 a 0 TeXcolorgray 681 2814 a Fx(axis,)p 0 0 1 TeXcolorrgb 856 2815 a SDict begin H.S end 856 2815 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 981 2758 a SDict begin H.R end 981 2758 a 981 2814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 981 2814 a 0 TeXcolorgray 681 2914 a Fx(bitpix,)p 0 0 1 TeXcolorrgb 916 2915 a SDict begin H.S end 916 2915 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 1041 2858 a SDict begin H.R end 1041 2858 a 1041 2914 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 1041 2914 a 0 TeXcolorgray 681 3014 a Fx(cop)o(yAllK)n(e) o(ys,)p 0 0 1 TeXcolorrgb 1156 3015 a SDict begin H.S end 1156 3015 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 1281 2957 a SDict begin H.R end 1281 2957 a 1281 3014 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 1281 3014 a 0 TeXcolorgray 681 3113 a Fx(deleteK)n(e)o(y,)p 0 0 1 TeXcolorrgb 1056 3114 a SDict begin H.S end 1056 3114 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 1180 3057 a SDict begin H.R end 1180 3057 a 1180 3113 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 1180 3113 a 0 TeXcolorgray 681 3213 a Fx(getChecksum,)p 0 0 1 TeXcolorrgb 1174 3214 a SDict begin H.S end 1174 3214 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1299 3157 a SDict begin H.R end 1299 3157 a 1299 3213 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1299 3213 a 0 TeXcolorgray 681 3313 a Fx(getComments,)p 0 0 1 TeXcolorrgb 1184 3314 a SDict begin H.S end 1184 3314 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1308 3256 a SDict begin H.R end 1308 3256 a 1308 3313 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1308 3313 a 0 TeXcolorgray 681 3412 a Fx(getHistory,)p 0 0 1 TeXcolorrgb 1073 3413 a SDict begin H.S end 1073 3413 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1197 3356 a SDict begin H.R end 1197 3356 a 1197 3412 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1197 3412 a 0 TeXcolorgray 681 3512 a Fx(k)o(e)o(yw)o (ordCate)o(gories,)p 0 0 1 TeXcolorrgb 1364 3513 a SDict begin H.S end 1364 3513 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1488 3456 a SDict begin H.R end 1488 3456 a 1488 3512 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1488 3512 a 0 TeXcolorgray 681 3611 a Fx(mak)o(eThisCurrent,)p 0 0 1 TeXcolorrgb 1303 3612 a SDict begin H.S end 1303 3612 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1427 3555 a SDict begin H.R end 1427 3555 a 1427 3611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1427 3611 a 0 TeXcolorgray 681 3711 a Fx(readAllK)n(e)o(ys,)p 0 0 1 TeXcolorrgb 1139 3712 a SDict begin H.S end 1139 3712 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1263 3655 a SDict begin H.R end 1263 3655 a 1263 3711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1263 3711 a 0 TeXcolorgray 681 3811 a Fx(readK)n(e)o(y,)p 0 0 1 TeXcolorrgb 1000 3813 a SDict begin H.S end 1000 3813 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 1125 3754 a SDict begin H.R end 1125 3754 a 1125 3811 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 1125 3811 a 0 TeXcolorgray 681 3910 a Fx(readK)n(e)o(ys,) p 0 0 1 TeXcolorrgb 1032 3912 a SDict begin H.S end 1032 3912 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 1157 3854 a SDict begin H.R end 1157 3854 a 1157 3910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 1157 3910 a 0 TeXcolorgray 681 4010 a Fx(scale,)p 0 0 1 TeXcolorrgb 888 4012 a SDict begin H.S end 888 4012 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 1013 3954 a SDict begin H.R end 1013 3954 a 1013 4010 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 1013 4010 a 0 TeXcolorgray 681 4110 a Fx (suppressScaling,)p 0 0 1 TeXcolorrgb 1257 4112 a SDict begin H.S end 1257 4112 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 1382 4053 a SDict begin H.R end 1382 4053 a 1382 4110 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 1382 4110 a 0 TeXcolorgray 681 4209 a Fx(updateChecksum,)p 0 0 1 TeXcolorrgb 1294 4210 a SDict begin H.S end 1294 4210 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1419 4153 a SDict begin H.R end 1419 4153 a 1419 4209 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1419 4209 a 0 TeXcolorgray 681 4309 a Fx(v)o(erifyChecksum,)p 0 0 1 TeXcolorrgb 1270 4310 a SDict begin H.S end 1270 4310 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1394 4253 a SDict begin H.R end 1394 4253 a 1394 4309 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1394 4309 a 0 TeXcolorgray 681 4408 a Fx(writeChecksum,)p 0 0 1 TeXcolorrgb 1243 4409 a SDict begin H.S end 1243 4409 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1368 4352 a SDict begin H.R end 1368 4352 a 1368 4408 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1368 4408 a 0 TeXcolorgray 681 4508 a Fx(writeComment,)p 0 0 1 TeXcolorrgb 1220 4509 a SDict begin H.S end 1220 4509 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1345 4452 a SDict begin H.R end 1345 4452 a 1345 4508 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1345 4508 a 0 TeXcolorgray 681 4608 a Fx(writeHistory,)p 0 0 1 TeXcolorrgb 1142 4609 a SDict begin H.S end 1142 4609 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1266 4551 a SDict begin H.R end 1266 4551 a 1266 4608 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1266 4608 a 0 TeXcolorgray 681 4707 a Fx(zero,)p 0 0 1 TeXcolorrgb 865 4707 a SDict begin H.S end 865 4707 a 0 0 1 TeXcolorrgb Fx(121)p 0 0 1 TeXcolorrgb 990 4651 a SDict begin H.R end 990 4651 a 990 4707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.121) cvn H.B /ANN pdfmark end 990 4707 a 0 TeXcolorgray 515 4807 a Fx(CC\002ts::HDU::In)m(v)n (alidExtensionT)-7 b(ype,)p 0 0 1 TeXcolorrgb 1767 4807 a SDict begin H.S end 1767 4807 a 0 0 1 TeXcolorrgb Fx(121)p 0 0 1 TeXcolorrgb 1891 4751 a SDict begin H.R end 1891 4751 a 1891 4807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.121) cvn H.B /ANN pdfmark end 1891 4807 a 0 TeXcolorgray 681 4907 a Fx(In)m(v)n(alidExtensionT)g(ype,)p 0 0 1 TeXcolorrgb 1448 4907 a SDict begin H.S end 1448 4907 a 0 0 1 TeXcolorrgb Fx(122)p 0 0 1 TeXcolorrgb 1573 4850 a SDict begin H.R end 1573 4850 a 1573 4907 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.122) cvn H.B /ANN pdfmark end 1573 4907 a 0 TeXcolorgray 515 5006 a Fx(CC\002ts::HDU::In)m(v)n (alidImageDataT)g(ype,)p 0 0 1 TeXcolorrgb 1795 5006 a SDict begin H.S end 1795 5006 a 0 0 1 TeXcolorrgb Fx(122)p 0 0 1 TeXcolorrgb 1919 4950 a SDict begin H.R end 1919 4950 a 1919 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.122) cvn H.B /ANN pdfmark end 1919 5006 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 2154 523 a Fx(In)m(v)n(alidImageDataT)g (ype,)p 0 0 1 TeXcolorrgb 2954 524 a SDict begin H.S end 2954 524 a 0 0 1 TeXcolorrgb -1 x Fx(123)p 0 0 1 TeXcolorrgb 3078 467 a SDict begin H.R end 3078 467 a 3078 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.123) cvn H.B /ANN pdfmark end 3078 523 a 0 TeXcolorgray 1988 623 a Fx(CC\002ts::HDU::NoNullV)e(alue,)p 0 0 1 TeXcolorrgb 2952 624 a SDict begin H.S end 2952 624 a 0 0 1 TeXcolorrgb -1 x Fx(123)p 0 0 1 TeXcolorrgb 3077 566 a SDict begin H.R end 3077 566 a 3077 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.123) cvn H.B /ANN pdfmark end 3077 623 a 0 TeXcolorgray 2154 722 a Fx(NoNullV)g(alue,)p 0 0 1 TeXcolorrgb 2634 722 a SDict begin H.S end 2634 722 a 0 0 1 TeXcolorrgb Fx(124)p 0 0 1 TeXcolorrgb 2759 666 a SDict begin H.R end 2759 666 a 2759 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.124) cvn H.B /ANN pdfmark end 2759 722 a 0 TeXcolorgray 1988 822 a Fx(CC\002ts::HDU::NoSuchK)n (e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 3087 823 a SDict begin H.S end 3087 823 a 0 0 1 TeXcolorrgb -1 x Fx(125)p 0 0 1 TeXcolorrgb 3211 766 a SDict begin H.R end 3211 766 a 3211 822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.125) cvn H.B /ANN pdfmark end 3211 822 a 0 TeXcolorgray 2154 922 a Fx(NoSuchK)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 2768 923 a SDict begin H.S end 2768 923 a 0 0 1 TeXcolorrgb -1 x Fx(125)p 0 0 1 TeXcolorrgb 2893 865 a SDict begin H.R end 2893 865 a 2893 922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.125) cvn H.B /ANN pdfmark end 2893 922 a 0 TeXcolorgray 1988 1021 a Fx(CC\002ts::ImageExt)2154 1121 y(readData,)p 0 0 1 TeXcolorrgb 2496 1122 a SDict begin H.S end 2496 1122 a 0 0 1 TeXcolorrgb -1 x Fx(127)p 0 0 1 TeXcolorrgb 2620 1065 a SDict begin H.R end 2620 1065 a 2620 1121 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.127) cvn H.B /ANN pdfmark end 2620 1121 a 0 TeXcolorgray 2154 1220 a Fx(scale,)p 0 0 1 TeXcolorrgb 2362 1221 a SDict begin H.S end 2362 1221 a 0 0 1 TeXcolorrgb -1 x Fx(127)p 0 0 1 TeXcolorrgb 2486 1164 a SDict begin H.R end 2486 1164 a 2486 1220 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.127) cvn H.B /ANN pdfmark end 2486 1220 a 0 TeXcolorgray 2154 1320 a Fx(zero,)p 0 0 1 TeXcolorrgb 2339 1321 a SDict begin H.S end 2339 1321 a 0 0 1 TeXcolorrgb -1 x Fx(127)p 0 0 1 TeXcolorrgb 2463 1264 a SDict begin H.R end 2463 1264 a 2463 1320 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.127) cvn H.B /ANN pdfmark end 2463 1320 a 0 TeXcolorgray 1988 1420 a Fx(CC\002ts::ImageExt)p Fu(<)20 b Fx(T)g Fu(>)p Fx(,)p 0 0 1 TeXcolorrgb 2832 1421 a SDict begin H.S end 2832 1421 a 0 0 1 TeXcolorrgb -1 x Fx(126)p 0 0 1 TeXcolorrgb 2957 1363 a SDict begin H.R end 2957 1363 a 2957 1420 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.126) cvn H.B /ANN pdfmark end 2957 1420 a 0 TeXcolorgray 1988 1519 a Fx(CC\002ts::K)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 2593 1520 a SDict begin H.S end 2593 1520 a 0 0 1 TeXcolorrgb -1 x Fx(128)p 0 0 1 TeXcolorrgb 2718 1463 a SDict begin H.R end 2718 1463 a 2718 1519 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.128) cvn H.B /ANN pdfmark end 2718 1519 a 0 TeXcolorgray 2154 1619 a Fx(K)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 2501 1621 a SDict begin H.S end 2501 1621 a 0 0 1 TeXcolorrgb -2 x Fx(129)p 0 0 1 TeXcolorrgb 2625 1563 a SDict begin H.R end 2625 1563 a 2625 1619 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.129) cvn H.B /ANN pdfmark end 2625 1619 a 0 TeXcolorgray 2154 1719 a Fx(setV)-9 b(alue,)p 0 0 1 TeXcolorrgb 2477 1720 a SDict begin H.S end 2477 1720 a 0 0 1 TeXcolorrgb -1 x Fx(130)p 0 0 1 TeXcolorrgb 2602 1662 a SDict begin H.R end 2602 1662 a 2602 1719 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.130) cvn H.B /ANN pdfmark end 2602 1719 a 0 TeXcolorgray 2154 1818 a Fx(v)n(alue,)p 0 0 1 TeXcolorrgb 2374 1819 a SDict begin H.S end 2374 1819 a 0 0 1 TeXcolorrgb -1 x Fx(130)p 0 0 1 TeXcolorrgb 2498 1762 a SDict begin H.R end 2498 1762 a 2498 1818 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.130) cvn H.B /ANN pdfmark end 2498 1818 a 0 TeXcolorgray 2154 1918 a Fx(write,)p 0 0 1 TeXcolorrgb 2367 1919 a SDict begin H.S end 2367 1919 a 0 0 1 TeXcolorrgb -1 x Fx(130)p 0 0 1 TeXcolorrgb 2491 1862 a SDict begin H.R end 2491 1862 a 2491 1918 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.130) cvn H.B /ANN pdfmark end 2491 1918 a 0 TeXcolorgray 1988 2017 a Fx(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 2514 2018 a SDict begin H.S end 2514 2018 a 0 0 1 TeXcolorrgb -1 x Fx(131)p 0 0 1 TeXcolorrgb 2639 1961 a SDict begin H.R end 2639 1961 a 2639 2017 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.131) cvn H.B /ANN pdfmark end 2639 2017 a 0 TeXcolorgray 2154 2117 a Fp(\030)p Fx(PHDU,)p 0 0 1 TeXcolorrgb 2486 2118 a SDict begin H.S end 2486 2118 a 0 0 1 TeXcolorrgb -1 x Fx(133)p 0 0 1 TeXcolorrgb 2611 2061 a SDict begin H.R end 2611 2061 a 2611 2117 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.133) cvn H.B /ANN pdfmark end 2611 2117 a 0 TeXcolorgray 2154 2217 a Fx(PHDU,)p 0 0 1 TeXcolorrgb 2422 2218 a SDict begin H.S end 2422 2218 a 0 0 1 TeXcolorrgb -1 x Fx(134)p 0 0 1 TeXcolorrgb 2546 2160 a SDict begin H.R end 2546 2160 a 2546 2217 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.134) cvn H.B /ANN pdfmark end 2546 2217 a 0 TeXcolorgray 2154 2316 a Fx(initRead,)p 0 0 1 TeXcolorrgb 2477 2317 a SDict begin H.S end 2477 2317 a 0 0 1 TeXcolorrgb -1 x Fx(134)p 0 0 1 TeXcolorrgb 2602 2260 a SDict begin H.R end 2602 2260 a 2602 2316 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.134) cvn H.B /ANN pdfmark end 2602 2316 a 0 TeXcolorgray 2154 2416 a Fx(read,)p 0 0 1 TeXcolorrgb 2339 2417 a SDict begin H.S end 2339 2417 a 0 0 1 TeXcolorrgb -1 x Fx(134)p 0 0 1 TeXcolorrgb 2463 2360 a SDict begin H.R end 2463 2360 a 2463 2416 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.134) cvn H.B /ANN pdfmark end 2463 2416 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2505 2417 a SDict begin H.S end 2505 2417 a 0 0 1 TeXcolorrgb -1 x Fx(135)p 0 0 1 TeXcolorrgb 2629 2360 a SDict begin H.R end 2629 2360 a 2629 2416 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.135) cvn H.B /ANN pdfmark end 2629 2416 a 0 TeXcolorgray 2154 2516 a Fx(readData,)p 0 0 1 TeXcolorrgb 2496 2517 a SDict begin H.S end 2496 2517 a 0 0 1 TeXcolorrgb -1 x Fx(135)p 0 0 1 TeXcolorrgb 2620 2459 a SDict begin H.R end 2620 2459 a 2620 2516 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.135) cvn H.B /ANN pdfmark end 2620 2516 a 0 TeXcolorgray 2154 2615 a Fx(scale,)p 0 0 1 TeXcolorrgb 2362 2616 a SDict begin H.S end 2362 2616 a 0 0 1 TeXcolorrgb -1 x Fx(135)p 0 0 1 TeXcolorrgb 2486 2559 a SDict begin H.R end 2486 2559 a 2486 2615 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.135) cvn H.B /ANN pdfmark end 2486 2615 a 0 TeXcolorgray 2154 2715 a Fx(write,)p 0 0 1 TeXcolorrgb 2367 2716 a SDict begin H.S end 2367 2716 a 0 0 1 TeXcolorrgb -1 x Fx(136)p 0 0 1 TeXcolorrgb 2491 2659 a SDict begin H.R end 2491 2659 a 2491 2715 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.136) cvn H.B /ANN pdfmark end 2491 2715 a 0 TeXcolorgray 2154 2814 a Fx(zero,)p 0 0 1 TeXcolorrgb 2339 2815 a SDict begin H.S end 2339 2815 a 0 0 1 TeXcolorrgb -1 x Fx(137)p 0 0 1 TeXcolorrgb 2463 2758 a SDict begin H.R end 2463 2758 a 2463 2814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.137) cvn H.B /ANN pdfmark end 2463 2814 a 0 TeXcolorgray 1988 2914 a Fx(CC\002ts::T)i(able,)p 0 0 1 TeXcolorrgb 2471 2915 a SDict begin H.S end 2471 2915 a 0 0 1 TeXcolorrgb -1 x Fx(138)p 0 0 1 TeXcolorrgb 2595 2858 a SDict begin H.R end 2595 2858 a 2595 2914 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.138) cvn H.B /ANN pdfmark end 2595 2914 a 0 TeXcolorgray 2154 3014 a Fx(T)g(able,)p 0 0 1 TeXcolorrgb 2378 3015 a SDict begin H.S end 2378 3015 a 0 0 1 TeXcolorrgb -1 x Fx(140)p 0 0 1 TeXcolorrgb 2503 2957 a SDict begin H.R end 2503 2957 a 2503 3014 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.140) cvn H.B /ANN pdfmark end 2503 3014 a 0 TeXcolorgray 2154 3113 a Fx(column,)p 0 0 1 TeXcolorrgb 2445 3114 a SDict begin H.S end 2445 3114 a 0 0 1 TeXcolorrgb -1 x Fx(140)p 0 0 1 TeXcolorrgb 2570 3057 a SDict begin H.R end 2570 3057 a 2570 3113 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.140) cvn H.B /ANN pdfmark end 2570 3113 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2611 3113 a SDict begin H.S end 2611 3113 a 0 0 1 TeXcolorrgb Fx(141)p 0 0 1 TeXcolorrgb 2736 3057 a SDict begin H.R end 2736 3057 a 2736 3113 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.141) cvn H.B /ANN pdfmark end 2736 3113 a 0 TeXcolorgray 2154 3213 a Fx(deleteColumn,)p 0 0 1 TeXcolorrgb 2662 3213 a SDict begin H.S end 2662 3213 a 0 0 1 TeXcolorrgb Fx(141)p 0 0 1 TeXcolorrgb 2786 3157 a SDict begin H.R end 2786 3157 a 2786 3213 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.141) cvn H.B /ANN pdfmark end 2786 3213 a 0 TeXcolorgray 2154 3313 a Fx(deleteRo)n(ws,)p 0 0 1 TeXcolorrgb 2581 3313 a SDict begin H.S end 2581 3313 a 0 0 1 TeXcolorrgb Fx(142)p 0 0 1 TeXcolorrgb 2706 3256 a SDict begin H.R end 2706 3256 a 2706 3313 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.142) cvn H.B /ANN pdfmark end 2706 3313 a 0 TeXcolorgray 2154 3412 a Fx(getRo)n(wsize,)p 0 0 1 TeXcolorrgb 2581 3412 a SDict begin H.S end 2581 3412 a 0 0 1 TeXcolorrgb Fx(142)p 0 0 1 TeXcolorrgb 2706 3356 a SDict begin H.R end 2706 3356 a 2706 3412 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.142) cvn H.B /ANN pdfmark end 2706 3412 a 0 TeXcolorgray 2154 3512 a Fx(init,)p 0 0 1 TeXcolorrgb 2307 3513 a SDict begin H.S end 2307 3513 a 0 0 1 TeXcolorrgb -1 x Fx(143)p 0 0 1 TeXcolorrgb 2431 3456 a SDict begin H.R end 2431 3456 a 2431 3512 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.143) cvn H.B /ANN pdfmark end 2431 3512 a 0 TeXcolorgray 2154 3611 a Fx(insertRo)n(ws,)p 0 0 1 TeXcolorrgb 2567 3612 a SDict begin H.S end 2567 3612 a 0 0 1 TeXcolorrgb -1 x Fx(143)p 0 0 1 TeXcolorrgb 2692 3555 a SDict begin H.R end 2692 3555 a 2692 3611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.143) cvn H.B /ANN pdfmark end 2692 3611 a 0 TeXcolorgray 2154 3711 a Fx(updateRo)n(ws,)p 0 0 1 TeXcolorrgb 2604 3712 a SDict begin H.S end 2604 3712 a 0 0 1 TeXcolorrgb -1 x Fx(143)p 0 0 1 TeXcolorrgb 2729 3655 a SDict begin H.R end 2729 3655 a 2729 3711 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.143) cvn H.B /ANN pdfmark end 2729 3711 a 0 TeXcolorgray 1988 3811 a Fx(CC\002ts::T)g(able::NoSuchColumn,)p 0 0 1 TeXcolorrgb 3052 3811 a SDict begin H.S end 3052 3811 a 0 0 1 TeXcolorrgb Fx(144)p 0 0 1 TeXcolorrgb 3176 3754 a SDict begin H.R end 3176 3754 a 3176 3811 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.144) cvn H.B /ANN pdfmark end 3176 3811 a 0 TeXcolorgray 2154 3910 a Fx(NoSuchColumn,)p 0 0 1 TeXcolorrgb 2731 3910 a SDict begin H.S end 2731 3910 a 0 0 1 TeXcolorrgb Fx(144)p 0 0 1 TeXcolorrgb 2856 3854 a SDict begin H.R end 2856 3854 a 2856 3910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.144) cvn H.B /ANN pdfmark end 2856 3910 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2897 3911 a SDict begin H.S end 2897 3911 a 0 0 1 TeXcolorrgb -1 x Fx(145)p 0 0 1 TeXcolorrgb 3022 3854 a SDict begin H.R end 3022 3854 a 3022 3910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.145) cvn H.B /ANN pdfmark end 3022 3910 a 0 TeXcolorgray 1988 4010 a Fx(CantCreate)2154 4110 y(CC\002ts::FITS::CantCreate,)p 0 0 1 TeXcolorrgb 3045 4112 a SDict begin H.S end 3045 4112 a 0 0 1 TeXcolorrgb -2 x Fx(98)p 0 0 1 TeXcolorrgb 3128 4053 a SDict begin H.R end 3128 4053 a 3128 4110 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.98) cvn H.B /ANN pdfmark end 3128 4110 a 0 TeXcolorgray 1988 4209 a Fx(CantOpen)2154 4309 y(CC\002ts::FITS::CantOpen,)p 0 0 1 TeXcolorrgb 3008 4310 a SDict begin H.S end 3008 4310 a 0 0 1 TeXcolorrgb -1 x Fx(100)p 0 0 1 TeXcolorrgb 3132 4253 a SDict begin H.R end 3132 4253 a 3132 4309 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.100) cvn H.B /ANN pdfmark end 3132 4309 a 0 TeXcolorgray 1988 4408 a Fx(Column)2154 4508 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 4509 a SDict begin H.S end 2722 4509 a 0 0 1 TeXcolorrgb -1 x Fx(55)p 0 0 1 TeXcolorrgb 2805 4452 a SDict begin H.R end 2805 4452 a 2805 4508 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.55) cvn H.B /ANN pdfmark end 2805 4508 a 0 TeXcolorgray 1988 4608 a Fx(ExtHDU)2154 4707 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 4708 a SDict begin H.S end 2750 4708 a 0 0 1 TeXcolorrgb -1 x Fx(77)p 0 0 1 TeXcolorrgb 2833 4653 a SDict begin H.R end 2833 4653 a 2833 4707 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.77) cvn H.B /ANN pdfmark end 2833 4707 a 0 TeXcolorgray 1988 4807 a Fx(FITS)2154 4907 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 4908 a SDict begin H.S end 2625 4908 a 0 0 1 TeXcolorrgb -1 x Fx(88)p 0 0 1 TeXcolorrgb 2708 4850 a SDict begin H.R end 2708 4850 a 2708 4907 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.88) cvn H.B /ANN pdfmark end 2708 4907 a 0 TeXcolorgray Fx(\226)p 0 0 1 TeXcolorrgb 2750 4909 a SDict begin H.S end 2750 4909 a 0 0 1 TeXcolorrgb -2 x Fx(92)p 0 0 1 TeXcolorrgb 2833 4850 a SDict begin H.R end 2833 4850 a 2833 4907 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.92) cvn H.B /ANN pdfmark end 2833 4907 a 0 TeXcolorgray 1988 5006 a Fx(FITS)21 b(Exceptions,)p 0 0 1 TeXcolorrgb 2590 5008 a SDict begin H.S end 2590 5008 a 0 0 1 TeXcolorrgb -2 x Fx(39)p 0 0 1 TeXcolorrgb 2673 4950 a SDict begin H.R end 2673 4950 a 2673 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.39) cvn H.B /ANN pdfmark end 2673 5006 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 149 154 TeXDict begin 149 153 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.149) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(INDEX)2472 b(149)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(FITSUtil,)p 0 0 1 TeXcolorrgb 856 523 a SDict begin H.S end 856 523 a 0 0 1 TeXcolorrgb Fx(42)p 0 0 1 TeXcolorrgb 939 467 a SDict begin H.R end 939 467 a 939 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.42) cvn H.B /ANN pdfmark end 939 523 a 0 TeXcolorgray 515 623 a Fx(FitsError)681 722 y(CC\002ts::FitsError,) p 0 0 1 TeXcolorrgb 1281 723 a SDict begin H.S end 1281 723 a 0 0 1 TeXcolorrgb -1 x Fx(103)p 0 0 1 TeXcolorrgb 1405 666 a SDict begin H.R end 1405 666 a 1405 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.103) cvn H.B /ANN pdfmark end 1405 722 a 0 TeXcolorgray 515 822 a Fx(FitsException)681 922 y(CC\002ts::FitsException,)p 0 0 1 TeXcolorrgb 1442 923 a SDict begin H.S end 1442 923 a 0 0 1 TeXcolorrgb -1 x Fx(105)p 0 0 1 TeXcolorrgb 1567 865 a SDict begin H.R end 1567 865 a 1567 922 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.105) cvn H.B /ANN pdfmark end 1567 922 a 0 TeXcolorgray 515 1021 a Fx(FitsF)o(atal)681 1121 y(CC\002ts::FitsF)o(atal,)p 0 0 1 TeXcolorrgb 1270 1122 a SDict begin H.S end 1270 1122 a 0 0 1 TeXcolorrgb -1 x Fx(106)p 0 0 1 TeXcolorrgb 1395 1065 a SDict begin H.R end 1395 1065 a 1395 1121 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.106) cvn H.B /ANN pdfmark end 1395 1121 a 0 TeXcolorgray 515 1220 a Fx(Insuf)n(\002cientElements)681 1320 y (CC\002ts::Column::Insuf)n(\002cientElements,)p 0 0 1 TeXcolorrgb 847 1421 a SDict begin H.S end 847 1421 a 0 0 1 TeXcolorrgb -1 x Fx(65)p 0 0 1 TeXcolorrgb 930 1363 a SDict begin H.R end 930 1363 a 930 1420 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.65) cvn H.B /ANN pdfmark end 930 1420 a 0 TeXcolorgray 515 1519 a Fx(In)m(v)n(alidDataT)-7 b(ype)681 1619 y(CC\002ts::Column::In)m(v)n(alidDataT)g(ype,)p 0 0 1 TeXcolorrgb 1841 1620 a SDict begin H.S end 1841 1620 a 0 0 1 TeXcolorrgb -1 x Fx(66)p 0 0 1 TeXcolorrgb 1924 1563 a SDict begin H.R end 1924 1563 a 1924 1619 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.66) cvn H.B /ANN pdfmark end 1924 1619 a 0 TeXcolorgray 515 1719 a Fx(In)m(v)n (alidExtensionT)g(ype)681 1818 y(CC\002ts::HDU::In)m(v)n (alidExtensionT)g(ype,)p 0 0 1 TeXcolorrgb 847 1918 a SDict begin H.S end 847 1918 a 0 0 1 TeXcolorrgb Fx(122)p 0 0 1 TeXcolorrgb 971 1862 a SDict begin H.R end 971 1862 a 971 1918 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.122) cvn H.B /ANN pdfmark end 971 1918 a 0 TeXcolorgray 515 2017 a Fx(In)m(v)n(alidImageDataT)g(ype)681 2117 y(CC\002ts::HDU::In)m(v)n(alidImageDataT)g(ype,)p 0 0 1 TeXcolorrgb 847 2218 a SDict begin H.S end 847 2218 a 0 0 1 TeXcolorrgb -1 x Fx(123)p 0 0 1 TeXcolorrgb 971 2160 a SDict begin H.R end 971 2160 a 971 2217 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.123) cvn H.B /ANN pdfmark end 971 2217 a 0 TeXcolorgray 515 2316 a Fx(In)m(v)n(alidNumberOfRo) n(ws)681 2416 y(CC\002ts::Column::In)m(v)n(alidNumberOfRo)n(ws,)p 0 0 1 TeXcolorrgb 847 2517 a SDict begin H.S end 847 2517 a 0 0 1 TeXcolorrgb -1 x Fx(67)p 0 0 1 TeXcolorrgb 930 2459 a SDict begin H.R end 930 2459 a 930 2516 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.67) cvn H.B /ANN pdfmark end 930 2516 a 0 TeXcolorgray 515 2615 a Fx(In)m(v)n(alidRo)n (wNumber)681 2715 y(CC\002ts::Column::In)m(v)n(alidRo)n(wNumber,)p 0 0 1 TeXcolorrgb 847 2815 a SDict begin H.S end 847 2815 a 0 0 1 TeXcolorrgb -1 x Fx(68)p 0 0 1 TeXcolorrgb 930 2758 a SDict begin H.R end 930 2758 a 930 2814 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.68) cvn H.B /ANN pdfmark end 930 2814 a 0 TeXcolorgray 515 2914 a Fx(In)m(v)n(alidRo)n (wP)o(arameter)681 3014 y(CC\002ts::Column::In)m(v)n(alidRo)n(wP)o (arameter,)p 0 0 1 TeXcolorrgb 847 3114 a SDict begin H.S end 847 3114 a 0 0 1 TeXcolorrgb -1 x Fx(70)p 0 0 1 TeXcolorrgb 930 3057 a SDict begin H.R end 930 3057 a 930 3113 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.70) cvn H.B /ANN pdfmark end 930 3113 a 0 TeXcolorgray 515 3213 a Fx(K)n(e)o(yw)o(ord)681 3313 y(CC\002ts::K)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 1286 3315 a SDict begin H.S end 1286 3315 a 0 0 1 TeXcolorrgb -2 x Fx(129)p 0 0 1 TeXcolorrgb 1410 3256 a SDict begin H.R end 1410 3256 a 1410 3313 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.129) cvn H.B /ANN pdfmark end 1410 3313 a 0 TeXcolorgray 515 3412 a Fx(NoNullV)e(alue) 681 3512 y(CC\002ts::Column::NoNullV)g(alue,)p 0 0 1 TeXcolorrgb 1733 3513 a SDict begin H.S end 1733 3513 a 0 0 1 TeXcolorrgb -1 x Fx(71)p 0 0 1 TeXcolorrgb 1816 3456 a SDict begin H.R end 1816 3456 a 1816 3512 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.71) cvn H.B /ANN pdfmark end 1816 3512 a 0 TeXcolorgray 681 3611 a Fx (CC\002ts::HDU::NoNullV)g(alue,)p 0 0 1 TeXcolorrgb 1645 3611 a SDict begin H.S end 1645 3611 a 0 0 1 TeXcolorrgb Fx(124)p 0 0 1 TeXcolorrgb 1769 3555 a SDict begin H.R end 1769 3555 a 1769 3611 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.124) cvn H.B /ANN pdfmark end 1769 3611 a 0 TeXcolorgray 515 3711 a Fx(NoSuchColumn)681 3811 y(CC\002ts::T)i (able::NoSuchColumn,)p 0 0 1 TeXcolorrgb 1760 3811 a SDict begin H.S end 1760 3811 a 0 0 1 TeXcolorrgb Fx(144)p 0 0 1 TeXcolorrgb 1885 3754 a SDict begin H.R end 1885 3754 a 1885 3811 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.144) cvn H.B /ANN pdfmark end 1885 3811 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 847 3911 a SDict begin H.S end 847 3911 a 0 0 1 TeXcolorrgb -1 x Fx(145)p 0 0 1 TeXcolorrgb 971 3854 a SDict begin H.R end 971 3854 a 971 3910 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.145) cvn H.B /ANN pdfmark end 971 3910 a 0 TeXcolorgray 515 4010 a Fx(NoSuchHDU)681 4110 y(CC\002ts::FITS::NoSuchHDU,)p 0 0 1 TeXcolorrgb 1645 4111 a SDict begin H.S end 1645 4111 a 0 0 1 TeXcolorrgb -1 x Fx(101)p 0 0 1 TeXcolorrgb 1769 4053 a SDict begin H.R end 1769 4053 a 1769 4110 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.101) cvn H.B /ANN pdfmark end 1769 4110 a 0 TeXcolorgray 515 4209 a Fx(NoSuchK)n(e)o (yw)o(ord)681 4309 y(CC\002ts::HDU::NoSuchK)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 1779 4310 a SDict begin H.S end 1779 4310 a 0 0 1 TeXcolorrgb -1 x Fx(125)p 0 0 1 TeXcolorrgb 1904 4253 a SDict begin H.R end 1904 4253 a 1904 4309 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.125) cvn H.B /ANN pdfmark end 1904 4309 a 0 TeXcolorgray 515 4408 a Fx (OperationNotSupported)681 4508 y (CC\002ts::FITS::OperationNotSupported,)p 0 0 1 TeXcolorrgb 847 4609 a SDict begin H.S end 847 4609 a 0 0 1 TeXcolorrgb -1 x Fx(102)p 0 0 1 TeXcolorrgb 971 4551 a SDict begin H.R end 971 4551 a 971 4608 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.102) cvn H.B /ANN pdfmark end 971 4608 a 0 TeXcolorgray 515 4707 a Fx(PHDU)681 4807 y(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 1207 4808 a SDict begin H.S end 1207 4808 a 0 0 1 TeXcolorrgb -1 x Fx(134)p 0 0 1 TeXcolorrgb 1331 4751 a SDict begin H.R end 1331 4751 a 1331 4807 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.134) cvn H.B /ANN pdfmark end 1331 4807 a 0 TeXcolorgray 515 4907 a Fx(RangeError)681 5006 y(CC\002ts::Column::RangeError,)p 0 0 1 TeXcolorrgb 1682 5007 a SDict begin H.S end 1682 5007 a 0 0 1 TeXcolorrgb -1 x Fx(72)p 0 0 1 TeXcolorrgb 1765 4950 a SDict begin H.R end 1765 4950 a 1765 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.72) cvn H.B /ANN pdfmark end 1765 5006 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 1988 523 a Fx(T)g(able)2154 623 y(CC\002ts::T)g(able,)p 0 0 1 TeXcolorrgb 2637 624 a SDict begin H.S end 2637 624 a 0 0 1 TeXcolorrgb -1 x Fx(140)p 0 0 1 TeXcolorrgb 2761 566 a SDict begin H.R end 2761 566 a 2761 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.140) cvn H.B /ANN pdfmark end 2761 623 a 0 TeXcolorgray 1988 722 a Fx(V)e(alueT)i(ype)2154 822 y(CC\002ts,)p 0 0 1 TeXcolorrgb 2408 822 a SDict begin H.S end 2408 822 a 0 0 1 TeXcolorrgb Fx(41)p 0 0 1 TeXcolorrgb 2491 766 a SDict begin H.R end 2491 766 a 2491 822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.41) cvn H.B /ANN pdfmark end 2491 822 a 0 TeXcolorgray 1988 922 a Fx(WrongColumnT)g(ype)2154 1021 y(CC\002ts::Column::WrongColumnT) g(ype,)p 0 0 1 TeXcolorrgb 2320 1122 a SDict begin H.S end 2320 1122 a 0 0 1 TeXcolorrgb -1 x Fx(73)p 0 0 1 TeXcolorrgb 2403 1065 a SDict begin H.R end 2403 1065 a 2403 1121 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.73) cvn H.B /ANN pdfmark end 2403 1121 a 0 TeXcolorgray 1988 1220 a Fx(WrongExtensionT)g(ype)2154 1320 y (CC\002ts::ExtHDU::WrongExtensionT)g(ype,)p 0 0 1 TeXcolorrgb 2320 1421 a SDict begin H.S end 2320 1421 a 0 0 1 TeXcolorrgb -1 x Fx(84)p 0 0 1 TeXcolorrgb 2403 1363 a SDict begin H.R end 2403 1363 a 2403 1420 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.84) cvn H.B /ANN pdfmark end 2403 1420 a 0 TeXcolorgray 1988 1602 a Fx(addColumn)2154 1702 y(CC\002ts::AsciiT)g(able,)p 0 0 1 TeXcolorrgb 2812 1703 a SDict begin H.S end 2812 1703 a 0 0 1 TeXcolorrgb -1 x Fx(45)p 0 0 1 TeXcolorrgb 2895 1646 a SDict begin H.R end 2895 1646 a 2895 1702 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.45) cvn H.B /ANN pdfmark end 2895 1702 a 0 TeXcolorgray 2154 1802 a Fx(CC\002ts::BinT)g(able,)p 0 0 1 TeXcolorrgb 2757 1804 a SDict begin H.S end 2757 1804 a 0 0 1 TeXcolorrgb -2 x Fx(49)p 0 0 1 TeXcolorrgb 2840 1745 a SDict begin H.R end 2840 1745 a 2840 1802 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.49) cvn H.B /ANN pdfmark end 2840 1802 a 0 TeXcolorgray 2154 1901 a Fx(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 1902 a SDict begin H.S end 2750 1902 a 0 0 1 TeXcolorrgb -1 x Fx(78)p 0 0 1 TeXcolorrgb 2833 1845 a SDict begin H.R end 2833 1845 a 2833 1901 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.78) cvn H.B /ANN pdfmark end 2833 1901 a 0 TeXcolorgray 1988 2001 a Fx(addImage)2154 2100 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 2102 a SDict begin H.S end 2625 2102 a 0 0 1 TeXcolorrgb -2 x Fx(93)p 0 0 1 TeXcolorrgb 2708 2044 a SDict begin H.R end 2708 2044 a 2708 2100 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.93) cvn H.B /ANN pdfmark end 2708 2100 a 0 TeXcolorgray 1988 2200 a Fx(addK)n(e)o(y)2154 2300 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 2301 a SDict begin H.S end 2634 2301 a 0 0 1 TeXcolorrgb -1 x Fx(116)p 0 0 1 TeXcolorrgb 2759 2243 a SDict begin H.R end 2759 2243 a 2759 2300 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.116) cvn H.B /ANN pdfmark end 2759 2300 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2800 2301 a SDict begin H.S end 2800 2301 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 2925 2243 a SDict begin H.R end 2925 2243 a 2925 2300 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 2925 2300 a 0 TeXcolorgray 1988 2399 a Fx(addNullV)e(alue)2154 2499 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 2500 a SDict begin H.S end 2722 2500 a 0 0 1 TeXcolorrgb -1 x Fx(55)p 0 0 1 TeXcolorrgb 2805 2443 a SDict begin H.R end 2805 2443 a 2805 2499 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.55) cvn H.B /ANN pdfmark end 2805 2499 a 0 TeXcolorgray 1988 2599 a Fx(addT)i(able)2154 2698 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 2700 a SDict begin H.S end 2625 2700 a 0 0 1 TeXcolorrgb -2 x Fx(93)p 0 0 1 TeXcolorrgb 2708 2642 a SDict begin H.R end 2708 2642 a 2708 2698 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.93) cvn H.B /ANN pdfmark end 2708 2698 a 0 TeXcolorgray 1988 2798 a Fx(axis)2154 2897 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 2898 a SDict begin H.S end 2634 2898 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 2759 2841 a SDict begin H.R end 2759 2841 a 2759 2897 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 2759 2897 a 0 TeXcolorgray 1988 3080 a Fx(bitpix)2154 3180 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 3181 a SDict begin H.S end 2634 3181 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 2759 3123 a SDict begin H.R end 2759 3123 a 2759 3180 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 2759 3180 a 0 TeXcolorgray 1988 3362 a Fx(column)2154 3462 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 3463 a SDict begin H.S end 2750 3463 a 0 0 1 TeXcolorrgb -1 x Fx(78)p 0 0 1 TeXcolorrgb 2833 3406 a SDict begin H.R end 2833 3406 a 2833 3462 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.78) cvn H.B /ANN pdfmark end 2833 3462 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2874 3464 a SDict begin H.S end 2874 3464 a 0 0 1 TeXcolorrgb -2 x Fx(79)p 0 0 1 TeXcolorrgb 2957 3406 a SDict begin H.R end 2957 3406 a 2957 3462 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.79) cvn H.B /ANN pdfmark end 2957 3462 a 0 TeXcolorgray 2154 3562 a Fx(CC\002ts::T)g(able,)p 0 0 1 TeXcolorrgb 2637 3563 a SDict begin H.S end 2637 3563 a 0 0 1 TeXcolorrgb -1 x Fx(140)p 0 0 1 TeXcolorrgb 2761 3505 a SDict begin H.R end 2761 3505 a 2761 3562 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.140) cvn H.B /ANN pdfmark end 2761 3562 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2803 3562 a SDict begin H.S end 2803 3562 a 0 0 1 TeXcolorrgb Fx(141)p 0 0 1 TeXcolorrgb 2927 3505 a SDict begin H.R end 2927 3505 a 2927 3562 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.141) cvn H.B /ANN pdfmark end 2927 3562 a 0 TeXcolorgray 1988 3661 a Fx(cop)o(y)2154 3761 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 3763 a SDict begin H.S end 2625 3763 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 2708 3705 a SDict begin H.R end 2708 3705 a 2708 3761 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 2708 3761 a 0 TeXcolorgray 1988 3861 a Fx(cop)o(yAllK)n(e)o(ys)2154 3960 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 3961 a SDict begin H.S end 2634 3961 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 2759 3904 a SDict begin H.R end 2759 3904 a 2759 3960 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 2759 3960 a 0 TeXcolorgray 1988 4060 a Fx(currentExtensionName)2154 4159 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 4161 a SDict begin H.S end 2625 4161 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 2708 4103 a SDict begin H.R end 2708 4103 a 2708 4159 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 2708 4159 a 0 TeXcolorgray 1988 4342 a Fx(deleteColumn)2154 4442 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 4444 a SDict begin H.S end 2750 4444 a 0 0 1 TeXcolorrgb -2 x Fx(79)p 0 0 1 TeXcolorrgb 2833 4385 a SDict begin H.R end 2833 4385 a 2833 4442 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.79) cvn H.B /ANN pdfmark end 2833 4442 a 0 TeXcolorgray 2154 4541 a Fx(CC\002ts::T)g(able,)p 0 0 1 TeXcolorrgb 2637 4541 a SDict begin H.S end 2637 4541 a 0 0 1 TeXcolorrgb Fx(141)p 0 0 1 TeXcolorrgb 2761 4485 a SDict begin H.R end 2761 4485 a 2761 4541 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.141) cvn H.B /ANN pdfmark end 2761 4541 a 0 TeXcolorgray 1988 4641 a Fx(deleteExtension)2154 4741 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 4743 a SDict begin H.S end 2625 4743 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 2708 4684 a SDict begin H.R end 2708 4684 a 2708 4741 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 2708 4741 a 0 TeXcolorgray 1988 4840 a Fx(deleteK)n(e)o(y)2154 4940 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 4941 a SDict begin H.S end 2634 4941 a 0 0 1 TeXcolorrgb -1 x Fx(117)p 0 0 1 TeXcolorrgb 2759 4884 a SDict begin H.R end 2759 4884 a 2759 4940 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.117) cvn H.B /ANN pdfmark end 2759 4940 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 150 155 TeXDict begin 150 154 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.150) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(INDEX)2472 b(150)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(deleteRo)n(ws)681 623 y(CC\002ts::T)-7 b(able,)p 0 0 1 TeXcolorrgb 1163 623 a SDict begin H.S end 1163 623 a 0 0 1 TeXcolorrgb Fx(142)p 0 0 1 TeXcolorrgb 1288 566 a SDict begin H.R end 1288 566 a 1288 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.142) cvn H.B /ANN pdfmark end 1288 623 a 0 TeXcolorgray 515 722 a Fx(destro)o(y)681 822 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 824 a SDict begin H.S end 1151 824 a 0 0 1 TeXcolorrgb -2 x Fx(94)p 0 0 1 TeXcolorrgb 1234 766 a SDict begin H.R end 1234 766 a 1234 822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.94) cvn H.B /ANN pdfmark end 1234 822 a 0 TeXcolorgray 515 922 a Fx(dimen)681 1021 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 1022 a SDict begin H.S end 1248 1022 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1331 965 a SDict begin H.R end 1331 965 a 1331 1021 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1331 1021 a 0 TeXcolorgray 515 1121 a Fx(display)681 1220 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 1221 a SDict begin H.S end 1248 1221 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1331 1164 a SDict begin H.R end 1331 1164 a 1331 1220 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1331 1220 a 0 TeXcolorgray 515 1403 a Fx(e)o(xtension)681 1503 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 1505 a SDict begin H.S end 1151 1505 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 1234 1446 a SDict begin H.R end 1234 1446 a 1234 1503 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 1234 1503 a 0 TeXcolorgray 515 1685 a Fx(\002lter)681 1785 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 1787 a SDict begin H.S end 1151 1787 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 1234 1729 a SDict begin H.R end 1234 1729 a 1234 1785 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 1234 1785 a 0 TeXcolorgray 515 1885 a Fx(\003ush)681 1984 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 1986 a SDict begin H.S end 1151 1986 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 1234 1928 a SDict begin H.R end 1234 1928 a 1234 1984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 1234 1984 a 0 TeXcolorgray 515 2084 a Fx(format)681 2183 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 2184 a SDict begin H.S end 1248 2184 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1331 2127 a SDict begin H.R end 1331 2127 a 1331 2183 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1331 2183 a 0 TeXcolorgray 515 2366 a Fx(getChecksum)681 2466 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 2467 a SDict begin H.S end 1161 2467 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1285 2409 a SDict begin H.R end 1285 2409 a 1285 2466 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1285 2466 a 0 TeXcolorgray 515 2565 a Fx(getComments)681 2665 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 2666 a SDict begin H.S end 1161 2666 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1285 2609 a SDict begin H.R end 1285 2609 a 1285 2665 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1285 2665 a 0 TeXcolorgray 515 2765 a Fx(getHistory)681 2864 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 2865 a SDict begin H.S end 1161 2865 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1285 2808 a SDict begin H.R end 1285 2808 a 1285 2864 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1285 2864 a 0 TeXcolorgray 515 2964 a Fx(getNullV)e(alue)681 3064 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 3065 a SDict begin H.S end 1248 3065 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 1331 3007 a SDict begin H.R end 1331 3007 a 1331 3064 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 1331 3064 a 0 TeXcolorgray 515 3163 a Fx(getRo)n(wsize) 681 3263 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 1276 3264 a SDict begin H.S end 1276 3264 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 1359 3206 a SDict begin H.R end 1359 3206 a 1359 3263 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 1359 3263 a 0 TeXcolorgray 681 3362 a Fx(CC\002ts::T)i(able,)p 0 0 1 TeXcolorrgb 1163 3362 a SDict begin H.S end 1163 3362 a 0 0 1 TeXcolorrgb Fx(142)p 0 0 1 TeXcolorrgb 1288 3306 a SDict begin H.R end 1288 3306 a 1288 3362 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.142) cvn H.B /ANN pdfmark end 1288 3362 a 0 TeXcolorgray 515 3462 a Fx(getT)m(ileDimensions) 681 3562 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 3564 a SDict begin H.S end 1151 3564 a 0 0 1 TeXcolorrgb -2 x Fx(95)p 0 0 1 TeXcolorrgb 1234 3505 a SDict begin H.R end 1234 3505 a 1234 3562 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.95) cvn H.B /ANN pdfmark end 1234 3562 a 0 TeXcolorgray 515 3744 a Fx(init)681 3844 y(CC\002ts::T)g(able,)p 0 0 1 TeXcolorrgb 1163 3845 a SDict begin H.S end 1163 3845 a 0 0 1 TeXcolorrgb -1 x Fx(143)p 0 0 1 TeXcolorrgb 1288 3788 a SDict begin H.R end 1288 3788 a 1288 3844 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.143) cvn H.B /ANN pdfmark end 1288 3844 a 0 TeXcolorgray 515 3944 a Fx(initRead)681 4043 y(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 1207 4044 a SDict begin H.S end 1207 4044 a 0 0 1 TeXcolorrgb -1 x Fx(134)p 0 0 1 TeXcolorrgb 1331 3987 a SDict begin H.R end 1331 3987 a 1331 4043 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.134) cvn H.B /ANN pdfmark end 1331 4043 a 0 TeXcolorgray 515 4143 a Fx(insertRo)n(ws)681 4242 y(CC\002ts::T)g(able,)p 0 0 1 TeXcolorrgb 1163 4243 a SDict begin H.S end 1163 4243 a 0 0 1 TeXcolorrgb -1 x Fx(143)p 0 0 1 TeXcolorrgb 1288 4186 a SDict begin H.R end 1288 4186 a 1288 4242 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.143) cvn H.B /ANN pdfmark end 1288 4242 a 0 TeXcolorgray 515 4342 a Fx(isCompressed)681 4442 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 1276 4443 a SDict begin H.S end 1276 4443 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 1359 4385 a SDict begin H.R end 1359 4385 a 1359 4442 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 1359 4442 a 0 TeXcolorgray 515 4624 a Fx(k)o(e)o(yw)o(ordCate)o(gories)681 4724 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 4725 a SDict begin H.S end 1161 4725 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 1285 4668 a SDict begin H.R end 1285 4668 a 1285 4724 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 1285 4724 a 0 TeXcolorgray 515 4907 a Fx(mak)o(eThisCurrent)681 5006 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 1276 5007 a SDict begin H.S end 1276 5007 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 1359 4950 a SDict begin H.R end 1359 4950 a 1359 5006 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 1359 5006 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 2154 523 a Fx(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 524 a SDict begin H.S end 2634 524 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 2759 467 a SDict begin H.R end 2759 467 a 2759 523 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 2759 523 a 0 TeXcolorgray 1988 623 a Fx(message)2154 722 y (CC\002ts::FitsException,)p 0 0 1 TeXcolorrgb 2916 723 a SDict begin H.S end 2916 723 a 0 0 1 TeXcolorrgb -1 x Fx(105)p 0 0 1 TeXcolorrgb 3040 666 a SDict begin H.R end 3040 666 a 3040 722 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.105) cvn H.B /ANN pdfmark end 3040 722 a 0 TeXcolorgray 1988 905 a Fx(numCols)2154 1005 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 1006 a SDict begin H.S end 2750 1006 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2833 948 a SDict begin H.R end 2833 948 a 2833 1005 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2833 1005 a 0 TeXcolorgray 1988 1187 a Fx(operator)p Fu(<<)2154 1287 y Fx(CC\002ts,)p 0 0 1 TeXcolorrgb 2408 1287 a SDict begin H.S end 2408 1287 a 0 0 1 TeXcolorrgb Fx(41)p 0 0 1 TeXcolorrgb 2491 1231 a SDict begin H.R end 2491 1231 a 2491 1287 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.41) cvn H.B /ANN pdfmark end 2491 1287 a 0 TeXcolorgray 1988 1469 a Fx(read)2154 1569 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 1570 a SDict begin H.S end 2722 1570 a 0 0 1 TeXcolorrgb -1 x Fx(56)p 0 0 1 TeXcolorrgb 2805 1513 a SDict begin H.R end 2805 1513 a 2805 1569 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.56) cvn H.B /ANN pdfmark end 2805 1569 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2846 1570 a SDict begin H.S end 2846 1570 a 0 0 1 TeXcolorrgb -1 x Fx(57)p 0 0 1 TeXcolorrgb 2930 1513 a SDict begin H.R end 2930 1513 a 2930 1569 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.57) cvn H.B /ANN pdfmark end 2930 1569 a 0 TeXcolorgray 2154 1669 a Fx(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 1670 a SDict begin H.S end 2750 1670 a 0 0 1 TeXcolorrgb -1 x Fx(80)p 0 0 1 TeXcolorrgb 2833 1612 a SDict begin H.R end 2833 1612 a 2833 1669 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.80) cvn H.B /ANN pdfmark end 2833 1669 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2874 1670 a SDict begin H.S end 2874 1670 a 0 0 1 TeXcolorrgb -1 x Fx(81)p 0 0 1 TeXcolorrgb 2957 1612 a SDict begin H.R end 2957 1612 a 2957 1669 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.81) cvn H.B /ANN pdfmark end 2957 1669 a 0 TeXcolorgray 2154 1768 a Fx(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 1770 a SDict begin H.S end 2625 1770 a 0 0 1 TeXcolorrgb -2 x Fx(96)p 0 0 1 TeXcolorrgb 2708 1712 a SDict begin H.R end 2708 1712 a 2708 1768 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.96) cvn H.B /ANN pdfmark end 2708 1768 a 0 TeXcolorgray 2154 1868 a Fx(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 2680 1869 a SDict begin H.S end 2680 1869 a 0 0 1 TeXcolorrgb -1 x Fx(134)p 0 0 1 TeXcolorrgb 2805 1812 a SDict begin H.R end 2805 1812 a 2805 1868 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.134) cvn H.B /ANN pdfmark end 2805 1868 a 0 TeXcolorgray Fx(,)p 0 0 1 TeXcolorrgb 2846 1869 a SDict begin H.S end 2846 1869 a 0 0 1 TeXcolorrgb -1 x Fx(135)p 0 0 1 TeXcolorrgb 2971 1812 a SDict begin H.R end 2971 1812 a 2971 1868 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.135) cvn H.B /ANN pdfmark end 2971 1868 a 0 TeXcolorgray 1988 1968 a Fx(readAllK)n(e)o(ys)2154 2067 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 2068 a SDict begin H.S end 2634 2068 a 0 0 1 TeXcolorrgb -1 x Fx(118)p 0 0 1 TeXcolorrgb 2759 2011 a SDict begin H.R end 2759 2011 a 2759 2067 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.118) cvn H.B /ANN pdfmark end 2759 2067 a 0 TeXcolorgray 1988 2167 a Fx(readArrays)2154 2267 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 2268 a SDict begin H.S end 2722 2268 a 0 0 1 TeXcolorrgb -1 x Fx(58)p 0 0 1 TeXcolorrgb 2805 2210 a SDict begin H.R end 2805 2210 a 2805 2267 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.58) cvn H.B /ANN pdfmark end 2805 2267 a 0 TeXcolorgray 1988 2366 a Fx(readData)2154 2466 y(CC\002ts::AsciiT)g(able,)p 0 0 1 TeXcolorrgb 2812 2467 a SDict begin H.S end 2812 2467 a 0 0 1 TeXcolorrgb -1 x Fx(45)p 0 0 1 TeXcolorrgb 2895 2409 a SDict begin H.R end 2895 2409 a 2895 2466 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.45) cvn H.B /ANN pdfmark end 2895 2466 a 0 TeXcolorgray 2154 2565 a Fx(CC\002ts::BinT)g(able,)p 0 0 1 TeXcolorrgb 2757 2567 a SDict begin H.S end 2757 2567 a 0 0 1 TeXcolorrgb -2 x Fx(49)p 0 0 1 TeXcolorrgb 2840 2509 a SDict begin H.R end 2840 2509 a 2840 2565 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.49) cvn H.B /ANN pdfmark end 2840 2565 a 0 TeXcolorgray 2154 2665 a Fx(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 2666 a SDict begin H.S end 2722 2666 a 0 0 1 TeXcolorrgb -1 x Fx(58)p 0 0 1 TeXcolorrgb 2805 2609 a SDict begin H.R end 2805 2609 a 2805 2665 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.58) cvn H.B /ANN pdfmark end 2805 2665 a 0 TeXcolorgray 2154 2765 a Fx(CC\002ts::ImageExt,)p 0 0 1 TeXcolorrgb 2777 2766 a SDict begin H.S end 2777 2766 a 0 0 1 TeXcolorrgb -1 x Fx(127)p 0 0 1 TeXcolorrgb 2902 2708 a SDict begin H.R end 2902 2708 a 2902 2765 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.127) cvn H.B /ANN pdfmark end 2902 2765 a 0 TeXcolorgray 2154 2864 a Fx(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 2680 2865 a SDict begin H.S end 2680 2865 a 0 0 1 TeXcolorrgb -1 x Fx(135)p 0 0 1 TeXcolorrgb 2805 2808 a SDict begin H.R end 2805 2808 a 2805 2864 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.135) cvn H.B /ANN pdfmark end 2805 2864 a 0 TeXcolorgray 1988 2964 a Fx(readHduName)2154 3064 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 3065 a SDict begin H.S end 2750 3065 a 0 0 1 TeXcolorrgb -1 x Fx(81)p 0 0 1 TeXcolorrgb 2833 3007 a SDict begin H.R end 2833 3007 a 2833 3064 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.81) cvn H.B /ANN pdfmark end 2833 3064 a 0 TeXcolorgray 1988 3163 a Fx(readK)n(e)o(y)2154 3263 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 3265 a SDict begin H.S end 2634 3265 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 2759 3206 a SDict begin H.R end 2759 3206 a 2759 3263 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 2759 3263 a 0 TeXcolorgray 1988 3362 a Fx(readK)n(e)o(ys)2154 3462 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 3464 a SDict begin H.S end 2634 3464 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 2759 3406 a SDict begin H.R end 2759 3406 a 2759 3462 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 2759 3462 a 0 TeXcolorgray 1988 3562 a Fx(resetRead)2154 3661 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 3663 a SDict begin H.S end 2722 3663 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 2805 3605 a SDict begin H.R end 2805 3605 a 2805 3661 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 2805 3661 a 0 TeXcolorgray 1988 3761 a Fx(ro)n(ws)2154 3861 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 3863 a SDict begin H.S end 2722 3863 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 2805 3804 a SDict begin H.R end 2805 3804 a 2805 3861 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 2805 3861 a 0 TeXcolorgray 2154 3960 a Fx(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 2750 3961 a SDict begin H.S end 2750 3961 a 0 0 1 TeXcolorrgb -1 x Fx(82)p 0 0 1 TeXcolorrgb 2833 3904 a SDict begin H.R end 2833 3904 a 2833 3960 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.82) cvn H.B /ANN pdfmark end 2833 3960 a 0 TeXcolorgray 1988 4143 a Fx(scale)2154 4242 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 2722 4244 a SDict begin H.S end 2722 4244 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 2805 4186 a SDict begin H.R end 2805 4186 a 2805 4242 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 2805 4242 a 0 TeXcolorgray 2154 4342 a Fx(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 2634 4344 a SDict begin H.S end 2634 4344 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 2759 4286 a SDict begin H.R end 2759 4286 a 2759 4342 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 2759 4342 a 0 TeXcolorgray 2154 4442 a Fx(CC\002ts::ImageExt,)p 0 0 1 TeXcolorrgb 2777 4443 a SDict begin H.S end 2777 4443 a 0 0 1 TeXcolorrgb -1 x Fx(127)p 0 0 1 TeXcolorrgb 2902 4385 a SDict begin H.R end 2902 4385 a 2902 4442 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.127) cvn H.B /ANN pdfmark end 2902 4442 a 0 TeXcolorgray 2154 4541 a Fx(CC\002ts::PHDU,)p 0 0 1 TeXcolorrgb 2680 4542 a SDict begin H.S end 2680 4542 a 0 0 1 TeXcolorrgb -1 x Fx(135)p 0 0 1 TeXcolorrgb 2805 4485 a SDict begin H.R end 2805 4485 a 2805 4541 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.135) cvn H.B /ANN pdfmark end 2805 4541 a 0 TeXcolorgray 1988 4641 a Fx(setCompressionT)g(ype)2154 4741 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 4743 a SDict begin H.S end 2625 4743 a 0 0 1 TeXcolorrgb -2 x Fx(97)p 0 0 1 TeXcolorrgb 2708 4684 a SDict begin H.R end 2708 4684 a 2708 4741 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.97) cvn H.B /ANN pdfmark end 2708 4741 a 0 TeXcolorgray 1988 4840 a Fx(setNoiseBits)2154 4940 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 2625 4942 a SDict begin H.S end 2625 4942 a 0 0 1 TeXcolorrgb -2 x Fx(97)p 0 0 1 TeXcolorrgb 2708 4884 a SDict begin H.R end 2708 4884 a 2708 4940 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.97) cvn H.B /ANN pdfmark end 2708 4940 a 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o(or)e(CC\002ts)h(by)g(Doxygen) p 0 TeXcolorgray eop end %%Page: 151 156 TeXDict begin 151 155 bop 0 TeXcolorgray 0 0 a SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end 0 0 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.S end 515 232 a 0 TeXcolorgray 0 TeXcolorgray 515 232 a SDict begin H.R end 515 232 a 515 232 a SDict begin [ /View [/XYZ H.V] /Dest (page.151) cvn H.B /DEST pdfmark end 515 232 a 0 TeXcolorgray -29 x Fy(INDEX)2472 b(151)p 515 236 2865 4 v 0 TeXcolorgray 515 523 a Fx(setT)m(ileDimensions)681 623 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 625 a SDict begin H.S end 1151 625 a 0 0 1 TeXcolorrgb -2 x Fx(97)p 0 0 1 TeXcolorrgb 1234 566 a SDict begin H.R end 1234 566 a 1234 623 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.97) cvn H.B /ANN pdfmark end 1234 623 a 0 TeXcolorgray 515 722 a Fx(setV)-9 b(alue)681 822 y(CC\002ts::K)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 1286 823 a SDict begin H.S end 1286 823 a 0 0 1 TeXcolorrgb -1 x Fx(130)p 0 0 1 TeXcolorrgb 1410 766 a SDict begin H.R end 1410 766 a 1410 822 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.130) cvn H.B /ANN pdfmark end 1410 822 a 0 TeXcolorgray 515 922 a Fx(suppressScaling)681 1021 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 1023 a SDict begin H.S end 1161 1023 a 0 0 1 TeXcolorrgb -2 x Fx(119)p 0 0 1 TeXcolorrgb 1285 965 a SDict begin H.R end 1285 965 a 1285 1021 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.119) cvn H.B /ANN pdfmark end 1285 1021 a 0 TeXcolorgray 515 1204 a Fx(updateChecksum)681 1303 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 1304 a SDict begin H.S end 1161 1304 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1285 1247 a SDict begin H.R end 1285 1247 a 1285 1303 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1285 1303 a 0 TeXcolorgray 515 1403 a Fx(updateRo)n(ws) 681 1503 y(CC\002ts::T)i(able,)p 0 0 1 TeXcolorrgb 1163 1504 a SDict begin H.S end 1163 1504 a 0 0 1 TeXcolorrgb -1 x Fx(143)p 0 0 1 TeXcolorrgb 1288 1446 a SDict begin H.R end 1288 1446 a 1288 1503 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.143) cvn H.B /ANN pdfmark end 1288 1503 a 0 TeXcolorgray 515 1685 a Fx(v)n(alue)681 1785 y(CC\002ts::K)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 1286 1786 a SDict begin H.S end 1286 1786 a 0 0 1 TeXcolorrgb -1 x Fx(130)p 0 0 1 TeXcolorrgb 1410 1729 a SDict begin H.R end 1410 1729 a 1410 1785 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.130) cvn H.B /ANN pdfmark end 1410 1785 a 0 TeXcolorgray 515 1885 a Fx(v)o(erboseMode)681 1984 y(CC\002ts::FITS,)p 0 0 1 TeXcolorrgb 1151 1986 a SDict begin H.S end 1151 1986 a 0 0 1 TeXcolorrgb -2 x Fx(98)p 0 0 1 TeXcolorrgb 1234 1928 a SDict begin H.R end 1234 1928 a 1234 1984 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.98) cvn H.B /ANN pdfmark end 1234 1984 a 0 TeXcolorgray 515 2084 a Fx(v)o(erifyChecksum)681 2183 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 2184 a SDict begin H.S end 1161 2184 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1285 2127 a SDict begin H.R end 1285 2127 a 1285 2183 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1285 2183 a 0 TeXcolorgray 515 2366 a Fx(write)681 2466 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 2468 a SDict begin H.S end 1248 2468 a 0 0 1 TeXcolorrgb -2 x Fx(59)p 0 0 1 TeXcolorrgb 1331 2409 a SDict begin H.R end 1331 2409 a 1331 2466 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.59) cvn H.B /ANN pdfmark end 1331 2466 a 0 TeXcolorgray Fx(\226)p 0 0 1 TeXcolorrgb 1373 2467 a SDict begin H.S end 1373 2467 a 0 0 1 TeXcolorrgb -1 x Fx(64)p 0 0 1 TeXcolorrgb 1456 2409 a SDict begin H.R end 1456 2409 a 1456 2466 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.64) cvn H.B /ANN pdfmark end 1456 2466 a 0 TeXcolorgray 681 2565 a Fx(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 1276 2566 a SDict begin H.S end 1276 2566 a 0 0 1 TeXcolorrgb -1 x Fx(82)p 0 0 1 TeXcolorrgb 1359 2509 a SDict begin H.R end 1359 2509 a 1359 2565 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.82) cvn H.B /ANN pdfmark end 1359 2565 a 0 TeXcolorgray 681 2665 a Fx(CC\002ts::K)n(e)o(yw)o(ord,)p 0 0 1 TeXcolorrgb 1286 2666 a SDict begin H.S end 1286 2666 a 0 0 1 TeXcolorrgb -1 x Fx(130)p 0 0 1 TeXcolorrgb 1410 2609 a SDict begin H.R end 1410 2609 a 1410 2665 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.130) cvn H.B /ANN pdfmark end 1410 2665 a 0 TeXcolorgray 681 2765 a Fx(CC\002ts::PHDU,) p 0 0 1 TeXcolorrgb 1207 2766 a SDict begin H.S end 1207 2766 a 0 0 1 TeXcolorrgb -1 x Fx(136)p 0 0 1 TeXcolorrgb 1331 2708 a SDict begin H.R end 1331 2708 a 1331 2765 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.136) cvn H.B /ANN pdfmark end 1331 2765 a 0 TeXcolorgray 515 2864 a Fx(writeArrays)681 2964 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 2965 a SDict begin H.S end 1248 2965 a 0 0 1 TeXcolorrgb -1 x Fx(64)p 0 0 1 TeXcolorrgb 1331 2908 a SDict begin H.R end 1331 2908 a 1331 2964 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.64) cvn H.B /ANN pdfmark end 1331 2964 a 0 TeXcolorgray 515 3064 a Fx(writeChecksum)681 3163 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 3164 a SDict begin H.S end 1161 3164 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1285 3107 a SDict begin H.R end 1285 3107 a 1285 3163 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1285 3163 a 0 TeXcolorgray 515 3263 a Fx(writeComment)681 3362 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 3363 a SDict begin H.S end 1161 3363 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1285 3306 a SDict begin H.R end 1285 3306 a 1285 3362 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1285 3362 a 0 TeXcolorgray 515 3462 a Fx(writeHistory)681 3562 y(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 3563 a SDict begin H.S end 1161 3563 a 0 0 1 TeXcolorrgb -1 x Fx(120)p 0 0 1 TeXcolorrgb 1285 3505 a SDict begin H.R end 1285 3505 a 1285 3562 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.120) cvn H.B /ANN pdfmark end 1285 3562 a 0 TeXcolorgray 515 3744 a Fx(xtension)681 3844 y(CC\002ts::ExtHDU,)p 0 0 1 TeXcolorrgb 1276 3845 a SDict begin H.S end 1276 3845 a 0 0 1 TeXcolorrgb -1 x Fx(83)p 0 0 1 TeXcolorrgb 1359 3788 a SDict begin H.R end 1359 3788 a 1359 3844 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.83) cvn H.B /ANN pdfmark end 1359 3844 a 0 TeXcolorgray 515 4027 a Fx(zero)681 4126 y(CC\002ts::Column,)p 0 0 1 TeXcolorrgb 1248 4127 a SDict begin H.S end 1248 4127 a 0 0 1 TeXcolorrgb -1 x Fx(64)p 0 0 1 TeXcolorrgb 1331 4070 a SDict begin H.R end 1331 4070 a 1331 4126 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.64) cvn H.B /ANN pdfmark end 1331 4126 a 0 TeXcolorgray 681 4226 a Fx(CC\002ts::HDU,)p 0 0 1 TeXcolorrgb 1161 4226 a SDict begin H.S end 1161 4226 a 0 0 1 TeXcolorrgb Fx(121)p 0 0 1 TeXcolorrgb 1285 4170 a SDict begin H.R end 1285 4170 a 1285 4226 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.121) cvn H.B /ANN pdfmark end 1285 4226 a 0 TeXcolorgray 681 4325 a Fx(CC\002ts::ImageExt,)p 0 0 1 TeXcolorrgb 1304 4326 a SDict begin H.S end 1304 4326 a 0 0 1 TeXcolorrgb -1 x Fx(127)p 0 0 1 TeXcolorrgb 1428 4269 a SDict begin H.R end 1428 4269 a 1428 4325 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.127) cvn H.B /ANN pdfmark end 1428 4325 a 0 TeXcolorgray 681 4425 a Fx(CC\002ts::PHDU,) p 0 0 1 TeXcolorrgb 1207 4426 a SDict begin H.S end 1207 4426 a 0 0 1 TeXcolorrgb -1 x Fx(137)p 0 0 1 TeXcolorrgb 1331 4369 a SDict begin H.R end 1331 4369 a 1331 4425 a SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (page.137) cvn H.B /ANN pdfmark end 1331 4425 a 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 0 TeXcolorgray 515 5156 2865 4 v 515 5255 a Fw(Generated)15 b(on)g(T)-5 b(ue)14 b(Dec)g(6)g(2011)h(16:12:51)h(f)o (or)e(CC\002ts)h(by)g(Doxygen)p 0 TeXcolorgray eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF